Sun Microsystems, Inc.
spacerspacer
spacer   www.sun.com docs.sun.com | | |  
spacer
black dot
   
A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z
    
 
Kernel Functions for Driverscsx_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

 

Solaris DDI Specific (Solaris 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 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_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


SunOS 5.9Go To TopLast Changed 19 Jul 1996

 
      
      
Copyright 2002 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.