CSX_MAKEDEVICENODE(9F)  Kernel Functions for Drivers  CSX_MAKEDEVICENODE(9F)
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
       illumos 
DDI Specific (illumos 
DDI)PARAMETERS
       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 illumos-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_NODE                             Create 
NumDevNodes minor nodes
       The following 
Action values are defined for 
csx_RemoveDeviceNode():       
REMOVE_DEVICE_NODE                                  Remove 
NumDevNodes minor nodes       
REMOVE_ALL_DEVICE_NODES                                  Remove 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                                July 19, 1996         CSX_MAKEDEVICENODE(9F)