1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21/*
22 * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
23 * Use is subject to license terms.
24 */
25
26#ifndef	_SYS_SYSEVENT_DEV_H
27#define	_SYS_SYSEVENT_DEV_H
28
29#pragma ident	"%Z%%M%	%I%	%E% SMI"
30
31#include <sys/sysevent/eventdefs.h>
32
33#ifdef	__cplusplus
34extern "C" {
35#endif
36
37/*
38 * Event schema for EC_DEV_ADD/ESC_DISK
39 *
40 *	Event Class 	- EC_DEV_ADD
41 *	Event Sub-Class - ESC_DISK
42 *
43 *	Attribute Name	- EV_VERSION
44 *	Attribute Type	- DATA_TYPE_INT32
45 *	Attribute Value	- event version number
46 *
47 *	Attribute Name	- DEV_NAME
48 *	Attribute Type	- DATA_TYPE_STRING
49 *	Attribute Value	- /dev name to the raw device.
50 *			  The name does not include the slice number component.
51 *
52 *	Attribute Name	- DEV_PHYS_PATH
53 *	Attribute Type	- DATA_TYPE_STRING
54 *	Attribute Value	- physical path of the device without the "/devices"
55 *			  prefix.
56 *
57 *	Attribute Name	- DEV_DRIVER_NAME
58 *	Attribute Type	- DATA_TYPE_STRING
59 *	Attribute Value	- driver name
60 *
61 *	Attribute Name	- DEV_INSTANCE
62 *	Attribute Type	- DATA_TYPE_INT32
63 *	Attribute Value	- driver instance number
64 *
65 *	Attribute Name	- DEV_PROP_PREFIX<devinfo_node_property>
66 *	Attribute Type	- data type of the devinfo_node_property
67 *	Attribute Value	- value of the devinfo_node_property
68 *
69 *
70 * Event schema for EC_DEV_ADD/ESC_NETWORK
71 *
72 *	Event Class 	- EC_DEV_ADD
73 *	Event Sub-Class - ESC_NETWORK
74 *
75 *	Attribute Name	- EV_VERSION
76 *	Attribute Type	- DATA_TYPE_INT32
77 *	Attribute Value	- event version number
78 *
79 *	Attribute Name	- DEV_NAME
80 *	Attribute Type	- DATA_TYPE_STRING
81 *	Attribute Value	- /dev name associated with the device if exists.
82 *			  /dev name associated with the driver for DLPI
83 *			  Style-2 only drivers.
84 *
85 *	Attribute Name	- DEV_PHYS_PATH
86 *	Attribute Type	- DATA_TYPE_STRING
87 *	Attribute Value	- physical path of the device without the "/devices"
88 *			  prefix.
89 *
90 *	Attribute Name	- DEV_DRIVER_NAME
91 *	Attribute Type	- DATA_TYPE_STRING
92 *	Attribute Value	- driver name
93 *
94 *	Attribute Name	- DEV_INSTANCE
95 *	Attribute Type	- DATA_TYPE_INT32
96 *	Attribute Value	- driver instance number
97 *
98 *	Attribute Name	- DEV_PROP_PREFIX<devinfo_node_property>
99 *	Attribute Type	- data type of the devinfo_node_property
100 *	Attribute Value	- value of the devinfo_node_property
101 *
102 *
103 * Event schema for EC_DEV_ADD/ESC_PRINTER
104 *
105 *	Event Class 	- EC_DEV_ADD
106 *	Event Sub-Class - ESC_PRINTER
107 *
108 *	Attribute Name	- EV_VERSION
109 *	Attribute Type	- DATA_TYPE_INT32
110 *	Attribute Value	- event version number
111 *
112 *	Attribute Name	- DEV_NAME
113 *	Attribute Type	- DATA_TYPE_STRING
114 *	Attribute Value	- /dev/printers name associated with the device
115 *			  if exists.
116 *			  /dev name associated with the device if it exists
117 *
118 *	Attribute Name	- DEV_PHYS_PATH
119 *	Attribute Type	- DATA_TYPE_STRING
120 *	Attribute Value	- physical path of the device without the "/devices"
121 *			  prefix.
122 *
123 *	Attribute Name	- DEV_DRIVER_NAME
124 *	Attribute Type	- DATA_TYPE_STRING
125 *	Attribute Value	- driver name
126 *
127 *	Attribute Name	- DEV_INSTANCE
128 *	Attribute Type	- DATA_TYPE_INT32
129 *	Attribute Value	- driver instance number
130 *
131 *	Attribute Name	- DEV_PROP_PREFIX<devinfo_node_property>
132 *	Attribute Type	- data type of the devinfo_node_property
133 *	Attribute Value	- value of the devinfo_node_property
134 *
135 *
136 * Event schema for EC_DEV_REMOVE/ESC_DISK
137 *
138 *	Event Class 	- EC_DEV_REMOVE
139 *	Event Sub-Class - ESC_DISK
140 *
141 *	Attribute Name	- EV_VERSION
142 *	Attribute Type	- DATA_TYPE_INT32
143 *	Attribute Value	- event version number
144 *
145 *	Attribute Name	- DEV_NAME
146 *	Attribute Type	- DATA_TYPE_STRING
147 *	Attribute Value	- /dev name to the raw device.
148 *			  The name does not include the slice number component.
149 *
150 *	Attribute Name	- DEV_PHYS_PATH
151 *	Attribute Type	- DATA_TYPE_STRING
152 *	Attribute Value	- physical path of the device without the "/devices"
153 *			  prefix.
154 *
155 *	Attribute Name	- DEV_DRIVER_NAME
156 *	Attribute Type	- DATA_TYPE_STRING
157 *	Attribute Value	- driver name
158 *
159 *	Attribute Name	- DEV_INSTANCE
160 *	Attribute Type	- DATA_TYPE_INT32
161 *	Attribute Value	- driver instance number
162 *
163 *
164 * Event schema for EC_DEV_REMOVE/ESC_NETWORK
165 *
166 *	Event Class 	- EC_DEV_REMOVE
167 *	Event Sub-Class - ESC_NETWORK
168 *
169 *	Attribute Name	- EV_VERSION
170 *	Attribute Type	- DATA_TYPE_INT32
171 *	Attribute Value	- event version number
172 *
173 *	Attribute Name	- DEV_NAME
174 *	Attribute Type	- DATA_TYPE_STRING
175 *	Attribute Value	- /dev name associated with the device if exists.
176 *			  /dev name associated with the driver for DLPI
177 *			  Style-2 only drivers.
178 *
179 *	Attribute Name	- DEV_PHYS_PATH
180 *	Attribute Type	- DATA_TYPE_STRING
181 *	Attribute Value	- physical path of the device without the "/devices"
182 *			  prefix.
183 *
184 *	Attribute Name	- DEV_DRIVER_NAME
185 *	Attribute Type	- DATA_TYPE_STRING
186 *	Attribute Value	- driver name
187 *
188 *	Attribute Name	- DEV_INSTANCE
189 *	Attribute Type	- DATA_TYPE_INT32
190 *	Attribute Value	- driver instance number
191 *
192 *
193 * Event schema for EC_DEV_REMOVE/ESC_PRINTER
194 *
195 *	Event Class 	- EC_DEV_REMOVE
196 *	Event Sub-Class - ESC_PRINTER
197 *
198 *	Attribute Name	- EV_VERSION
199 *	Attribute Type	- DATA_TYPE_INT32
200 *	Attribute Value	- event version number
201 *
202 *	Attribute Name	- DEV_NAME
203 *	Attribute Type	- DATA_TYPE_STRING
204 *	Attribute Value	- /dev/printers name associated with the device
205 *			  if exists.
206 *			  /dev name associated with the device if it exists
207 *
208 *	Attribute Name	- DEV_PHYS_PATH
209 *	Attribute Type	- DATA_TYPE_STRING
210 *	Attribute Value	- physical path of the device without the "/devices"
211 *			  prefix.
212 *
213 *	Attribute Name	- DEV_DRIVER_NAME
214 *	Attribute Type	- DATA_TYPE_STRING
215 *	Attribute Value	- driver name
216 *
217 *	Attribute Name	- DEV_INSTANCE
218 *	Attribute Type	- DATA_TYPE_INT32
219 *	Attribute Value	- driver instance number
220 *
221 *
222 * Event schema for EC_DEV_BRANCH/ESC_DEV_BRANCH_ADD or ESC_DEV_BRANCH_REMOVE
223 *
224 *	Event Class 	- EC_DEV_BRANCH
225 *	Event Sub-Class - ESC_DEV_BRANCH_ADD or ESC_DEV_BRANCH_REMOVE
226 *
227 *	Attribute Name	- EV_VERSION
228 *	Attribute Type	- DATA_TYPE_INT32
229 *	Attribute Value	- event version number
230 *
231 *	Attribute Name	- DEV_PHYS_PATH
232 *	Attribute Type	- DATA_TYPE_STRING
233 *	Attribute Value	- physical path to the root node of the device subtree
234 *			  without the "/devices" prefix.
235 */
236
237#define	EV_VERSION		"version"
238#define	DEV_PHYS_PATH		"phys_path"
239#define	DEV_NAME		"dev_name"
240#define	DEV_DRIVER_NAME		"driver_name"
241#define	DEV_INSTANCE		"instance"
242#define	DEV_PROP_PREFIX		"prop-"
243
244#define	EV_V1			1
245
246/* maximum number of devinfo node properties added to the event */
247#define	MAX_PROP_COUNT		100
248
249/* only properties with size less than PROP_LEN_LIMIT are added to the event */
250#define	PROP_LEN_LIMIT		1024
251
252#ifdef	__cplusplus
253}
254#endif
255
256#endif /* _SYS_SYSEVENT_DEV_H */
257