1csx_MakeDeviceNode(9F) Kernel Functions for Drivers csx_MakeDeviceNode(9F)
2
3
4
6 csx_MakeDeviceNode, csx_RemoveDeviceNode - create and remove minor
7 nodes on behalf of the client
8
10 #include <sys/pccard.h>
11
12
13
14 int32_t csx_MakeDeviceNode(client_handle_t ch, make_device_node_t *dn);
15
16
17 int32_t csx_RemoveDeviceNode(client_handle_t ch, remove_device_node_t *dn);
18
19
21 Solaris DDI Specific (Solaris DDI)
22
24 ch Client handle returned from csx_RegisterClient(9F).
25
26
27 dn Pointer to a make_device_node_t or remove_device_node_t struc‐
28 ture.
29
30
32 csx_MakeDeviceNode() and csx_RemoveDeviceNode() are Solaris-specific
33 extensions to allow the client to request that device nodes in the
34 filesystem are created or removed, respectively, on its behalf.
35
37 The structure members of make_device_node_t are:
38
39 uint32_t Action; /* device operation */
40 uint32_t NumDevNodes; /* number of nodes to create */
41 devnode_desc_t *devnode_desc; /* description of device nodes */
42
43
44
45 The structure members of remove_device_node_t are:
46
47 uint32_t Action; /* device operation */
48 uint32_t NumDevNodes; /* number of nodes to remove */
49 devnode_desc_t *devnode_desc; /* description of device nodes */
50
51
52
53 The structure members of devnode_desc_t are:
54
55 char *name; /* device node path and name */
56 int32_t spec_type; /* device special type (block or char) */
57 int32_t minor_num; /* device node minor number */
58 char *node_type; /* device node type */
59
60
61
62 The Action field is used to specify the operation that csx_MakeDeviceN‐
63 ode() and csx_RemoveDeviceNode() should perform.
64
65
66 The following Action values are defined for csx_MakeDeviceNode():
67
68 CREATE_DEVICE_NODE Create NumDevNodes minor nodes
69
70
71
72 The following Action values are defined for csx_RemoveDeviceNode():
73
74 REMOVE_DEVICE_NODE Remove NumDevNodes minor nodes
75
76
77 REMOVE_ALL_DEVICE_NODES Remove all minor nodes for this client
78
79
80
81 For csx_MakeDeviceNode(), if the Action field is:
82
83 CREATE_DEVICE_NODE The NumDevNodes field must be set to the number
84 of minor devices to create, and the client must
85 allocate the quantity of devnode_desc_t struc‐
86 tures specified by NumDevNodes and fill out the
87 fields in the devnode_desc_t structure with the
88 appropriate minor node information. The meanings
89 of the fields in the devnode_desc_t structure
90 are identical to the parameters of the same name
91 to the ddi_create_minor_node(9F) DDI function.
92
93
94
95 For csx_RemoveDeviceNode(), if the Action field is:
96
97 REMOVE_DEVICE_NODE The NumDevNodes field must be set to the
98 number of minor devices to remove, and the
99 client must allocate the quantity of devn‐
100 ode_desc_t structures specified by NumDevN‐
101 odes and fill out the fields in the devn‐
102 ode_desc_t structure with the appropriate
103 minor node information. The meanings of the
104 fields in the devnode_desc_t structure are
105 identical to the parameters of the same
106 name to the ddi_remove_minor_node(9F) DDI
107 function.
108
109
110 REMOVE_ALL_DEVICE_NODES The NumDevNodes field must be set to 0 and
111 the devnode_desc_t structure pointer must
112 be set to NULL. All device nodes for this
113 client will be removed from the filesystem.
114
115
117 CS_SUCCESS Successful operation.
118
119
120 CS_BAD_HANDLE Client handle is invalid.
121
122
123 CS_BAD_ATTRIBUTE The value of one or more arguments is
124 invalid.
125
126
127 CS_BAD_ARGS Action is invalid.
128
129
130 CS_OUT_OF_RESOURCE Unable to create or remove device node.
131
132
133 CS_UNSUPPORTED_FUNCTION No PCMCIA hardware installed.
134
135
137 These functions may be called from user or kernel context.
138
140 csx_RegisterClient(9F), ddi_create_minor_node(9F),
141 ddi_remove_minor_node(9F)
142
143
144 PC Card 95 Standard, PCMCIA/JEIDA
145
146
147
148SunOS 5.11 19 Jul 1996 csx_MakeDeviceNode(9F)