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)