usbHandleLib.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:3k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* usbHandleLib.h - handle utility functions */
  2. /* Copyright 2000 Wind River Systems, Inc. */
  3. /*
  4. Modification history
  5. --------------------
  6. 01f,18sep01,wef  merge from wrs.tor2_0.usb1_1-f for veloce
  7. 01e,07may01,wef  changed module number to be (module sub num << 8) | 
  8.  M_usbHostLib
  9. 01d,02may01,wef  changed module number to be M_<module> + M_usbHostLib
  10. 01c,05dec00,wef  moved Module number defs to vwModNum.h - add this 
  11.  to #includes
  12. 01b,07mar00,rcb  Change definition of GENERIC_HANDLE from UINT32 to
  13.  pVOID so handles can be compared against NULL without
  14.  generating warnings (e.g., on MIPS gnu toolchain).
  15. 01a,07jun99,rcb  First.
  16. */
  17. /*
  18. DESCRIPTION
  19. Defines a set of general-purpose handle creation and validation functions.
  20. Using these services, libraries can return handles to callers which can 
  21. subsequently be validated for authenticity.  This provides libraries with
  22. an additional measure of "bullet-proofing."
  23. */
  24. #ifndef __INCusbHandleLibh
  25. #define __INCusbHandleLibh
  26. #ifdef __cplusplus
  27. extern "C" {
  28. #endif
  29. /* includes */
  30. #include "usb/usbPlatform.h"  /* USB Module number def's */
  31. #include "vwModNum.h"  /* USB Module number def's */
  32. /* defines */
  33. /* Handle utility library return values */
  34. /* 
  35.  * USB errnos are defined as being part of the USB host Module, as are all
  36.  * vxWorks module numbers, but the USB Module number is further divided into 
  37.  * sub-modules.  Each sub-module has upto 255 values for its own error codes
  38.  */
  39.  
  40. #define USB_HANDLE_SUB_MODULE  3
  41. #define M_usbHandleLib  ( (USB_HANDLE_SUB_MODULE  << 8) | M_usbHostLib )
  42. #define hdlErr(x) (M_usbHandleLib | (x))
  43. #define S_usbHandleLib_OUT_OF_MEMORY     hdlErr(1)
  44. #define S_usbHandleLib_OUT_OF_RESOURCES     hdlErr(2)
  45. #define S_usbHandleLib_OUT_OF_HANDLES     hdlErr(3)
  46. #define S_usbHandleLib_BAD_PARAM     hdlErr(4)
  47. #define S_usbHandleLib_BAD_HANDLE     hdlErr(5)
  48. #define S_usbHandleLib_NOT_INITIALIZED     hdlErr(6)
  49. #define S_usbHandleLib_GENERAL_FAULT     hdlErr(7)
  50. /* typedefs */
  51. typedef pVOID GENERIC_HANDLE;     /* type of a generic handle */
  52. typedef GENERIC_HANDLE *pGENERIC_HANDLE;
  53. /* functions */
  54. STATUS usbHandleInitialize
  55.     (
  56.     UINT32 maxHandles     /* max handles allocated by library */
  57.     );
  58. STATUS usbHandleShutdown (void);
  59. STATUS usbHandleCreate
  60.     (
  61.     UINT32 handleSignature,     /* Arbitrary handle signature */
  62.     pVOID handleParam,     /* Arbitrary handle parameter */
  63.     pGENERIC_HANDLE pHandle     /* Newly allocated handle */
  64.     );
  65. STATUS usbHandleDestroy
  66.     (
  67.     GENERIC_HANDLE handle     /* handle to be destroyed */
  68.     );
  69. STATUS usbHandleValidate
  70.     (
  71.     GENERIC_HANDLE handle,     /* handle to be validated */
  72.     UINT32 handleSignature,     /* signature used to validate handle */
  73.     pVOID *pHandleParam      /* Handle parameter on return */
  74.     );
  75. #ifdef __cplusplus
  76. }
  77. #endif
  78. #endif /* __INCusbHandleLibh */
  79. /* End of file. */