Remove lots of extra junk:
o other bsd defines, there's no way this would work there o devinfo junk
This commit is contained in:
parent
80170fd0c4
commit
07f51bab6d
@ -1,5 +1,5 @@
|
|||||||
/*-
|
/*-
|
||||||
* Copyright (c) 2001 M. Warner Losh
|
* Copyright (c) 2001-2007 M. Warner Losh
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -36,14 +36,9 @@ __FBSDID("$FreeBSD$");
|
|||||||
#include <sys/systm.h>
|
#include <sys/systm.h>
|
||||||
#include <sys/kernel.h>
|
#include <sys/kernel.h>
|
||||||
#include <sys/malloc.h>
|
#include <sys/malloc.h>
|
||||||
#if defined(__NetBSD__)
|
|
||||||
#include <sys/device.h>
|
|
||||||
#include <sys/ioctl.h>
|
|
||||||
#elif defined(__FreeBSD__)
|
|
||||||
#include <sys/module.h>
|
#include <sys/module.h>
|
||||||
#include <sys/bus.h>
|
#include <sys/bus.h>
|
||||||
#include <sys/ioccom.h>
|
#include <sys/ioccom.h>
|
||||||
#endif
|
|
||||||
#include <sys/fcntl.h>
|
#include <sys/fcntl.h>
|
||||||
#include <sys/filio.h>
|
#include <sys/filio.h>
|
||||||
#include <sys/conf.h>
|
#include <sys/conf.h>
|
||||||
@ -73,13 +68,6 @@ SYSCTL_INT(_hw_usb_ufm, OID_AUTO, debug, CTLFLAG_RW,
|
|||||||
#define DPRINTFN(n,x)
|
#define DPRINTFN(n,x)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__NetBSD__) || defined(__OpenBSD__)
|
|
||||||
int ufmopen(dev_t, int, int, usb_proc_ptr);
|
|
||||||
int ufmclose(dev_t, int, int, usb_proc_ptr);
|
|
||||||
int ufmioctl(dev_t, u_long, caddr_t, int, usb_proc_ptr);
|
|
||||||
|
|
||||||
cdev_decl(ufm);
|
|
||||||
#elif defined(__FreeBSD__)
|
|
||||||
d_open_t ufmopen;
|
d_open_t ufmopen;
|
||||||
d_close_t ufmclose;
|
d_close_t ufmclose;
|
||||||
d_ioctl_t ufmioctl;
|
d_ioctl_t ufmioctl;
|
||||||
@ -92,7 +80,6 @@ static struct cdevsw ufm_cdevsw = {
|
|||||||
.d_ioctl = ufmioctl,
|
.d_ioctl = ufmioctl,
|
||||||
.d_name = "ufm",
|
.d_name = "ufm",
|
||||||
};
|
};
|
||||||
#endif /*defined(__FreeBSD__)*/
|
|
||||||
|
|
||||||
#define FM_CMD0 0x00
|
#define FM_CMD0 0x00
|
||||||
#define FM_CMD_SET_FREQ 0x01
|
#define FM_CMD_SET_FREQ 0x01
|
||||||
@ -108,9 +95,6 @@ struct ufm_softc {
|
|||||||
int sc_freq;
|
int sc_freq;
|
||||||
|
|
||||||
int sc_refcnt;
|
int sc_refcnt;
|
||||||
#if defined(__NetBSD__) || defined(__OpenBSD__)
|
|
||||||
u_char sc_dying;
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#define UFMUNIT(n) (minor(n))
|
#define UFMUNIT(n) (minor(n))
|
||||||
@ -139,46 +123,22 @@ USB_MATCH(ufm)
|
|||||||
USB_ATTACH(ufm)
|
USB_ATTACH(ufm)
|
||||||
{
|
{
|
||||||
USB_ATTACH_START(ufm, sc, uaa);
|
USB_ATTACH_START(ufm, sc, uaa);
|
||||||
char devinfo[1024];
|
|
||||||
usb_endpoint_descriptor_t *edesc;
|
usb_endpoint_descriptor_t *edesc;
|
||||||
usbd_device_handle udev;
|
usbd_device_handle udev;
|
||||||
usbd_interface_handle iface;
|
usbd_interface_handle iface;
|
||||||
u_int8_t epcount;
|
u_int8_t epcount;
|
||||||
#if defined(__NetBSD__) || defined(__OpenBSD__)
|
|
||||||
u_int8_t niface;
|
|
||||||
#endif
|
|
||||||
usbd_status r;
|
usbd_status r;
|
||||||
char * ermsg = "<none>";
|
char * ermsg = "<none>";
|
||||||
|
|
||||||
DPRINTFN(10,("ufm_attach: sc=%p\n", sc));
|
DPRINTFN(10,("ufm_attach: sc=%p\n", sc));
|
||||||
usbd_devinfo(uaa->device, 0, devinfo);
|
sc->sc_dev = self;
|
||||||
USB_ATTACH_SETUP;
|
|
||||||
|
|
||||||
sc->sc_udev = udev = uaa->device;
|
sc->sc_udev = udev = uaa->device;
|
||||||
|
|
||||||
#if defined(__FreeBSD__)
|
|
||||||
if ((!uaa->device) || (!uaa->iface)) {
|
if ((!uaa->device) || (!uaa->iface)) {
|
||||||
ermsg = "device or iface";
|
ermsg = "device or iface";
|
||||||
goto nobulk;
|
goto nobulk;
|
||||||
}
|
}
|
||||||
sc->sc_iface = iface = uaa->iface;
|
sc->sc_iface = iface = uaa->iface;
|
||||||
#elif defined(__NetBSD__) || defined(__OpenBSD__)
|
|
||||||
if (!udev) {
|
|
||||||
ermsg = "device";
|
|
||||||
goto nobulk;
|
|
||||||
}
|
|
||||||
r = usbd_interface_count(udev, &niface);
|
|
||||||
if (r) {
|
|
||||||
ermsg = "iface";
|
|
||||||
goto nobulk;
|
|
||||||
}
|
|
||||||
r = usbd_device2interface_handle(udev, 0, &iface);
|
|
||||||
if (r) {
|
|
||||||
ermsg = "iface";
|
|
||||||
goto nobulk;
|
|
||||||
}
|
|
||||||
sc->sc_iface = iface;
|
|
||||||
#endif
|
|
||||||
sc->sc_opened = 0;
|
sc->sc_opened = 0;
|
||||||
sc->sc_refcnt = 0;
|
sc->sc_refcnt = 0;
|
||||||
|
|
||||||
@ -195,18 +155,11 @@ USB_ATTACH(ufm)
|
|||||||
}
|
}
|
||||||
sc->sc_epaddr = edesc->bEndpointAddress;
|
sc->sc_epaddr = edesc->bEndpointAddress;
|
||||||
|
|
||||||
#if defined(__FreeBSD__)
|
|
||||||
/* XXX no error trapping, no storing of struct cdev **/
|
/* XXX no error trapping, no storing of struct cdev **/
|
||||||
(void) make_dev(&ufm_cdevsw, device_get_unit(self),
|
(void) make_dev(&ufm_cdevsw, device_get_unit(self),
|
||||||
UID_ROOT, GID_OPERATOR,
|
UID_ROOT, GID_OPERATOR,
|
||||||
0644, "ufm%d", device_get_unit(self));
|
0644, "ufm%d", device_get_unit(self));
|
||||||
#elif defined(__NetBSD__) || defined(__OpenBSD__)
|
|
||||||
usbd_add_drv_event(USB_EVENT_DRIVER_ATTACH, sc->sc_udev,
|
|
||||||
USBDEV(sc->sc_dev));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
DPRINTFN(10, ("ufm_attach: %p\n", sc->sc_udev));
|
DPRINTFN(10, ("ufm_attach: %p\n", sc->sc_udev));
|
||||||
|
|
||||||
USB_ATTACH_SUCCESS_RETURN;
|
USB_ATTACH_SUCCESS_RETURN;
|
||||||
|
|
||||||
nobulk:
|
nobulk:
|
||||||
@ -392,75 +345,10 @@ ufmioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flag, usb_proc_ptr td)
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if defined(__NetBSD__) || defined(__OpenBSD__)
|
|
||||||
int
|
|
||||||
ufm_activate(device_t self, enum devact act)
|
|
||||||
{
|
|
||||||
struct ufm_softc *sc = (struct ufm_softc *)self;
|
|
||||||
|
|
||||||
switch (act) {
|
|
||||||
case DVACT_ACTIVATE:
|
|
||||||
return (EOPNOTSUPP);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case DVACT_DEACTIVATE:
|
|
||||||
sc->sc_dying = 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return (0);
|
|
||||||
}
|
|
||||||
|
|
||||||
USB_DETACH(ufm)
|
|
||||||
{
|
|
||||||
USB_DETACH_START(ufm, sc);
|
|
||||||
struct ufm_endpoint *sce;
|
|
||||||
int i, dir;
|
|
||||||
int s;
|
|
||||||
#if defined(__NetBSD__) || defined(__OpenBSD__)
|
|
||||||
int maj, mn;
|
|
||||||
|
|
||||||
DPRINTF(("ufm_detach: sc=%p flags=%d\n", sc, flags));
|
|
||||||
#elif defined(__FreeBSD__)
|
|
||||||
DPRINTF(("ufm_detach: sc=%p\n", sc));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
sc->sc_dying = 1;
|
|
||||||
|
|
||||||
s = splusb();
|
|
||||||
if (--sc->sc_refcnt >= 0) {
|
|
||||||
/* Wait for processes to go away. */
|
|
||||||
usb_detach_wait(USBDEV(sc->sc_dev));
|
|
||||||
}
|
|
||||||
splx(s);
|
|
||||||
|
|
||||||
#if defined(__NetBSD__) || defined(__OpenBSD__)
|
|
||||||
/* locate the major number */
|
|
||||||
for (maj = 0; maj < nchrdev; maj++)
|
|
||||||
if (cdevsw[maj].d_open == ufmopen)
|
|
||||||
break;
|
|
||||||
|
|
||||||
/* Nuke the vnodes for any open instances (calls close). */
|
|
||||||
mn = self->dv_unit * USB_MAX_ENDPOINTS;
|
|
||||||
vdevgone(maj, mn, mn + USB_MAX_ENDPOINTS - 1, VCHR);
|
|
||||||
#elif defined(__FreeBSD__)
|
|
||||||
/* XXX not implemented yet */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
usbd_add_drv_event(USB_EVENT_DRIVER_DETACH, sc->sc_udev,
|
|
||||||
USBDEV(sc->sc_dev));
|
|
||||||
|
|
||||||
return (0);
|
|
||||||
}
|
|
||||||
#endif /* defined(__NetBSD__) || defined(__OpenBSD__) */
|
|
||||||
|
|
||||||
#if defined(__FreeBSD__)
|
|
||||||
static int
|
static int
|
||||||
ufm_detach(device_t self)
|
ufm_detach(device_t self)
|
||||||
{
|
{
|
||||||
DPRINTF(("%s: disconnected\n", device_get_nameunit(self)));
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
DRIVER_MODULE(ufm, uhub, ufm_driver, ufm_devclass, usbd_driver_load, 0);
|
DRIVER_MODULE(ufm, uhub, ufm_driver, ufm_devclass, usbd_driver_load, 0);
|
||||||
#endif
|
|
||||||
|
Loading…
Reference in New Issue
Block a user