pintos/src/devices/usb.h File Reference

#include <stdint.h>
#include <stdbool.h>
#include <kernel/list.h>

Go to the source code of this file.

Data Structures

struct  usb_iface
struct  usb_host
struct  usb_class
struct  usb_endpoint
struct  usb_dev
struct  usb_setup_pkt

Defines

#define USB_HOST_ERR_NONE   0
#define USB_HOST_ERR_BITSTUFF   1
#define USB_HOST_ERR_TIMEOUT   2
#define USB_HOST_ERR_NAK   3
#define USB_HOST_ERR_BABBLE   4
#define USB_HOST_ERR_BUFFER   5
#define USB_HOST_ERR_STALL   6
#define USB_HOST_ERR_NODEV   7
#define make_usb_pid(x)   ((x) | ((~(x)) << 4))
#define USB_PID_OUT   make_usb_pid(1)
#define USB_PID_IN   make_usb_pid(9)
#define USB_PID_SOF   make_usb_pid(5)
#define USB_PID_SETUP   make_usb_pid(13)
#define USB_PID_DATA0   make_usb_pid(3)
#define USB_PID_DATA1   make_usb_pid(11)
#define USB_PID_DATA2   make_usb_pid(7)
#define USB_PID_MDATA   make_usb_pid(15)
#define USB_PID_ACK   make_usb_pid(2)
#define USB_PID_NAK   make_usb_pid(10)
#define USB_PID_STALL   make_usb_pid(14)
#define USB_PID_NYET   make_usb_pid(6)
#define USB_PID_PRE   make_usb_pid(12)
#define USB_PID_ERR   make_usb_pid(12)
#define USB_PID_SPLIT   make_usb_pid(8)
#define USB_PID_PING   make_usb_pid(4)
#define REQ_STD_GET_STATUS   0
#define REQ_STD_CLR_FEAT   1
#define REQ_STD_SET_FEAT   3
#define REQ_STD_SET_ADDRESS   5
#define REQ_STD_GET_DESC   6
#define REQ_STD_SET_DESC   7
#define REQ_STD_GET_CONFIG   8
#define REQ_STD_SET_CONFIG   9
#define REQ_STD_GET_IFACE   10
#define REQ_STD_SET_IFACE   11
#define REQ_STD_SYNCH_FRAME   12
#define USB_TOKEN_SETUP   0x00
#define USB_TOKEN_IN   0x80
#define USB_TOKEN_OUT   0x90
#define USB_SPEED_1   0
#define USB_SPEED_1_1   1
#define USB_SPEED_2   2
#define USB_VERSION_1_0   0x100
#define USB_VERSION_1_1   0x110
#define USB_VERSION_2   0x200
#define USB_EOP_ATTR_CTL   0
#define USB_EOP_ATTR_ISO   1
#define USB_EOP_ATTR_BULK   2
#define USB_EOP_ATTR_INT   3
#define USB_SETUP_TYPE_STD   0
#define USB_SETUP_TYPE_CLASS   1
#define USB_SETUP_TYPE_VENDOR   2
#define USB_SETUP_RECIP_DEV   0
#define USB_SETUP_RECIP_IFACE   1
#define USB_SETUP_RECIP_ENDPT   2
#define USB_SETUP_RECIP_OTHER   3

Typedefs

typedef void * host_info
typedef void * host_eop_info
typedef void * host_dev_info
typedef void * class_info

Functions

void usb_init (void)
void usb_storage_init (void)
void usb_register_host (struct usb_host *, host_info info)
int usb_unregister_host (struct usb_host *, host_info info)
int usb_register_class (struct usb_class *)
int usb_unregister_class (struct usb_class *)
int usb_dev_bulk (struct usb_endpoint *eop, void *buf, int sz, int *tx)
int usb_dev_setup (struct usb_endpoint *eop, bool in, struct usb_setup_pkt *s, void *buf, int sz)
int usb_dev_wait_int (struct usb_dev *)


Define Documentation

#define make_usb_pid ( x   )     ((x) | ((~(x)) << 4))

Definition at line 18 of file usb.h.

#define REQ_STD_CLR_FEAT   1

Definition at line 43 of file usb.h.

Referenced by msc_reset_endpoint().

#define REQ_STD_GET_CONFIG   8

Definition at line 48 of file usb.h.

#define REQ_STD_GET_DESC   6

Definition at line 46 of file usb.h.

Referenced by usb_configure_default(), usb_get_string(), and usb_load_config().

#define REQ_STD_GET_IFACE   10

Definition at line 50 of file usb.h.

#define REQ_STD_GET_STATUS   0

Definition at line 42 of file usb.h.

#define REQ_STD_SET_ADDRESS   5

Definition at line 45 of file usb.h.

Referenced by usb_setup_dev_addr().

#define REQ_STD_SET_CONFIG   9

Definition at line 49 of file usb.h.

Referenced by usb_config_dev().

#define REQ_STD_SET_DESC   7

Definition at line 47 of file usb.h.

#define REQ_STD_SET_FEAT   3

Definition at line 44 of file usb.h.

#define REQ_STD_SET_IFACE   11

Definition at line 51 of file usb.h.

#define REQ_STD_SYNCH_FRAME   12

Definition at line 52 of file usb.h.

#define USB_EOP_ATTR_BULK   2

Definition at line 125 of file usb.h.

Referenced by msc_attached().

#define USB_EOP_ATTR_CTL   0

Definition at line 123 of file usb.h.

#define USB_EOP_ATTR_INT   3

Definition at line 126 of file usb.h.

#define USB_EOP_ATTR_ISO   1

Definition at line 124 of file usb.h.

#define USB_HOST_ERR_BABBLE   4

Definition at line 13 of file usb.h.

Referenced by uhci_tx_pkt_wait().

#define USB_HOST_ERR_BITSTUFF   1

Definition at line 10 of file usb.h.

Referenced by uhci_tx_pkt_wait().

#define USB_HOST_ERR_BUFFER   5

Definition at line 14 of file usb.h.

Referenced by uhci_tx_pkt_wait().

#define USB_HOST_ERR_NAK   3

Definition at line 12 of file usb.h.

Referenced by uhci_tx_pkt_wait().

#define USB_HOST_ERR_NODEV   7

Definition at line 16 of file usb.h.

Referenced by uhci_tx_pkt().

#define USB_HOST_ERR_NONE   0

#define USB_HOST_ERR_STALL   6

Definition at line 15 of file usb.h.

Referenced by uhci_tx_pkt_wait().

#define USB_HOST_ERR_TIMEOUT   2

Definition at line 11 of file usb.h.

Referenced by uhci_tx_pkt_wait().

#define USB_PID_ACK   make_usb_pid(2)

Definition at line 31 of file usb.h.

#define USB_PID_DATA0   make_usb_pid(3)

Definition at line 26 of file usb.h.

#define USB_PID_DATA1   make_usb_pid(11)

Definition at line 27 of file usb.h.

#define USB_PID_DATA2   make_usb_pid(7)

Definition at line 28 of file usb.h.

#define USB_PID_ERR   make_usb_pid(12)

Definition at line 37 of file usb.h.

#define USB_PID_IN   make_usb_pid(9)

Definition at line 22 of file usb.h.

Referenced by token_to_pid().

#define USB_PID_MDATA   make_usb_pid(15)

Definition at line 29 of file usb.h.

#define USB_PID_NAK   make_usb_pid(10)

Definition at line 32 of file usb.h.

#define USB_PID_NYET   make_usb_pid(6)

Definition at line 34 of file usb.h.

#define USB_PID_OUT   make_usb_pid(1)

Definition at line 21 of file usb.h.

Referenced by token_to_pid().

#define USB_PID_PING   make_usb_pid(4)

Definition at line 39 of file usb.h.

#define USB_PID_PRE   make_usb_pid(12)

Definition at line 36 of file usb.h.

#define USB_PID_SETUP   make_usb_pid(13)

Definition at line 24 of file usb.h.

Referenced by token_to_pid().

#define USB_PID_SOF   make_usb_pid(5)

Definition at line 23 of file usb.h.

#define USB_PID_SPLIT   make_usb_pid(8)

Definition at line 38 of file usb.h.

#define USB_PID_STALL   make_usb_pid(14)

Definition at line 33 of file usb.h.

#define USB_SETUP_RECIP_DEV   0

#define USB_SETUP_RECIP_ENDPT   2

Definition at line 172 of file usb.h.

Referenced by msc_reset_endpoint().

#define USB_SETUP_RECIP_IFACE   1

Definition at line 171 of file usb.h.

#define USB_SETUP_RECIP_OTHER   3

Definition at line 173 of file usb.h.

#define USB_SETUP_TYPE_CLASS   1

Definition at line 167 of file usb.h.

Referenced by msc_bulk_reset().

#define USB_SETUP_TYPE_STD   0

#define USB_SETUP_TYPE_VENDOR   2

Definition at line 168 of file usb.h.

#define USB_SPEED_1   0

Definition at line 84 of file usb.h.

#define USB_SPEED_1_1   1

Definition at line 85 of file usb.h.

#define USB_SPEED_2   2

Definition at line 86 of file usb.h.

#define USB_TOKEN_IN   0x80

#define USB_TOKEN_OUT   0x90

#define USB_TOKEN_SETUP   0x00

#define USB_VERSION_1_0   0x100

Definition at line 119 of file usb.h.

Referenced by uhci_create_chan(), uhci_modify_chan(), and usb_configure_default().

#define USB_VERSION_1_1   0x110

Definition at line 120 of file usb.h.

Referenced by usb_configure_default().

#define USB_VERSION_2   0x200

Definition at line 121 of file usb.h.


Typedef Documentation

typedef void* class_info

Definition at line 64 of file usb.h.

typedef void* host_dev_info

Definition at line 63 of file usb.h.

typedef void* host_eop_info

Definition at line 62 of file usb.h.

typedef void* host_info

Definition at line 60 of file usb.h.


Function Documentation

int usb_dev_bulk ( struct usb_endpoint eop,
void *  buf,
int  sz,
int *  tx 
)

int usb_dev_setup ( struct usb_endpoint eop,
bool  in,
struct usb_setup_pkt s,
void *  buf,
int  sz 
)

int usb_dev_wait_int ( struct usb_dev  ) 

void usb_init ( void   ) 

Definition at line 153 of file usb.c.

References class_list, ehci_init(), host_list, list_init(), lock_init(), printf(), uhci_init(), usb_dev_list, usb_hub_init(), and usb_sys_lock.

Referenced by main().

int usb_register_class ( struct usb_class  ) 

void usb_register_host ( struct usb_host ,
host_info  info 
)

void usb_storage_init ( void   ) 

Definition at line 177 of file usb_storage.c.

References device_list, list_init(), and usb_register_class().

Referenced by main().

int usb_unregister_class ( struct usb_class  ) 

int usb_unregister_host ( struct usb_host ,
host_info  info 
)


Generated on Mon Jan 10 16:43:58 2011 for Pintos by  doxygen 1.5.6