X-Git-Url: http://rtime.felk.cvut.cz/gitweb/lincan.git/blobdiff_plain/cc1afb21bdc089426652f21769164645cae062fd..243fec4450d3a3246f3f0d92751a95daef7c1503:/embedded/libs4c/usb/base/usb/usb.h diff --git a/embedded/libs4c/usb/base/usb/usb.h b/embedded/libs4c/usb/base/usb/usb.h index 4807b59..a81c8c2 100644 --- a/embedded/libs4c/usb/base/usb/usb.h +++ b/embedded/libs4c/usb/base/usb/usb.h @@ -10,12 +10,12 @@ #include "usb_spec.h" #include "usb_devdes.h" - + #if defined(SDCC) || defined(__KEIL__) || defined(__C51__) /*8051 special handling*/ - #define REENTRANT_SIGN reentrant + #define REENTRANT_SIGN __reentrant #else - #define xdata /*nothing*/ + #define __xdata /*nothing*/ #define REENTRANT_SIGN /*nothing*/ #endif @@ -32,9 +32,9 @@ #define MAX_CONTROL_XFER_DATA_SIZE 8 struct usb_ep_t; - + typedef void endfnc_t( struct usb_ep_t *ep) REENTRANT_SIGN; - + #define USB_NEXT_PKT_SEND 0 #define USB_NEXT_PKT_REC 1 @@ -58,23 +58,7 @@ #endif /*USB_WITH_CB_FNC*/ } usb_ep_t; - -/* Vendor & Class functions */ -/* - #ifdef USB_WITH_CB_FNC - typedef int usb_vendor_extension_fnc_t(usb_ep_t *ep, USB_DEVICE_REQUEST *dreq); - extern xdata usb_vendor_extension_fnc_t USBVendorRequestCBFnc; - - typedef int usb_class_extension_fnc_t(usb_ep_t *ep, USB_DEVICE_REQUEST *dreq); - extern xdata usb_class_extension_fnc_t USBClassRequestCBFnc; - #else //USB_WITH_CB_FNC - char USBVendorRequest( USB_DEVICE_REQUEST *dr); - char USBClassRequest( USB_DEVICE_REQUEST *dr); - #endif //USB_WITH_CB_FNC -*/ - - -/* USB device */ +/* USB device */ typedef struct usb_device_t { unsigned char id; /* device ID ??? */ unsigned char flags; /* usb device flags + endpoint0 events */ @@ -83,9 +67,11 @@ // unsigned char interface; /* current interface */ // unsigned char altinterface; /* current alternative interface */ - //int (stdreq[13])( struct usb_device_t *udev) REENTRANT_SIGN; /* pointer to array of standard request processing functions */ int (*vendor_fnc)( struct usb_device_t *udev) REENTRANT_SIGN; /* pointer to vendor request processing function */ int (*class_fnc)( struct usb_device_t *udev) REENTRANT_SIGN; /* pointer to class request processing function */ + int (*standard_fnc)( struct usb_device_t *udev) REENTRANT_SIGN; /* pointer to standard request processing function */ + + //int (stdreq[13])( struct usb_device_t *udev) REENTRANT_SIGN; /* pointer to array of standard request processing functions - not used in actual implementation */ const USB_DEVICE_DESCRIPTORS_TABLE *devdes_table; @@ -103,10 +89,10 @@ int (*read_endpoint)( usb_ep_t *ep, void *ptr, int size) REENTRANT_SIGN; int (*write_endpoint)( usb_ep_t *ep, const void *ptr, int size) REENTRANT_SIGN; #endif /*USB_WITH_UDEV_FNC*/ - + // USB_DEVICE_REQUEST *request; /* current usb request - only if there is a valid usb request in processing */ USB_DEVICE_REQUEST request; /* usb device request */ - + unsigned char cntep; /* number of device endpoints in ep array without EP0 */ usb_ep_t ep0; /* endpoint 0 */ usb_ep_t *ep; /* others endpoints in array */ @@ -126,10 +112,10 @@ #define USB_FLAG_SUSPEND 0x04 #define USB_FLAG_SETUP 0x08 // setup_packet #define USB_FLAG_REMOTE_WAKE 0x10 - + #define USB_FLAG_EVENT_RX0 0x40 #define USB_FLAG_EVENT_TX0 0x80 - + /* device functions - inline ??? */ @@ -147,22 +133,23 @@ /* check usb events(interrupts) */ int usb_check_events( usb_device_t *udev); /* response to standard constrol requests */ - int usb_control_response( usb_device_t *udev); + int usb_control_response( usb_device_t *udev); /* send control data */ void usb_send_control_data( usb_device_t *udev, unsigned char *pData, unsigned short len); void usb_set_control_endfnc( usb_device_t *udev, endfnc_t *efnc);// REENTRANT_SIGN; void usb_ack_setup( usb_ep_t *ep); - + /* Standard requests functions */ // typedef int (*usb_stdreq_fnc_t)( usb_device_t *udev) REENTRANT_SIGN; // extern xdata usb_stdreq_fnc_t usb_standard_requests[13]; - + +int usb_standard_control_response(usb_device_t *udev) REENTRANT_SIGN; #ifdef USB_WITH_UDEV_FNC #define usb_udev_is_fnc(_M_udev, _M_fnc) (_M_udev->_M_fnc) - + #define usb_udev_init(_M_udev) (_M_udev->init(_M_udev)) #define usb_udev_set_addr(_M_udev, _M_addr) (_M_udev->set_addr(_M_udev, _M_addr)) #define usb_udev_set_configuration(_M_udev, _M_iCfg) (_M_udev->set_configuration(_M_udev, _M_iCfg)) @@ -184,8 +171,8 @@ #else /*USB_WITH_UDEV_FNC*/ #define USB_PDI_DIRECT_FNC - #include "pdi.h" + #include "usb/pdi.h" #endif /*USB_WITH_UDEV_FNC*/ - + #endif