/* $NetBSD: component.c,v 1.3 2010/03/08 10:54:21 pooka Exp $ */ #include #include #include #include #include #include "ioconf.c" #include "rump_private.h" #include "rump_dev_private.h" #include "rump_vfs_private.h" #define FLAWLESSCALL(call) \ do { \ int att_error; \ if ((att_error = call) != 0) \ panic("\"%s\" failed", #call); \ } while (/*CONSTCOND*/0) RUMP_COMPONENT(RUMP_COMPONENT_DEV) { extern struct cdevsw wskbd_cdevsw, wsmouse_cdevsw; devmajor_t bmaj, cmaj; FLAWLESSCALL(config_cfdata_attach(cfdata_wscons, 0)); FLAWLESSCALL(config_cfdriver_attach(&wskbd_cd)); FLAWLESSCALL(config_cfattach_attach("wskbd", &wskbd_ca)); FLAWLESSCALL(config_cfdriver_attach(&wsmouse_cd)); FLAWLESSCALL(config_cfattach_attach("wsmouse", &wsmouse_ca)); bmaj = cmaj = -1; FLAWLESSCALL(devsw_attach("wskbd", NULL, &bmaj, &wskbd_cdevsw, &cmaj)); FLAWLESSCALL(rump_vfs_makeonedevnode(S_IFCHR, "/dev/wskbd", cmaj, 0)); bmaj = cmaj = -1; FLAWLESSCALL(devsw_attach("wsmouse", NULL, &bmaj, &wsmouse_cdevsw, &cmaj)); FLAWLESSCALL(rump_vfs_makeonedevnode(S_IFCHR, "/dev/wsmouse", cmaj, 0)); }