add component for usb printers (ulpt driver)
This commit is contained in:
parent
5f20163f32
commit
aef2ecc09f
|
@ -0,0 +1,16 @@
|
|||
# $NetBSD: Makefile,v 1.1 2009/12/15 15:52:30 pooka Exp $
|
||||
#
|
||||
|
||||
.PATH: ${.CURDIR}/../../../../dev/usb ${.CURDIR}/../../../../kern
|
||||
|
||||
LIB= rumpdev_ulpt
|
||||
|
||||
SRCS= ulpt.c
|
||||
|
||||
SRCS+= ulpt_at_usb.c
|
||||
|
||||
CFLAGS+= -Wno-pointer-sign
|
||||
CPPFLAGS+= -I${RUMPTOP}/librump/rumpvfs
|
||||
|
||||
.include <bsd.lib.mk>
|
||||
.include <bsd.klinks.mk>
|
|
@ -0,0 +1,4 @@
|
|||
# $NetBSD: shlib_version,v 1.1 2009/12/15 15:52:30 pooka Exp $
|
||||
#
|
||||
major=0
|
||||
minor=0
|
|
@ -0,0 +1,424 @@
|
|||
/* $NetBSD: ulpt_at_usb.c,v 1.1 2009/12/15 15:52:30 pooka Exp $ */
|
||||
|
||||
/*
|
||||
* MACHINE GENERATED: DO NOT EDIT
|
||||
*
|
||||
* ioconf.c, from "TESTI_ulpt"
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/conf.h>
|
||||
#include <sys/device.h>
|
||||
#include <sys/mount.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
static const struct cfiattrdata gpibdevcf_iattrdata = {
|
||||
"gpibdev", 1,
|
||||
{
|
||||
{ "address", "-1", -1 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata acpibuscf_iattrdata = {
|
||||
"acpibus", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata caccf_iattrdata = {
|
||||
"cac", 1,
|
||||
{
|
||||
{ "unit", "-1", -1 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata spicf_iattrdata = {
|
||||
"spi", 1,
|
||||
{
|
||||
{ "slave", "NULL", 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata radiodevcf_iattrdata = {
|
||||
"radiodev", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata mlxcf_iattrdata = {
|
||||
"mlx", 1,
|
||||
{
|
||||
{ "unit", "-1", -1 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata ucombuscf_iattrdata = {
|
||||
"ucombus", 1,
|
||||
{
|
||||
{ "portno", "-1", -1 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata videobuscf_iattrdata = {
|
||||
"videobus", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata isabuscf_iattrdata = {
|
||||
"isabus", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata i2cbuscf_iattrdata = {
|
||||
"i2cbus", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata ata_hlcf_iattrdata = {
|
||||
"ata_hl", 1,
|
||||
{
|
||||
{ "drive", "-1", -1 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata depcacf_iattrdata = {
|
||||
"depca", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata ppbuscf_iattrdata = {
|
||||
"ppbus", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata eisabuscf_iattrdata = {
|
||||
"eisabus", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata atapicf_iattrdata = {
|
||||
"atapi", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata usbroothubifcf_iattrdata = {
|
||||
"usbroothubif", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata altmemdevcf_iattrdata = {
|
||||
"altmemdev", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata tcbuscf_iattrdata = {
|
||||
"tcbus", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata onewirebuscf_iattrdata = {
|
||||
"onewirebus", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata gpiocf_iattrdata = {
|
||||
"gpio", 2,
|
||||
{
|
||||
{ "offset", "-1", -1 },
|
||||
{ "mask", "0", 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata cbbuscf_iattrdata = {
|
||||
"cbbus", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata gpiobuscf_iattrdata = {
|
||||
"gpiobus", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata drmcf_iattrdata = {
|
||||
"drm", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata pckbportcf_iattrdata = {
|
||||
"pckbport", 1,
|
||||
{
|
||||
{ "slot", "-1", -1 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata irbuscf_iattrdata = {
|
||||
"irbus", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata aaccf_iattrdata = {
|
||||
"aac", 1,
|
||||
{
|
||||
{ "unit", "-1", -1 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata pcibuscf_iattrdata = {
|
||||
"pcibus", 1,
|
||||
{
|
||||
{ "bus", "-1", -1 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata usbififcf_iattrdata = {
|
||||
"usbifif", 6,
|
||||
{
|
||||
{ "port", "-1", -1 },
|
||||
{ "configuration", "-1", -1 },
|
||||
{ "interface", "-1", -1 },
|
||||
{ "vendor", "-1", -1 },
|
||||
{ "product", "-1", -1 },
|
||||
{ "release", "-1", -1 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata upccf_iattrdata = {
|
||||
"upc", 1,
|
||||
{
|
||||
{ "offset", "-1", -1 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata iiccf_iattrdata = {
|
||||
"iic", 2,
|
||||
{
|
||||
{ "addr", "-1", -1 },
|
||||
{ "size", "-1", -1 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata onewirecf_iattrdata = {
|
||||
"onewire", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata mcabuscf_iattrdata = {
|
||||
"mcabus", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata wsdisplaydevcf_iattrdata = {
|
||||
"wsdisplaydev", 1,
|
||||
{
|
||||
{ "kbdmux", "1", 1 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata miicf_iattrdata = {
|
||||
"mii", 1,
|
||||
{
|
||||
{ "phy", "-1", -1 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata cpcbuscf_iattrdata = {
|
||||
"cpcbus", 2,
|
||||
{
|
||||
{ "addr", "NULL", 0 },
|
||||
{ "irq", "-1", -1 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata parportcf_iattrdata = {
|
||||
"parport", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata dbcoolcf_iattrdata = {
|
||||
"dbcool", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata usbdevifcf_iattrdata = {
|
||||
"usbdevif", 6,
|
||||
{
|
||||
{ "port", "-1", -1 },
|
||||
{ "configuration", "-1", -1 },
|
||||
{ "interface", "-1", -1 },
|
||||
{ "vendor", "-1", -1 },
|
||||
{ "product", "-1", -1 },
|
||||
{ "release", "-1", -1 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata wskbddevcf_iattrdata = {
|
||||
"wskbddev", 2,
|
||||
{
|
||||
{ "console", "-1", -1 },
|
||||
{ "mux", "1", 1 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata audiobuscf_iattrdata = {
|
||||
"audiobus", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata btbuscf_iattrdata = {
|
||||
"btbus", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata midibuscf_iattrdata = {
|
||||
"midibus", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata vmebuscf_iattrdata = {
|
||||
"vmebus", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata wsemuldisplaydevcf_iattrdata = {
|
||||
"wsemuldisplaydev", 2,
|
||||
{
|
||||
{ "console", "-1", -1 },
|
||||
{ "kbdmux", "1", 1 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata uhidbuscf_iattrdata = {
|
||||
"uhidbus", 1,
|
||||
{
|
||||
{ "reportid", "-1", -1 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata icpcf_iattrdata = {
|
||||
"icp", 1,
|
||||
{
|
||||
{ "unit", "-1", -1 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata sdmmcbuscf_iattrdata = {
|
||||
"sdmmcbus", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata comcf_iattrdata = {
|
||||
"com", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata spiflashbuscf_iattrdata = {
|
||||
"spiflashbus", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata fwbuscf_iattrdata = {
|
||||
"fwbus", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata pcmciaslotcf_iattrdata = {
|
||||
"pcmciaslot", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata usbuscf_iattrdata = {
|
||||
"usbus", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata wsmousedevcf_iattrdata = {
|
||||
"wsmousedev", 1,
|
||||
{
|
||||
{ "mux", "0", 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata scsicf_iattrdata = {
|
||||
"scsi", 1,
|
||||
{
|
||||
{ "channel", "-1", -1 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata atacf_iattrdata = {
|
||||
"ata", 1,
|
||||
{
|
||||
{ "channel", "-1", -1 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata spibuscf_iattrdata = {
|
||||
"spibus", 0, {
|
||||
{ NULL, NULL, 0 },
|
||||
}
|
||||
};
|
||||
static const struct cfiattrdata pcmciabuscf_iattrdata = {
|
||||
"pcmciabus", 2,
|
||||
{
|
||||
{ "controller", "-1", -1 },
|
||||
{ "socket", "-1", -1 },
|
||||
}
|
||||
};
|
||||
|
||||
static const struct cfiattrdata * const usb_attrs[] = { &usbroothubifcf_iattrdata, NULL };
|
||||
CFDRIVER_DECL(usb, DV_DULL, usb_attrs);
|
||||
|
||||
static const struct cfiattrdata * const uhub_attrs[] = { &usbififcf_iattrdata, &usbdevifcf_iattrdata, NULL };
|
||||
CFDRIVER_DECL(uhub, DV_DULL, uhub_attrs);
|
||||
|
||||
CFDRIVER_DECL(ulpt, DV_DULL, NULL);
|
||||
|
||||
static const struct cfiattrdata * const rumpusbhc_attrs[] = { &usbuscf_iattrdata, NULL };
|
||||
CFDRIVER_DECL(rumpusbhc, DV_DULL, rumpusbhc_attrs);
|
||||
|
||||
|
||||
|
||||
extern struct cfattach usb_ca;
|
||||
extern struct cfattach uroothub_ca;
|
||||
extern struct cfattach ulpt_ca;
|
||||
extern struct cfattach rumpusbhc_ca;
|
||||
|
||||
/* locators */
|
||||
static int loc[6] = {
|
||||
-1, -1, -1, -1, -1, -1,
|
||||
};
|
||||
|
||||
static const struct cfparent pspec1 = {
|
||||
"usbus", "rumpusbhc", DVUNIT_ANY
|
||||
};
|
||||
static const struct cfparent pspec2 = {
|
||||
"usbroothubif", "usb", DVUNIT_ANY
|
||||
};
|
||||
static const struct cfparent pspec3 = {
|
||||
"usbifif", "uhub", DVUNIT_ANY
|
||||
};
|
||||
|
||||
#define NORM FSTATE_NOTFOUND
|
||||
#define STAR FSTATE_STAR
|
||||
|
||||
struct cfdata cfdata_ulpt[] = {
|
||||
/* driver attachment unit state loc flags pspec */
|
||||
/* 0: usb* at rumpusbhc? */
|
||||
{ "usb", "usb", 0, STAR, loc, 0, &pspec1 },
|
||||
/* 1: uhub* at usb? */
|
||||
{ "uhub", "uroothub", 0, STAR, loc, 0, &pspec2 },
|
||||
/* 2: ulpt* at uhub? port -1 configuration -1 interface -1 vendor -1 product -1 release -1 */
|
||||
{ "ulpt", "ulpt", 0, STAR, loc+ 0, 0, &pspec3 },
|
||||
{ NULL, NULL, 0, 0, NULL, 0, NULL }
|
||||
};
|
||||
|
||||
#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)
|
||||
|
||||
void
|
||||
rump_device_configuration(void)
|
||||
{
|
||||
extern struct cfattach usb_ca, uhub_ca, uroothub_ca, ulpt_ca;
|
||||
extern struct cdevsw ulpt_cdevsw;
|
||||
devmajor_t bmaj, cmaj;
|
||||
|
||||
FLAWLESSCALL(config_cfdata_attach(cfdata_ulpt, 0));
|
||||
|
||||
FLAWLESSCALL(config_cfdriver_attach(&usb_cd));
|
||||
FLAWLESSCALL(config_cfattach_attach("usb", &usb_ca));
|
||||
|
||||
FLAWLESSCALL(config_cfdriver_attach(&uhub_cd));
|
||||
FLAWLESSCALL(config_cfattach_attach("uhub", &uhub_ca));
|
||||
|
||||
FLAWLESSCALL(config_cfdriver_attach(&ulpt_cd));
|
||||
FLAWLESSCALL(config_cfattach_attach("ulpt", &ulpt_ca));
|
||||
|
||||
FLAWLESSCALL(config_cfattach_attach("uhub", &uroothub_ca));
|
||||
|
||||
bmaj = cmaj = -1;
|
||||
FLAWLESSCALL(devsw_attach("ulpt", NULL, &bmaj, &ulpt_cdevsw, &cmaj));
|
||||
|
||||
FLAWLESSCALL(rump_vfs_makedevnodes(S_IFCHR, "/dev/ulpt", '0',
|
||||
cmaj, 0, 1));
|
||||
}
|
Loading…
Reference in New Issue