oxdevicequery.h
上传用户:gelin96
上传日期:2017-01-08
资源大小:20993k
文件大小:5k
源码类别:

MTK

开发平台:

C++ Builder

  1. /*******************************************************************************
  2.  * oxdevicequery.h
  3.  *______________________________________________________________________________
  4.  *
  5.  * Oxford Semiconductor Proprietary and Confidential Information
  6.  *
  7.  * Copyright (C) 2005-2006 Oxford Semiconductor Ltd.
  8.  *
  9.  * NOTE: THIS FILE EXISTS IN TWO CVS REPOSITORIES & MUST BE KEPT THE SAME. THESE
  10.  * FILES ARE IN THE FOLLOWING DIRECTORIES:
  11.  *       /tech/sw_uarts/root/driver_src/w2kxpx64/COMMON
  12.  *       /chips/cf952/root/software/OxCFU950/src
  13.  *
  14.  *******************************************************************************
  15.  */
  16. //
  17. // The device query defines of type ID's and structures for query for the
  18. // presence and EPROM IO interfaces of Oxford Semiconductors devices.
  19. //
  20. #ifndef _OX_DEVICE_QUERY
  21. #define _OX_DEVICE_QUERY
  22. //------------------------------------------------------------------------------
  23. // IOCTL code for serial driver and multifunction driver.
  24. #define IOCTL_OXSER_QUERY_INFO 
  25.     CTL_CODE( FILE_DEVICE_SERIAL_PORT, 63, METHOD_BUFFERED, FILE_READ_ACCESS )
  26. //------------------------------------------------------------------------------
  27. // IOCTL code for USB driver.
  28. // See the usbioctl.h for the reserved space of IODEF.
  29. #define RESERVED_AREA_OF_USB_IOCTL        300
  30. #define IOCTL_CUSTOM_BIT                  (1<<11)
  31. //#define OXCFU950_IOCTL_BASE             RESERVED_AREA_OF_USB_IOCTL
  32. #define OXCFU950_IOCTL_BASE               0
  33. #define OXCFU950_IOCTL_FUNCTION           (IOCTL_CUSTOM_BIT|OXCFU950_IOCTL_BASE)
  34. // The first IOCTL code is reserved for use by OxProg. For the other codes, see
  35. // IOCTL.h in the source of the CFU950 USB driver.
  36. #define OXCFU950_QUERY_INFO                 (OXCFU950_IOCTL_FUNCTION+0)
  37. //------------------------------------------------------------------------------
  38. // Define the card type enumerations (as put in dwRequestedType in the structure
  39. // defined below).
  40. // The serial driver only processes the IOCTL if it contains this code:
  41. #define     OX_FOR_SERIAL_DRIVER              0
  42. // The multifunction only processes the IOCTL if it contains this code:
  43. #define     OX_FOR_MULTIFUNCTION_DRIVER       1
  44. // The USB driver only processes the IOCTL if it contains this code:
  45. #define     OX_FOR_USB_DRIVER                 2
  46. // The USB INFO ONLY driver only processes the IOCTL if it contains this code:
  47. #define     OX_FOR_USB_INFO_ONLY_DRIVER       3
  48. //------------------------------------------------------------------------------
  49. // We set this number in the dwMagicNumber Field as a valid response check.
  50. //
  51. #define OXMAGICNUMBER       0x01020304
  52. //------------------------------------------------------------------------------
  53. // Whether it is an IO or memory mapped port (goes in the dwIoType field).
  54. //
  55. #define IO_TYPE             0
  56. #define MEMORY_TYPE         1
  57. //------------------------------------------------------------------------------
  58. #define OX_DEVICE_ID_SIZE   512
  59. #define OX_RESOURCES_SIZE   2048
  60. struct OxQueryDeviceInfo {
  61.     // To be filled in by the caller.
  62.     ULONG   dwRequestedType;
  63.     ULONG   dwIoType;
  64.     // The version of the interface.
  65.     ULONG   dwVersion;
  66.     TCHAR   DeviceId[OX_DEVICE_ID_SIZE];
  67.     // Number of bytes of data recorded in Resources.
  68.     ULONG   dwResourceLength;
  69.     // The content of Resources depends on the type of device, which can be
  70.     // determined by looking at ChipId.
  71.     unsigned char Resources[OX_RESOURCES_SIZE];
  72.     ULONG   dwMagicNumber;
  73.     // The four bytes read from the UART - e.g. 0x16, 0xC9, 0x50, 0x0A for the
  74.     // mPCI954. This is also filled in by the USB driver according to the
  75.     // version number in the UART part of the device.
  76.     ULONG   ChipId;
  77. };
  78. //------------------------------------------------------------------------------
  79. // If the device is a CFU950, the Resources field of the OxQueryDeviceInfo
  80. // structure is as follows:
  81. /*
  82. typedef struct _CFU950_RESOURCE_INFO {
  83.     PHYSICAL_ADDRESS         ioBase_;
  84.     ULONG                    ioLength_;
  85.     PHYSICAL_ADDRESS         memBase_;
  86.     ULONG                    memLength_;
  87. } CFU950_RESOURCE_INFO, *PCFU950_RESOURCE_INFO;
  88. */
  89. #define IOCTL_OXSER_CF950_GPIO 
  90.     CTL_CODE( FILE_DEVICE_SERIAL_PORT, 62, METHOD_BUFFERED, FILE_READ_ACCESS )
  91. #endif
  92. /*-----------------------------------------------------------------------------*
  93.  *                           End of oxdevicequery.h                            *
  94.  *-----------------------------------------------------------------------------*
  95.  */