ulpt_at_usb.c revision 1.1
11.1Spooka/*	$NetBSD: ulpt_at_usb.c,v 1.1 2010/02/11 02:22:09 pooka Exp $	*/
21.1Spooka
31.1Spooka/*
41.1Spooka * MACHINE GENERATED: DO NOT EDIT
51.1Spooka *
61.1Spooka * ioconf.c, from "TESTI_ulpt"
71.1Spooka */
81.1Spooka
91.1Spooka#include <sys/param.h>
101.1Spooka#include <sys/conf.h>
111.1Spooka#include <sys/device.h>
121.1Spooka#include <sys/mount.h>
131.1Spooka#include <sys/stat.h>
141.1Spooka
151.1Spookastatic const struct cfiattrdata gpibdevcf_iattrdata = {
161.1Spooka	"gpibdev", 1,
171.1Spooka	{
181.1Spooka		{ "address", "-1", -1 },
191.1Spooka	}
201.1Spooka};
211.1Spookastatic const struct cfiattrdata acpibuscf_iattrdata = {
221.1Spooka	"acpibus", 0, {
231.1Spooka		{ NULL, NULL, 0 },
241.1Spooka	}
251.1Spooka};
261.1Spookastatic const struct cfiattrdata caccf_iattrdata = {
271.1Spooka	"cac", 1,
281.1Spooka	{
291.1Spooka		{ "unit", "-1", -1 },
301.1Spooka	}
311.1Spooka};
321.1Spookastatic const struct cfiattrdata spicf_iattrdata = {
331.1Spooka	"spi", 1,
341.1Spooka	{
351.1Spooka		{ "slave", "NULL", 0 },
361.1Spooka	}
371.1Spooka};
381.1Spookastatic const struct cfiattrdata radiodevcf_iattrdata = {
391.1Spooka	"radiodev", 0, {
401.1Spooka		{ NULL, NULL, 0 },
411.1Spooka	}
421.1Spooka};
431.1Spookastatic const struct cfiattrdata mlxcf_iattrdata = {
441.1Spooka	"mlx", 1,
451.1Spooka	{
461.1Spooka		{ "unit", "-1", -1 },
471.1Spooka	}
481.1Spooka};
491.1Spookastatic const struct cfiattrdata ucombuscf_iattrdata = {
501.1Spooka	"ucombus", 1,
511.1Spooka	{
521.1Spooka		{ "portno", "-1", -1 },
531.1Spooka	}
541.1Spooka};
551.1Spookastatic const struct cfiattrdata videobuscf_iattrdata = {
561.1Spooka	"videobus", 0, {
571.1Spooka		{ NULL, NULL, 0 },
581.1Spooka	}
591.1Spooka};
601.1Spookastatic const struct cfiattrdata isabuscf_iattrdata = {
611.1Spooka	"isabus", 0, {
621.1Spooka		{ NULL, NULL, 0 },
631.1Spooka	}
641.1Spooka};
651.1Spookastatic const struct cfiattrdata i2cbuscf_iattrdata = {
661.1Spooka	"i2cbus", 0, {
671.1Spooka		{ NULL, NULL, 0 },
681.1Spooka	}
691.1Spooka};
701.1Spookastatic const struct cfiattrdata ata_hlcf_iattrdata = {
711.1Spooka	"ata_hl", 1,
721.1Spooka	{
731.1Spooka		{ "drive", "-1", -1 },
741.1Spooka	}
751.1Spooka};
761.1Spookastatic const struct cfiattrdata depcacf_iattrdata = {
771.1Spooka	"depca", 0, {
781.1Spooka		{ NULL, NULL, 0 },
791.1Spooka	}
801.1Spooka};
811.1Spookastatic const struct cfiattrdata ppbuscf_iattrdata = {
821.1Spooka	"ppbus", 0, {
831.1Spooka		{ NULL, NULL, 0 },
841.1Spooka	}
851.1Spooka};
861.1Spookastatic const struct cfiattrdata eisabuscf_iattrdata = {
871.1Spooka	"eisabus", 0, {
881.1Spooka		{ NULL, NULL, 0 },
891.1Spooka	}
901.1Spooka};
911.1Spookastatic const struct cfiattrdata atapicf_iattrdata = {
921.1Spooka	"atapi", 0, {
931.1Spooka		{ NULL, NULL, 0 },
941.1Spooka	}
951.1Spooka};
961.1Spookastatic const struct cfiattrdata usbroothubifcf_iattrdata = {
971.1Spooka	"usbroothubif", 0, {
981.1Spooka		{ NULL, NULL, 0 },
991.1Spooka	}
1001.1Spooka};
1011.1Spookastatic const struct cfiattrdata altmemdevcf_iattrdata = {
1021.1Spooka	"altmemdev", 0, {
1031.1Spooka		{ NULL, NULL, 0 },
1041.1Spooka	}
1051.1Spooka};
1061.1Spookastatic const struct cfiattrdata tcbuscf_iattrdata = {
1071.1Spooka	"tcbus", 0, {
1081.1Spooka		{ NULL, NULL, 0 },
1091.1Spooka	}
1101.1Spooka};
1111.1Spookastatic const struct cfiattrdata onewirebuscf_iattrdata = {
1121.1Spooka	"onewirebus", 0, {
1131.1Spooka		{ NULL, NULL, 0 },
1141.1Spooka	}
1151.1Spooka};
1161.1Spookastatic const struct cfiattrdata gpiocf_iattrdata = {
1171.1Spooka	"gpio", 2,
1181.1Spooka	{
1191.1Spooka		{ "offset", "-1", -1 },
1201.1Spooka		{ "mask", "0", 0 },
1211.1Spooka	}
1221.1Spooka};
1231.1Spookastatic const struct cfiattrdata cbbuscf_iattrdata = {
1241.1Spooka	"cbbus", 0, {
1251.1Spooka		{ NULL, NULL, 0 },
1261.1Spooka	}
1271.1Spooka};
1281.1Spookastatic const struct cfiattrdata gpiobuscf_iattrdata = {
1291.1Spooka	"gpiobus", 0, {
1301.1Spooka		{ NULL, NULL, 0 },
1311.1Spooka	}
1321.1Spooka};
1331.1Spookastatic const struct cfiattrdata drmcf_iattrdata = {
1341.1Spooka	"drm", 0, {
1351.1Spooka		{ NULL, NULL, 0 },
1361.1Spooka	}
1371.1Spooka};
1381.1Spookastatic const struct cfiattrdata pckbportcf_iattrdata = {
1391.1Spooka	"pckbport", 1,
1401.1Spooka	{
1411.1Spooka		{ "slot", "-1", -1 },
1421.1Spooka	}
1431.1Spooka};
1441.1Spookastatic const struct cfiattrdata irbuscf_iattrdata = {
1451.1Spooka	"irbus", 0, {
1461.1Spooka		{ NULL, NULL, 0 },
1471.1Spooka	}
1481.1Spooka};
1491.1Spookastatic const struct cfiattrdata aaccf_iattrdata = {
1501.1Spooka	"aac", 1,
1511.1Spooka	{
1521.1Spooka		{ "unit", "-1", -1 },
1531.1Spooka	}
1541.1Spooka};
1551.1Spookastatic const struct cfiattrdata pcibuscf_iattrdata = {
1561.1Spooka	"pcibus", 1,
1571.1Spooka	{
1581.1Spooka		{ "bus", "-1", -1 },
1591.1Spooka	}
1601.1Spooka};
1611.1Spookastatic const struct cfiattrdata usbififcf_iattrdata = {
1621.1Spooka	"usbifif", 6,
1631.1Spooka	{
1641.1Spooka		{ "port", "-1", -1 },
1651.1Spooka		{ "configuration", "-1", -1 },
1661.1Spooka		{ "interface", "-1", -1 },
1671.1Spooka		{ "vendor", "-1", -1 },
1681.1Spooka		{ "product", "-1", -1 },
1691.1Spooka		{ "release", "-1", -1 },
1701.1Spooka	}
1711.1Spooka};
1721.1Spookastatic const struct cfiattrdata upccf_iattrdata = {
1731.1Spooka	"upc", 1,
1741.1Spooka	{
1751.1Spooka		{ "offset", "-1", -1 },
1761.1Spooka	}
1771.1Spooka};
1781.1Spookastatic const struct cfiattrdata iiccf_iattrdata = {
1791.1Spooka	"iic", 2,
1801.1Spooka	{
1811.1Spooka		{ "addr", "-1", -1 },
1821.1Spooka		{ "size", "-1", -1 },
1831.1Spooka	}
1841.1Spooka};
1851.1Spookastatic const struct cfiattrdata onewirecf_iattrdata = {
1861.1Spooka	"onewire", 0, {
1871.1Spooka		{ NULL, NULL, 0 },
1881.1Spooka	}
1891.1Spooka};
1901.1Spookastatic const struct cfiattrdata mcabuscf_iattrdata = {
1911.1Spooka	"mcabus", 0, {
1921.1Spooka		{ NULL, NULL, 0 },
1931.1Spooka	}
1941.1Spooka};
1951.1Spookastatic const struct cfiattrdata wsdisplaydevcf_iattrdata = {
1961.1Spooka	"wsdisplaydev", 1,
1971.1Spooka	{
1981.1Spooka		{ "kbdmux", "1", 1 },
1991.1Spooka	}
2001.1Spooka};
2011.1Spookastatic const struct cfiattrdata miicf_iattrdata = {
2021.1Spooka	"mii", 1,
2031.1Spooka	{
2041.1Spooka		{ "phy", "-1", -1 },
2051.1Spooka	}
2061.1Spooka};
2071.1Spookastatic const struct cfiattrdata cpcbuscf_iattrdata = {
2081.1Spooka	"cpcbus", 2,
2091.1Spooka	{
2101.1Spooka		{ "addr", "NULL", 0 },
2111.1Spooka		{ "irq", "-1", -1 },
2121.1Spooka	}
2131.1Spooka};
2141.1Spookastatic const struct cfiattrdata parportcf_iattrdata = {
2151.1Spooka	"parport", 0, {
2161.1Spooka		{ NULL, NULL, 0 },
2171.1Spooka	}
2181.1Spooka};
2191.1Spookastatic const struct cfiattrdata dbcoolcf_iattrdata = {
2201.1Spooka	"dbcool", 0, {
2211.1Spooka		{ NULL, NULL, 0 },
2221.1Spooka	}
2231.1Spooka};
2241.1Spookastatic const struct cfiattrdata usbdevifcf_iattrdata = {
2251.1Spooka	"usbdevif", 6,
2261.1Spooka	{
2271.1Spooka		{ "port", "-1", -1 },
2281.1Spooka		{ "configuration", "-1", -1 },
2291.1Spooka		{ "interface", "-1", -1 },
2301.1Spooka		{ "vendor", "-1", -1 },
2311.1Spooka		{ "product", "-1", -1 },
2321.1Spooka		{ "release", "-1", -1 },
2331.1Spooka	}
2341.1Spooka};
2351.1Spookastatic const struct cfiattrdata wskbddevcf_iattrdata = {
2361.1Spooka	"wskbddev", 2,
2371.1Spooka	{
2381.1Spooka		{ "console", "-1", -1 },
2391.1Spooka		{ "mux", "1", 1 },
2401.1Spooka	}
2411.1Spooka};
2421.1Spookastatic const struct cfiattrdata audiobuscf_iattrdata = {
2431.1Spooka	"audiobus", 0, {
2441.1Spooka		{ NULL, NULL, 0 },
2451.1Spooka	}
2461.1Spooka};
2471.1Spookastatic const struct cfiattrdata btbuscf_iattrdata = {
2481.1Spooka	"btbus", 0, {
2491.1Spooka		{ NULL, NULL, 0 },
2501.1Spooka	}
2511.1Spooka};
2521.1Spookastatic const struct cfiattrdata midibuscf_iattrdata = {
2531.1Spooka	"midibus", 0, {
2541.1Spooka		{ NULL, NULL, 0 },
2551.1Spooka	}
2561.1Spooka};
2571.1Spookastatic const struct cfiattrdata vmebuscf_iattrdata = {
2581.1Spooka	"vmebus", 0, {
2591.1Spooka		{ NULL, NULL, 0 },
2601.1Spooka	}
2611.1Spooka};
2621.1Spookastatic const struct cfiattrdata wsemuldisplaydevcf_iattrdata = {
2631.1Spooka	"wsemuldisplaydev", 2,
2641.1Spooka	{
2651.1Spooka		{ "console", "-1", -1 },
2661.1Spooka		{ "kbdmux", "1", 1 },
2671.1Spooka	}
2681.1Spooka};
2691.1Spookastatic const struct cfiattrdata uhidbuscf_iattrdata = {
2701.1Spooka	"uhidbus", 1,
2711.1Spooka	{
2721.1Spooka		{ "reportid", "-1", -1 },
2731.1Spooka	}
2741.1Spooka};
2751.1Spookastatic const struct cfiattrdata icpcf_iattrdata = {
2761.1Spooka	"icp", 1,
2771.1Spooka	{
2781.1Spooka		{ "unit", "-1", -1 },
2791.1Spooka	}
2801.1Spooka};
2811.1Spookastatic const struct cfiattrdata sdmmcbuscf_iattrdata = {
2821.1Spooka	"sdmmcbus", 0, {
2831.1Spooka		{ NULL, NULL, 0 },
2841.1Spooka	}
2851.1Spooka};
2861.1Spookastatic const struct cfiattrdata comcf_iattrdata = {
2871.1Spooka	"com", 0, {
2881.1Spooka		{ NULL, NULL, 0 },
2891.1Spooka	}
2901.1Spooka};
2911.1Spookastatic const struct cfiattrdata spiflashbuscf_iattrdata = {
2921.1Spooka	"spiflashbus", 0, {
2931.1Spooka		{ NULL, NULL, 0 },
2941.1Spooka	}
2951.1Spooka};
2961.1Spookastatic const struct cfiattrdata fwbuscf_iattrdata = {
2971.1Spooka	"fwbus", 0, {
2981.1Spooka		{ NULL, NULL, 0 },
2991.1Spooka	}
3001.1Spooka};
3011.1Spookastatic const struct cfiattrdata pcmciaslotcf_iattrdata = {
3021.1Spooka	"pcmciaslot", 0, {
3031.1Spooka		{ NULL, NULL, 0 },
3041.1Spooka	}
3051.1Spooka};
3061.1Spookastatic const struct cfiattrdata usbuscf_iattrdata = {
3071.1Spooka	"usbus", 0, {
3081.1Spooka		{ NULL, NULL, 0 },
3091.1Spooka	}
3101.1Spooka};
3111.1Spookastatic const struct cfiattrdata wsmousedevcf_iattrdata = {
3121.1Spooka	"wsmousedev", 1,
3131.1Spooka	{
3141.1Spooka		{ "mux", "0", 0 },
3151.1Spooka	}
3161.1Spooka};
3171.1Spookastatic const struct cfiattrdata scsicf_iattrdata = {
3181.1Spooka	"scsi", 1,
3191.1Spooka	{
3201.1Spooka		{ "channel", "-1", -1 },
3211.1Spooka	}
3221.1Spooka};
3231.1Spookastatic const struct cfiattrdata atacf_iattrdata = {
3241.1Spooka	"ata", 1,
3251.1Spooka	{
3261.1Spooka		{ "channel", "-1", -1 },
3271.1Spooka	}
3281.1Spooka};
3291.1Spookastatic const struct cfiattrdata spibuscf_iattrdata = {
3301.1Spooka	"spibus", 0, {
3311.1Spooka		{ NULL, NULL, 0 },
3321.1Spooka	}
3331.1Spooka};
3341.1Spookastatic const struct cfiattrdata pcmciabuscf_iattrdata = {
3351.1Spooka	"pcmciabus", 2,
3361.1Spooka	{
3371.1Spooka		{ "controller", "-1", -1 },
3381.1Spooka		{ "socket", "-1", -1 },
3391.1Spooka	}
3401.1Spooka};
3411.1Spooka
3421.1Spookastatic const struct cfiattrdata * const usb_attrs[] = { &usbroothubifcf_iattrdata, NULL };
3431.1SpookaCFDRIVER_DECL(usb, DV_DULL, usb_attrs);
3441.1Spooka
3451.1Spookastatic const struct cfiattrdata * const uhub_attrs[] = { &usbififcf_iattrdata, &usbdevifcf_iattrdata, NULL };
3461.1SpookaCFDRIVER_DECL(uhub, DV_DULL, uhub_attrs);
3471.1Spooka
3481.1SpookaCFDRIVER_DECL(ulpt, DV_DULL, NULL);
3491.1Spooka
3501.1Spooka
3511.1Spookaextern struct cfattach usb_ca;
3521.1Spookaextern struct cfattach uroothub_ca;
3531.1Spookaextern struct cfattach ulpt_ca;
3541.1Spooka
3551.1Spooka/* locators */
3561.1Spookastatic int loc[6] = {
3571.1Spooka	-1, -1, -1, -1, -1, -1,
3581.1Spooka};
3591.1Spooka
3601.1Spookastatic const struct cfparent pspec1 = {
3611.1Spooka	"usbus", "rumpusbhc", DVUNIT_ANY
3621.1Spooka};
3631.1Spookastatic const struct cfparent pspec2 = {
3641.1Spooka	"usbroothubif", "usb", DVUNIT_ANY
3651.1Spooka};
3661.1Spookastatic const struct cfparent pspec3 = {
3671.1Spooka	"usbifif", "uhub", DVUNIT_ANY
3681.1Spooka};
3691.1Spooka
3701.1Spooka#define NORM FSTATE_NOTFOUND
3711.1Spooka#define STAR FSTATE_STAR
3721.1Spooka
3731.1Spookastruct cfdata cfdata_ulpt[] = {
3741.1Spooka    /* driver           attachment    unit state loc   flags pspec */
3751.1Spooka/*  0: usb* at rumpusbhc? */
3761.1Spooka    { "usb",		"usb",		 0, STAR,     loc,      0, &pspec1 },
3771.1Spooka/*  1: uhub* at usb? */
3781.1Spooka    { "uhub",		"uroothub",	 0, STAR,     loc,      0, &pspec2 },
3791.1Spooka/*  2: ulpt* at uhub? port -1 configuration -1 interface -1 vendor -1 product -1 release -1 */
3801.1Spooka    { "ulpt",		"ulpt",		 0, STAR, loc+  0,      0, &pspec3 },
3811.1Spooka    { NULL,		NULL,		 0, 0,    NULL,      0, NULL }
3821.1Spooka};
3831.1Spooka
3841.1Spooka#include "rump_dev_private.h"
3851.1Spooka#include "rump_vfs_private.h"
3861.1Spooka
3871.1Spooka#define FLAWLESSCALL(call)						\
3881.1Spookado {									\
3891.1Spooka	int att_error;							\
3901.1Spooka	if ((att_error = call) != 0)					\
3911.1Spooka		panic("\"%s\" failed", #call);				\
3921.1Spooka} while (/*CONSTCOND*/0)
3931.1Spooka
3941.1Spookavoid
3951.1Spookarump_device_configuration(void)
3961.1Spooka{
3971.1Spooka	extern struct cfattach usb_ca, uhub_ca, uroothub_ca, ulpt_ca;
3981.1Spooka	extern struct cdevsw ulpt_cdevsw;
3991.1Spooka	devmajor_t bmaj, cmaj;
4001.1Spooka
4011.1Spooka	FLAWLESSCALL(config_cfdata_attach(cfdata_ulpt, 0));
4021.1Spooka
4031.1Spooka	FLAWLESSCALL(config_cfdriver_attach(&usb_cd));
4041.1Spooka	FLAWLESSCALL(config_cfattach_attach("usb", &usb_ca));
4051.1Spooka
4061.1Spooka	FLAWLESSCALL(config_cfdriver_attach(&uhub_cd));
4071.1Spooka	FLAWLESSCALL(config_cfattach_attach("uhub", &uhub_ca));
4081.1Spooka
4091.1Spooka	FLAWLESSCALL(config_cfdriver_attach(&ulpt_cd));
4101.1Spooka	FLAWLESSCALL(config_cfattach_attach("ulpt", &ulpt_ca));
4111.1Spooka
4121.1Spooka	FLAWLESSCALL(config_cfattach_attach("uhub", &uroothub_ca));
4131.1Spooka
4141.1Spooka	bmaj = cmaj = -1;
4151.1Spooka	FLAWLESSCALL(devsw_attach("ulpt", NULL, &bmaj, &ulpt_cdevsw, &cmaj));
4161.1Spooka
4171.1Spooka	FLAWLESSCALL(rump_vfs_makedevnodes(S_IFCHR, "/dev/ulpt", '0',
4181.1Spooka	    cmaj, 0, 1));
4191.1Spooka}
420