p2p.h 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. /*
  2. ** Id: //Department/DaVinci/TRUNK/WiFi_P2P_Driver/include/nic/p2p.h#3
  3. */
  4. /*
  5. ** Log: p2p.h
  6. *
  7. * 07 17 2012 yuche.tsai
  8. * NULL
  9. * Compile no error before trial run.
  10. *
  11. * 10 20 2010 wh.su
  12. * [WCXRP00000124] [MT6620 Wi-Fi] [Driver] Support the dissolve P2P Group
  13. * Add the code to support disconnect p2p group
  14. *
  15. * 09 21 2010 kevin.huang
  16. * [WCXRP00000054] [MT6620 Wi-Fi][Driver] Restructure driver for second Interface
  17. * Isolate P2P related function for Hardware Software Bundle
  18. *
  19. * 08 03 2010 cp.wu
  20. * NULL
  21. * [Wi-Fi Direct] add framework for driver hooks
  22. *
  23. * 07 08 2010 cp.wu
  24. *
  25. * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
  26. *
  27. * 06 23 2010 cp.wu
  28. * [WPD00003833][MT6620 and MT5931] Driver migration
  29. * p2p interface revised to be sync. with HAL
  30. *
  31. * 06 06 2010 kevin.huang
  32. * [WPD00003832][MT6620 5931] Create driver base
  33. * [MT6620 5931] Create driver base
  34. *
  35. * 05 18 2010 cp.wu
  36. * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
  37. * add parameter to control:
  38. * 1) auto group owner
  39. * 2) P2P-PS parameter (CTWindow, NoA descriptors)
  40. *
  41. * 05 18 2010 cp.wu
  42. * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
  43. * correct WPS Device Password ID definition.
  44. *
  45. * 05 17 2010 cp.wu
  46. * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
  47. * implement get scan result.
  48. *
  49. * 05 17 2010 cp.wu
  50. * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
  51. * add basic handling framework for wireless extension ioctls.
  52. *
  53. * 05 14 2010 cp.wu
  54. * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
  55. * add ioctl framework for Wi-Fi Direct by reusing wireless extension ioctls as well
  56. *
  57. * 05 11 2010 cp.wu
  58. * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
  59. * p2p ioctls revised.
  60. *
  61. * 05 10 2010 cp.wu
  62. * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
  63. * implement basic wi-fi direct framework
  64. *
  65. * 05 07 2010 cp.wu
  66. * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
  67. * add basic framework for implementating P2P driver hook.
  68. *
  69. *
  70. */
  71. #ifndef _P2P_H
  72. #define _P2P_H
  73. /*******************************************************************************
  74. * C O M P I L E R F L A G S
  75. ********************************************************************************
  76. */
  77. /*******************************************************************************
  78. * E X T E R N A L R E F E R E N C E S
  79. ********************************************************************************
  80. */
  81. /*******************************************************************************
  82. * C O N S T A N T S
  83. ********************************************************************************
  84. */
  85. /* refer to 'Config Methods' in WPS */
  86. #define WPS_CONFIG_USBA 0x0001
  87. #define WPS_CONFIG_ETHERNET 0x0002
  88. #define WPS_CONFIG_LABEL 0x0004
  89. #define WPS_CONFIG_DISPLAY 0x0008
  90. #define WPS_CONFIG_EXT_NFC 0x0010
  91. #define WPS_CONFIG_INT_NFC 0x0020
  92. #define WPS_CONFIG_NFC 0x0040
  93. #define WPS_CONFIG_PBC 0x0080
  94. #define WPS_CONFIG_KEYPAD 0x0100
  95. /* refer to 'Device Password ID' in WPS */
  96. #define WPS_DEV_PASSWORD_ID_PIN 0x0000
  97. #define WPS_DEV_PASSWORD_ID_USER 0x0001
  98. #define WPS_DEV_PASSWORD_ID_MACHINE 0x0002
  99. #define WPS_DEV_PASSWORD_ID_REKEY 0x0003
  100. #define WPS_DEV_PASSWORD_ID_PUSHBUTTON 0x0004
  101. #define WPS_DEV_PASSWORD_ID_REGISTRAR 0x0005
  102. #define P2P_DEVICE_TYPE_NUM 2
  103. #define P2P_DEVICE_NAME_LENGTH 32
  104. #define P2P_NETWORK_NUM 8
  105. #define P2P_MEMBER_NUM 8
  106. #define P2P_WILDCARD_SSID "DIRECT-"
  107. /*******************************************************************************
  108. * M A C R O S
  109. ********************************************************************************
  110. */
  111. /*******************************************************************************
  112. * D A T A T Y P E S
  113. ********************************************************************************
  114. */
  115. struct _P2P_INFO_T {
  116. UINT_32 u4DeviceNum;
  117. EVENT_P2P_DEV_DISCOVER_RESULT_T arP2pDiscoverResult[CFG_MAX_NUM_BSS_LIST];
  118. PUINT_8 pucCurrIePtr;
  119. UINT_8 aucCommIePool[CFG_MAX_COMMON_IE_BUF_LEN]; /* A common pool for IE of all scan results. */
  120. };
  121. typedef enum {
  122. ENUM_P2P_PEER_GROUP,
  123. ENUM_P2P_PEER_DEVICE,
  124. ENUM_P2P_PEER_NUM
  125. } ENUM_P2P_PEER_TYPE, *P_ENUM_P2P_PEER_TYPE;
  126. typedef struct _P2P_DEVICE_INFO {
  127. UINT_8 aucDevAddr[PARAM_MAC_ADDR_LEN];
  128. UINT_8 aucIfAddr[PARAM_MAC_ADDR_LEN];
  129. UINT_8 ucDevCapabilityBitmap;
  130. INT_32 i4ConfigMethod;
  131. UINT_8 aucPrimaryDeviceType[8];
  132. UINT_8 aucSecondaryDeviceType[8];
  133. UINT_8 aucDeviceName[P2P_DEVICE_NAME_LENGTH];
  134. } P2P_DEVICE_INFO, *P_P2P_DEVICE_INFO;
  135. typedef struct _P2P_GROUP_INFO {
  136. PARAM_SSID_T rGroupID;
  137. P2P_DEVICE_INFO rGroupOwnerInfo;
  138. UINT_8 ucMemberNum;
  139. P2P_DEVICE_INFO arMemberInfo[P2P_MEMBER_NUM];
  140. } P2P_GROUP_INFO, *P_P2P_GROUP_INFO;
  141. typedef struct _P2P_NETWORK_INFO {
  142. ENUM_P2P_PEER_TYPE eNodeType;
  143. union {
  144. P2P_GROUP_INFO rGroupInfo;
  145. P2P_DEVICE_INFO rDeviceInfo;
  146. } node;
  147. } P2P_NETWORK_INFO, *P_P2P_NETWORK_INFO;
  148. typedef struct _P2P_NETWORK_LIST {
  149. UINT_8 ucNetworkNum;
  150. P2P_NETWORK_INFO rP2PNetworkInfo[P2P_NETWORK_NUM];
  151. } P2P_NETWORK_LIST, *P_P2P_NETWORK_LIST;
  152. typedef struct _P2P_DISCONNECT_INFO {
  153. UINT_8 ucRole;
  154. UINT_8 ucRsv[3];
  155. } P2P_DISCONNECT_INFO, *P_P2P_DISCONNECT_INFO;
  156. /*******************************************************************************
  157. * P U B L I C D A T A
  158. ********************************************************************************
  159. */
  160. /*******************************************************************************
  161. * P R I V A T E D A T A
  162. ********************************************************************************
  163. */
  164. /*******************************************************************************
  165. * F U N C T I O N D E C L A R A T I O N S
  166. ********************************************************************************
  167. */
  168. #endif /*_P2P_H */