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