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)

tribblix@gmail.com :: GitHub :: Privacy