xref: /netbsd-src/sys/rump/dev/lib/libucom/ucom_at_usb.c (revision 28ef056fc275729e9327322d9102bc5d9934cf36)
1 /*	$NetBSD: ucom_at_usb.c,v 1.4 2010/03/07 17:44:40 pooka Exp $	*/
2 
3 #include <sys/param.h>
4 #include <sys/types.h>
5 #include <sys/conf.h>
6 #include <sys/device.h>
7 #include <sys/kmem.h>
8 #include <sys/stat.h>
9 
10 #include "ioconf.c"
11 
12 #include "rump_private.h"
13 #include "rump_dev_private.h"
14 #include "rump_vfs_private.h"
15 
16 #define FLAWLESSCALL(call)						\
17 do {									\
18 	int att_error;							\
19 	if ((att_error = call) != 0)					\
20 		panic("\"%s\" failed", #call);				\
21 } while (/*CONSTCOND*/0)
22 
23 void tty_init(void);
24 
25 RUMP_COMPONENT(RUMP_COMPONENT_DEV)
26 {
27 	extern struct cdevsw ucom_cdevsw;
28 	devmajor_t cmaj, bmaj;
29 
30 	FLAWLESSCALL(config_cfdata_attach(cfdata_ucom, 0));
31 
32 	FLAWLESSCALL(config_cfdriver_attach(&mainbus_cd));
33 	FLAWLESSCALL(config_cfattach_attach("mainbus", &mainbus_ca));
34 
35 	FLAWLESSCALL(config_cfdriver_attach(&ugenhc_cd));
36 	FLAWLESSCALL(config_cfattach_attach("ugenhc", &ugenhc_ca));
37 
38 	FLAWLESSCALL(config_cfdriver_attach(&usb_cd));
39 	FLAWLESSCALL(config_cfattach_attach("usb", &usb_ca));
40 
41 	FLAWLESSCALL(config_cfdriver_attach(&uplcom_cd));
42 	FLAWLESSCALL(config_cfattach_attach("uplcom", &uplcom_ca));
43 
44 	FLAWLESSCALL(config_cfdriver_attach(&u3ginit_cd));
45 	FLAWLESSCALL(config_cfattach_attach("u3ginit", &u3ginit_ca));
46 
47 	FLAWLESSCALL(config_cfdriver_attach(&u3g_cd));
48 	FLAWLESSCALL(config_cfattach_attach("u3g", &u3g_ca));
49 
50 	FLAWLESSCALL(config_cfdriver_attach(&ucom_cd));
51 	FLAWLESSCALL(config_cfattach_attach("ucom", &ucom_ca));
52 
53 	FLAWLESSCALL(config_cfdriver_attach(&uhub_cd));
54 	FLAWLESSCALL(config_cfattach_attach("uhub", &uroothub_ca));
55 
56 	bmaj = cmaj = -1;
57 	FLAWLESSCALL(devsw_attach("ucom", NULL, &bmaj, &ucom_cdevsw, &cmaj));
58 
59 	FLAWLESSCALL(rump_vfs_makedevnodes(S_IFCHR, "/dev/ttyU", '0',
60 	    cmaj, 0, 2));
61 	FLAWLESSCALL(rump_vfs_makedevnodes(S_IFCHR, "/dev/dtyU", '0',
62 	    cmaj, 0x80000, 2));
63 
64 	tty_init();
65 }
66