diff options
| author | 2000-03-28 19:37:45 +0000 | |
|---|---|---|
| committer | 2000-03-28 19:37:45 +0000 | |
| commit | 5deafb7594bc2d24e68201bcf855d5fd81782e73 (patch) | |
| tree | 868eb91f4a31179043f73cf246f23541b5111275 /sys/dev/usb/usbdivar.h | |
| parent | Expose MDXTransform functions to be consistent with sha1 and rmd160. (diff) | |
| download | wireguard-openbsd-5deafb7594bc2d24e68201bcf855d5fd81782e73.tar.xz wireguard-openbsd-5deafb7594bc2d24e68201bcf855d5fd81782e73.zip | |
Much cleaner sync with NetBSD. Some #if defined() magic has been sent in the
form of a diff to augustss@netbsd.org so that future syncs will be very easy.
This commit also adds support for ADMtek AN986 "Pegasus" based USB Ethernet,
CATC USB-EL1210A based USB Ethernet, and USB Printers (all untested).
Diffstat (limited to 'sys/dev/usb/usbdivar.h')
| -rw-r--r-- | sys/dev/usb/usbdivar.h | 73 |
1 files changed, 42 insertions, 31 deletions
diff --git a/sys/dev/usb/usbdivar.h b/sys/dev/usb/usbdivar.h index ad013bedc34..2d23ef4af1f 100644 --- a/sys/dev/usb/usbdivar.h +++ b/sys/dev/usb/usbdivar.h @@ -1,5 +1,6 @@ -/* $OpenBSD: usbdivar.h,v 1.7 2000/03/26 08:39:46 aaron Exp $ */ -/* $NetBSD: usbdivar.h,v 1.47 2000/02/22 11:30:56 augustss Exp $ */ +/* $OpenBSD: usbdivar.h,v 1.8 2000/03/28 19:37:53 aaron Exp $ */ +/* $NetBSD: usbdivar.h,v 1.52 2000/03/25 18:02:33 augustss Exp $ */ +/* $FreeBSD: src/sys/dev/usb/usbdivar.h,v 1.11 1999/11/17 22:33:51 n_hibma Exp $ */ /* * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -38,6 +39,12 @@ * POSSIBILITY OF SUCH DAMAGE. */ +#if defined(__NetBSD__) || defined(__FreeBSD__) +#include <sys/callout.h> +#else +#include <sys/timeout.h> +#endif + /* From usb_mem.h */ DECLARE_USB_DMA_T; @@ -105,11 +112,11 @@ struct usbd_bus { struct usb_device_stats stats; int intr_context; u_int no_intrs; - int usbrev; /* USB revision */ -#define USBREV_UNKNOWN 0 -#define USBREV_PRE_1_0 1 -#define USBREV_1_0 2 -#define USBREV_1_1 3 + int usbrev; /* USB revision */ +#define USBREV_UNKNOWN 0 +#define USBREV_PRE_1_0 1 +#define USBREV_1_0 2 +#define USBREV_1_1 3 #define USBREV_STR { "unknown", "pre 1.0", "1.0", "1.1" } #if defined(__NetBSD__) || defined(__OpenBSD__) @@ -118,26 +125,26 @@ struct usbd_bus { }; struct usbd_device { - struct usbd_bus *bus; /* our controller */ - struct usbd_pipe *default_pipe; /* pipe 0 */ - u_int8_t address; /* device address */ - u_int8_t config; /* current configuration # */ - u_int8_t depth; /* distance from root hub */ - u_int8_t lowspeed; /* lowspeed flag */ - u_int8_t self_powered; /* flag for self powered */ - u_int16_t power; /* mA the device uses */ - int16_t langid; /* language for strings */ + struct usbd_bus *bus; /* our controller */ + struct usbd_pipe *default_pipe; /* pipe 0 */ + u_int8_t address; /* device addess */ + u_int8_t config; /* current configuration # */ + u_int8_t depth; /* distance from root hub */ + u_int8_t lowspeed; /* lowspeed flag */ + u_int8_t self_powered; /* flag for self powered */ + u_int16_t power; /* mA the device uses */ + int16_t langid; /* language for strings */ #define USBD_NOLANG (-1) - usb_event_cookie_t cookie; /* unique connection id */ - struct usbd_port *powersrc; /* upstream hub port, or 0 */ - struct usbd_endpoint def_ep; /* for pipe 0 */ - usb_endpoint_descriptor_t def_ep_desc; /* for pipe 0 */ - struct usbd_interface *ifaces; /* array of all interfaces */ - usb_device_descriptor_t ddesc; /* device descriptor */ - usb_config_descriptor_t *cdesc; /* full config descr */ - struct usbd_quirks *quirks; /* device quirks, always set */ - struct usbd_hub *hub; /* only if this is a hub */ - device_ptr_t *subdevs; /* sub-devices, 0 terminated */ + usb_event_cookie_t cookie; /* unique connection id */ + struct usbd_port *powersrc; /* upstream hub port, or 0 */ + struct usbd_endpoint def_ep; /* for pipe 0 */ + usb_endpoint_descriptor_t def_ep_desc; /* for pipe 0 */ + struct usbd_interface *ifaces; /* array of all interfaces */ + usb_device_descriptor_t ddesc; /* device descriptor */ + usb_config_descriptor_t *cdesc; /* full config descr */ + struct usbd_quirks *quirks; /* device quirks, always set */ + struct usbd_hub *hub; /* only if this is a hub */ + device_ptr_t *subdevs; /* sub-devices, 0 terminated */ }; struct usbd_interface { @@ -163,6 +170,8 @@ struct usbd_pipe { char repeat; int interval; + usb_callout_t abort_handle; + /* Filled by HC driver. */ struct usbd_pipe_methods *methods; }; @@ -178,6 +187,11 @@ struct usbd_xfer { usbd_status status; usbd_callback callback; __volatile char done; +#ifdef DIAGNOSTIC + u_int32_t busy_free; +#define XFER_FREE 0x46524545 +#define XFER_BUSY 0x42555357 +#endif /* For control pipe */ usb_device_request_t request; @@ -198,11 +212,8 @@ struct usbd_xfer { SIMPLEQ_ENTRY(usbd_xfer) next; void *hcpriv; /* private use by the HC driver */ - int hcprivint; -#if defined(__FreeBSD__) - struct callout_handle timo_handle; -#endif + usb_callout_t timeout_handle; }; void usbd_init __P((void)); @@ -243,7 +254,7 @@ void usb_schedsoftintr __P((struct usbd_bus *)); extern int cold; \ if (!cold && _s != _su) printf("SPLUSBCHECK failed 0x%x!=0x%x, %s:%d\n", \ _s, _su, __FILE__, __LINE__); \ - splx(_s); \ + splx(_s); \ } while (0) #else #define SPLUSBCHECK |
