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