46 lines
879 B
C
46 lines
879 B
C
#ifndef __USB_REQUEST_H__
|
|
#define __USB_REQUEST_H__
|
|
|
|
#include "usb_type.h"
|
|
|
|
typedef enum {
|
|
USB_RESPONSE_NONE,
|
|
USB_RESPONSE_IN,
|
|
USB_RESPONSE_OUT,
|
|
USB_RESPONSE_STALL,
|
|
} usb_endpoint_type_t;
|
|
|
|
typedef enum {
|
|
USB_TRANSFER_STAGE_SETUP,
|
|
USB_TRANSFER_STAGE_DATA,
|
|
USB_TRANSFER_STAGE_STATUS,
|
|
} usb_transfer_stage_t;
|
|
|
|
typedef void (*usb_request_handler_fn)(
|
|
usb_endpoint_t* const response,
|
|
const usb_transfer_stage_t stage
|
|
);
|
|
|
|
typedef struct {
|
|
usb_request_handler_fn standard;
|
|
usb_request_handler_fn class;
|
|
usb_request_handler_fn vendor;
|
|
usb_request_handler_fn reserved;
|
|
} usb_request_handlers_t;
|
|
|
|
extern const usb_request_handlers_t usb_request_handlers;
|
|
|
|
void usb_setup_complete(
|
|
usb_endpoint_t* const endpoint
|
|
);
|
|
|
|
void usb_control_in_complete(
|
|
usb_endpoint_t* const endpoint
|
|
);
|
|
|
|
void usb_control_out_complete(
|
|
usb_endpoint_t* const endpoint
|
|
);
|
|
|
|
#endif//__USB_REQUEST_H__
|