man Pages(9F): DDI and DKI Kernel Functions
  Buscar sólo este libro
Descargar este libro en PDF

NAME

csx_MakeDeviceNode, csx_RemoveDeviceNode - create and remove minor nodes on behalf of the client

SYNOPSIS

#include <sys/pccard.h>
int32_t csx_MakeDeviceNode(client_handle_t ch, make_device_node_t * dn);
int32_t csx_RemoveDeviceNode(client_handle_t ch, remove_device_node_t * dn);

INTERFACE LEVEL

Solaris DDI Specific (Solaris DDI)

ARGUMENTS

ch
Client handle returned from csx_RegisterClient(9F).
dn
Pointer to a make_device_node_t or remove_device_node_t structure.

DESCRIPTION

csx_MakeDeviceNode( ) and csx_RemoveDeviceNode( ) are Solaris-specific extensions to allow the client to request that device nodes in the filesystem are created or removed, respectively, on its behalf.

STRUCTURE MEMBERS

The structure members of make_device_node_t are:
  uint32_t           Action;             /* device operation * /
  uint32_t           NumDevNodes;        /* number of nodes to create * /
  devnode_desc_t     * devnode_desc;     /* description of device nodes * /

The structure members of remove_device_node_t are:
  uint32_t           Action;             /* device operation * /
  uint32_t           NumDevNodes;        /* number of nodes to remove * /
  devnode_desc_t     * devnode_desc;     /* description of device nodes * /

The structure members of devnode_desc_t are:
  char      * name;         /* device node path and name * /
  int32_t   spec_type;      /* device special type (block or char) * /
  int32_t   minor_num;      /* device node minor number * /
  char      * node_type;    /* device node type * /

The Action field is used to specify the operation that csx_MakeDeviceNode( ) and csx_RemoveDeviceNode( ) should perform.
The following Action values are defined for csx_MakeDeviceNode( ):
CREATE_DEVICE_NODECreate NumDevNodes minor nodes
The following Action values are defined for csx_RemoveDeviceNode( ):
REMOVE_DEVICE_NODERemove NumDevNodes minor nodes
REMOVE_ALL_DEVICE_NODESRemove all minor nodes for this client
For csx_MakeDeviceNode( ), if the Action field is:
CREATE_DEVICE_NODE
The NumDevNodes field must be set to the number of minor devices to create, and the client must allocate the quantity of devnode_desc_t structures specified by NumDevNodes and fill out the fields in the devnode_desc_t structure with the appropriate minor node information.
The meanings of the fields in the devnode_desc_t structure are identical to the parameters of the same name to the ddi_create_minor_node(9F) DDI function.
For csx_RemoveDeviceNode( ), if the Action field is:
REMOVE_DEVICE_NODE
The NumDevNodes field must be set to the number of minor devices to remove, and the client must allocate the quantity of devnode_desc_t structures specified by NumDevNodes and fill out the fields in the devnode_desc_t structure with the appropriate minor node information.
The meanings of the fields in the devnode_desc_t structure are identical to the parameters of the same name to the ddi_remove_minor_node(9F) DDI function.
REMOVE_ALL_DEVICE_NODES
The NumDevNodes field must be set to 0 and the devnode_desc_t structure pointer must be set to NULL . All device nodes for this client will be removed from the filesystem.

RETURN VALUES

CS_SUCCESS
Successful operation.
CS_BAD_HANDLE
Client handle is invalid.
CS_BAD_ATTRIBUTE
The value of one or more arguments is invalid.
CS_BAD_ARGS
Action is invalid.
CS_OUT_OF_RESOURCE
Unable to create or remove device node.
CS_UNSUPPORTED_FUNCTION
No PCMCIA hardware installed.

CONTEXT

These functions may be called from user or kernel context.

SEE ALSO

csx_RegisterClient(9F), ddi_create_minor_node(9F), ddi_remove_minor_node(9F)
PC Card 95 Standard, PCMCIA/JEIDA