1 #ifndef USB_API_H_SYN81IFYBN__
2 #define USB_API_H_SYN81IFYBN__
6 typedef struct _USBBuffer USBBuffer;
17 #define USB_BUFFER_SUBMITTED 0x01
21 #define USB_BUFFER_SHORT_END 0x02
24 #define USB_BUFFER_PACKET_END 0x04
27 #define USB_BUFFER_NOTIFY 0x08
30 #define USB_BUFFER_IN 0x40
35 #define USB_BUFFER_SETUP 0x20
39 #define USB_BUFFER_HALT 0x100
44 #define USB_BUFFER_SHORT_PACKET 0x10
47 #define USB_BUFFER_FAILED 0x80
50 #define USB_BUFFER_ARCH_FLAG_1 0x1000
51 #define USB_BUFFER_ARCH_FLAG_2 0x2000
52 #define USB_BUFFER_ARCH_FLAG_3 0x4000
53 #define USB_BUFFER_ARCH_FLAG_4 0x8000
59 struct USBRequestHandler {
61 uint8_t request_type_mask;
65 unsigned int (*handler_func) ();
69 struct USBRequestHandlerHook {
70 struct USBRequestHandlerHook *next;
71 const struct USBRequestHandler *
const handler;
74 void usb_register_request_handler(
struct USBRequestHandlerHook *hook);
76 void usb_prepend_request_handler(
struct USBRequestHandlerHook *hook);
78 void usb_setup_bulk_endpoint(uint8_t addr);
80 void usb_setup_interrupt_endpoint(uint8_t addr);
84 void usb_submit_recv_buffer(uint8_t ep_addr, USBBuffer * buffer);
90 void usb_submit_xmit_buffer(uint8_t ep_addr, USBBuffer * buffer);
93 int usb_send_pending(uint8_t ep_addr);
97 void usb_discard_all_buffers(uint8_t ep_addr);
99 void usb_disable_endpoint(uint8_t addr);
106 void usb_set_ep_event_process(uint8_t addr,
struct process *p);
109 void usb_set_global_event_process(
struct process *p);
112 #define USB_EVENT_CONFIG 0x01
113 #define USB_EVENT_SUSPEND 0x02
114 #define USB_EVENT_RESUME 0x04
115 #define USB_EVENT_RESET 0x08
119 unsigned int usb_get_global_events(
void);
122 #define USB_EP_EVENT_NOTIFICATION 0x01
123 unsigned int usb_get_ep_events(uint8_t addr);
125 unsigned int usb_get_current_configuration(
void);
void usb_halt_endpoint(U8 ep_num)
usb_halt_endpoint.
Header file for the Contiki process interface.