xref: /netbsd-src/sys/rump/dev/lib/libulpt/ulpt_at_usb.c (revision 4e6df137e8e14049b5a701d249962c480449c141)
1 /*	$NetBSD: ulpt_at_usb.c,v 1.2 2010/03/01 13:12:20 pooka Exp $	*/
2 
3 /*
4  * MACHINE GENERATED: DO NOT EDIT
5  *
6  * ioconf.c, from "TESTI_ulpt"
7  */
8 
9 #include <sys/param.h>
10 #include <sys/conf.h>
11 #include <sys/device.h>
12 #include <sys/mount.h>
13 #include <sys/stat.h>
14 
15 static const struct cfiattrdata gpibdevcf_iattrdata = {
16 	"gpibdev", 1,
17 	{
18 		{ "address", "-1", -1 },
19 	}
20 };
21 static const struct cfiattrdata acpibuscf_iattrdata = {
22 	"acpibus", 0, {
23 		{ NULL, NULL, 0 },
24 	}
25 };
26 static const struct cfiattrdata caccf_iattrdata = {
27 	"cac", 1,
28 	{
29 		{ "unit", "-1", -1 },
30 	}
31 };
32 static const struct cfiattrdata spicf_iattrdata = {
33 	"spi", 1,
34 	{
35 		{ "slave", "NULL", 0 },
36 	}
37 };
38 static const struct cfiattrdata radiodevcf_iattrdata = {
39 	"radiodev", 0, {
40 		{ NULL, NULL, 0 },
41 	}
42 };
43 static const struct cfiattrdata mlxcf_iattrdata = {
44 	"mlx", 1,
45 	{
46 		{ "unit", "-1", -1 },
47 	}
48 };
49 static const struct cfiattrdata ucombuscf_iattrdata = {
50 	"ucombus", 1,
51 	{
52 		{ "portno", "-1", -1 },
53 	}
54 };
55 static const struct cfiattrdata videobuscf_iattrdata = {
56 	"videobus", 0, {
57 		{ NULL, NULL, 0 },
58 	}
59 };
60 static const struct cfiattrdata isabuscf_iattrdata = {
61 	"isabus", 0, {
62 		{ NULL, NULL, 0 },
63 	}
64 };
65 static const struct cfiattrdata i2cbuscf_iattrdata = {
66 	"i2cbus", 0, {
67 		{ NULL, NULL, 0 },
68 	}
69 };
70 static const struct cfiattrdata ata_hlcf_iattrdata = {
71 	"ata_hl", 1,
72 	{
73 		{ "drive", "-1", -1 },
74 	}
75 };
76 static const struct cfiattrdata depcacf_iattrdata = {
77 	"depca", 0, {
78 		{ NULL, NULL, 0 },
79 	}
80 };
81 static const struct cfiattrdata ppbuscf_iattrdata = {
82 	"ppbus", 0, {
83 		{ NULL, NULL, 0 },
84 	}
85 };
86 static const struct cfiattrdata eisabuscf_iattrdata = {
87 	"eisabus", 0, {
88 		{ NULL, NULL, 0 },
89 	}
90 };
91 static const struct cfiattrdata atapicf_iattrdata = {
92 	"atapi", 0, {
93 		{ NULL, NULL, 0 },
94 	}
95 };
96 static const struct cfiattrdata usbroothubifcf_iattrdata = {
97 	"usbroothubif", 0, {
98 		{ NULL, NULL, 0 },
99 	}
100 };
101 static const struct cfiattrdata altmemdevcf_iattrdata = {
102 	"altmemdev", 0, {
103 		{ NULL, NULL, 0 },
104 	}
105 };
106 static const struct cfiattrdata tcbuscf_iattrdata = {
107 	"tcbus", 0, {
108 		{ NULL, NULL, 0 },
109 	}
110 };
111 static const struct cfiattrdata onewirebuscf_iattrdata = {
112 	"onewirebus", 0, {
113 		{ NULL, NULL, 0 },
114 	}
115 };
116 static const struct cfiattrdata gpiocf_iattrdata = {
117 	"gpio", 2,
118 	{
119 		{ "offset", "-1", -1 },
120 		{ "mask", "0", 0 },
121 	}
122 };
123 static const struct cfiattrdata cbbuscf_iattrdata = {
124 	"cbbus", 0, {
125 		{ NULL, NULL, 0 },
126 	}
127 };
128 static const struct cfiattrdata gpiobuscf_iattrdata = {
129 	"gpiobus", 0, {
130 		{ NULL, NULL, 0 },
131 	}
132 };
133 static const struct cfiattrdata drmcf_iattrdata = {
134 	"drm", 0, {
135 		{ NULL, NULL, 0 },
136 	}
137 };
138 static const struct cfiattrdata pckbportcf_iattrdata = {
139 	"pckbport", 1,
140 	{
141 		{ "slot", "-1", -1 },
142 	}
143 };
144 static const struct cfiattrdata irbuscf_iattrdata = {
145 	"irbus", 0, {
146 		{ NULL, NULL, 0 },
147 	}
148 };
149 static const struct cfiattrdata aaccf_iattrdata = {
150 	"aac", 1,
151 	{
152 		{ "unit", "-1", -1 },
153 	}
154 };
155 static const struct cfiattrdata pcibuscf_iattrdata = {
156 	"pcibus", 1,
157 	{
158 		{ "bus", "-1", -1 },
159 	}
160 };
161 static const struct cfiattrdata usbififcf_iattrdata = {
162 	"usbifif", 6,
163 	{
164 		{ "port", "-1", -1 },
165 		{ "configuration", "-1", -1 },
166 		{ "interface", "-1", -1 },
167 		{ "vendor", "-1", -1 },
168 		{ "product", "-1", -1 },
169 		{ "release", "-1", -1 },
170 	}
171 };
172 static const struct cfiattrdata upccf_iattrdata = {
173 	"upc", 1,
174 	{
175 		{ "offset", "-1", -1 },
176 	}
177 };
178 static const struct cfiattrdata iiccf_iattrdata = {
179 	"iic", 2,
180 	{
181 		{ "addr", "-1", -1 },
182 		{ "size", "-1", -1 },
183 	}
184 };
185 static const struct cfiattrdata onewirecf_iattrdata = {
186 	"onewire", 0, {
187 		{ NULL, NULL, 0 },
188 	}
189 };
190 static const struct cfiattrdata mcabuscf_iattrdata = {
191 	"mcabus", 0, {
192 		{ NULL, NULL, 0 },
193 	}
194 };
195 static const struct cfiattrdata wsdisplaydevcf_iattrdata = {
196 	"wsdisplaydev", 1,
197 	{
198 		{ "kbdmux", "1", 1 },
199 	}
200 };
201 static const struct cfiattrdata miicf_iattrdata = {
202 	"mii", 1,
203 	{
204 		{ "phy", "-1", -1 },
205 	}
206 };
207 static const struct cfiattrdata cpcbuscf_iattrdata = {
208 	"cpcbus", 2,
209 	{
210 		{ "addr", "NULL", 0 },
211 		{ "irq", "-1", -1 },
212 	}
213 };
214 static const struct cfiattrdata parportcf_iattrdata = {
215 	"parport", 0, {
216 		{ NULL, NULL, 0 },
217 	}
218 };
219 static const struct cfiattrdata dbcoolcf_iattrdata = {
220 	"dbcool", 0, {
221 		{ NULL, NULL, 0 },
222 	}
223 };
224 static const struct cfiattrdata usbdevifcf_iattrdata = {
225 	"usbdevif", 6,
226 	{
227 		{ "port", "-1", -1 },
228 		{ "configuration", "-1", -1 },
229 		{ "interface", "-1", -1 },
230 		{ "vendor", "-1", -1 },
231 		{ "product", "-1", -1 },
232 		{ "release", "-1", -1 },
233 	}
234 };
235 static const struct cfiattrdata wskbddevcf_iattrdata = {
236 	"wskbddev", 2,
237 	{
238 		{ "console", "-1", -1 },
239 		{ "mux", "1", 1 },
240 	}
241 };
242 static const struct cfiattrdata audiobuscf_iattrdata = {
243 	"audiobus", 0, {
244 		{ NULL, NULL, 0 },
245 	}
246 };
247 static const struct cfiattrdata btbuscf_iattrdata = {
248 	"btbus", 0, {
249 		{ NULL, NULL, 0 },
250 	}
251 };
252 static const struct cfiattrdata midibuscf_iattrdata = {
253 	"midibus", 0, {
254 		{ NULL, NULL, 0 },
255 	}
256 };
257 static const struct cfiattrdata vmebuscf_iattrdata = {
258 	"vmebus", 0, {
259 		{ NULL, NULL, 0 },
260 	}
261 };
262 static const struct cfiattrdata wsemuldisplaydevcf_iattrdata = {
263 	"wsemuldisplaydev", 2,
264 	{
265 		{ "console", "-1", -1 },
266 		{ "kbdmux", "1", 1 },
267 	}
268 };
269 static const struct cfiattrdata uhidbuscf_iattrdata = {
270 	"uhidbus", 1,
271 	{
272 		{ "reportid", "-1", -1 },
273 	}
274 };
275 static const struct cfiattrdata icpcf_iattrdata = {
276 	"icp", 1,
277 	{
278 		{ "unit", "-1", -1 },
279 	}
280 };
281 static const struct cfiattrdata sdmmcbuscf_iattrdata = {
282 	"sdmmcbus", 0, {
283 		{ NULL, NULL, 0 },
284 	}
285 };
286 static const struct cfiattrdata comcf_iattrdata = {
287 	"com", 0, {
288 		{ NULL, NULL, 0 },
289 	}
290 };
291 static const struct cfiattrdata spiflashbuscf_iattrdata = {
292 	"spiflashbus", 0, {
293 		{ NULL, NULL, 0 },
294 	}
295 };
296 static const struct cfiattrdata fwbuscf_iattrdata = {
297 	"fwbus", 0, {
298 		{ NULL, NULL, 0 },
299 	}
300 };
301 static const struct cfiattrdata pcmciaslotcf_iattrdata = {
302 	"pcmciaslot", 0, {
303 		{ NULL, NULL, 0 },
304 	}
305 };
306 static const struct cfiattrdata usbuscf_iattrdata = {
307 	"usbus", 0, {
308 		{ NULL, NULL, 0 },
309 	}
310 };
311 static const struct cfiattrdata wsmousedevcf_iattrdata = {
312 	"wsmousedev", 1,
313 	{
314 		{ "mux", "0", 0 },
315 	}
316 };
317 static const struct cfiattrdata scsicf_iattrdata = {
318 	"scsi", 1,
319 	{
320 		{ "channel", "-1", -1 },
321 	}
322 };
323 static const struct cfiattrdata atacf_iattrdata = {
324 	"ata", 1,
325 	{
326 		{ "channel", "-1", -1 },
327 	}
328 };
329 static const struct cfiattrdata spibuscf_iattrdata = {
330 	"spibus", 0, {
331 		{ NULL, NULL, 0 },
332 	}
333 };
334 static const struct cfiattrdata pcmciabuscf_iattrdata = {
335 	"pcmciabus", 2,
336 	{
337 		{ "controller", "-1", -1 },
338 		{ "socket", "-1", -1 },
339 	}
340 };
341 
342 static const struct cfiattrdata * const usb_attrs[] = { &usbroothubifcf_iattrdata, NULL };
343 CFDRIVER_DECL(usb, DV_DULL, usb_attrs);
344 
345 static const struct cfiattrdata * const uhub_attrs[] = { &usbififcf_iattrdata, &usbdevifcf_iattrdata, NULL };
346 CFDRIVER_DECL(uhub, DV_DULL, uhub_attrs);
347 
348 CFDRIVER_DECL(ulpt, DV_DULL, NULL);
349 
350 
351 extern struct cfattach usb_ca;
352 extern struct cfattach uroothub_ca;
353 extern struct cfattach ulpt_ca;
354 
355 /* locators */
356 static int loc[6] = {
357 	-1, -1, -1, -1, -1, -1,
358 };
359 
360 static const struct cfparent pspec1 = {
361 	"usbus", "rumpusbhc", DVUNIT_ANY
362 };
363 static const struct cfparent pspec2 = {
364 	"usbroothubif", "usb", DVUNIT_ANY
365 };
366 static const struct cfparent pspec3 = {
367 	"usbifif", "uhub", DVUNIT_ANY
368 };
369 
370 #define NORM FSTATE_NOTFOUND
371 #define STAR FSTATE_STAR
372 
373 struct cfdata cfdata_ulpt[] = {
374     /* driver           attachment    unit state loc   flags pspec */
375 /*  0: usb* at rumpusbhc? */
376     { "usb",		"usb",		 0, STAR,     loc,      0, &pspec1 },
377 /*  1: uhub* at usb? */
378     { "uhub",		"uroothub",	 0, STAR,     loc,      0, &pspec2 },
379 /*  2: ulpt* at uhub? port -1 configuration -1 interface -1 vendor -1 product -1 release -1 */
380     { "ulpt",		"ulpt",		 0, STAR, loc+  0,      0, &pspec3 },
381     { NULL,		NULL,		 0, 0,    NULL,      0, NULL }
382 };
383 
384 #include "rump_private.h"
385 #include "rump_dev_private.h"
386 #include "rump_vfs_private.h"
387 
388 #define FLAWLESSCALL(call)						\
389 do {									\
390 	int att_error;							\
391 	if ((att_error = call) != 0)					\
392 		panic("\"%s\" failed", #call);				\
393 } while (/*CONSTCOND*/0)
394 
395 RUMP_COMPONENT(RUMP_COMPONENT_DEV)
396 {
397 	extern struct cfattach usb_ca, uhub_ca, uroothub_ca, ulpt_ca;
398 	extern struct cdevsw ulpt_cdevsw;
399 	devmajor_t bmaj, cmaj;
400 
401 	FLAWLESSCALL(config_cfdata_attach(cfdata_ulpt, 0));
402 
403 	FLAWLESSCALL(config_cfdriver_attach(&usb_cd));
404 	FLAWLESSCALL(config_cfattach_attach("usb", &usb_ca));
405 
406 	FLAWLESSCALL(config_cfdriver_attach(&uhub_cd));
407 	FLAWLESSCALL(config_cfattach_attach("uhub", &uhub_ca));
408 
409 	FLAWLESSCALL(config_cfdriver_attach(&ulpt_cd));
410 	FLAWLESSCALL(config_cfattach_attach("ulpt", &ulpt_ca));
411 
412 	FLAWLESSCALL(config_cfattach_attach("uhub", &uroothub_ca));
413 
414 	bmaj = cmaj = -1;
415 	FLAWLESSCALL(devsw_attach("ulpt", NULL, &bmaj, &ulpt_cdevsw, &cmaj));
416 
417 	FLAWLESSCALL(rump_vfs_makedevnodes(S_IFCHR, "/dev/ulpt", '0',
418 	    cmaj, 0, 1));
419 }
420