Driver_WiFi.c 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. /*
  2. * Copyright (c) 2013-2020 Arm Limited. All rights reserved.
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Licensed under the Apache License, Version 2.0 (the License); you may
  7. * not use this file except in compliance with the License.
  8. * You may obtain a copy of the License at
  9. *
  10. * www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an AS IS BASIS, WITHOUT
  14. * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. * See the License for the specific language governing permissions and
  16. * limitations under the License.
  17. */
  18. #include "Driver_WiFi.h"
  19. #define ARM_WIFI_DRV_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(1, 0) // Driver version
  20. // Driver Version
  21. static const ARM_DRIVER_VERSION driver_version = {
  22. ARM_WIFI_API_VERSION,
  23. ARM_WIFI_DRV_VERSION
  24. };
  25. // Driver Capabilities
  26. static const ARM_WIFI_CAPABILITIES driver_capabilities = {
  27. 0U, // Station supported
  28. 0U, // Access Point supported
  29. 0U, // Concurrent Station and Access Point not supported
  30. 0U, // WiFi Protected Setup (WPS) for Station supported
  31. 0U, // WiFi Protected Setup (WPS) for Access Point not supported
  32. 0U, // Access Point: event generated on Station connect
  33. 0U, // Access Point: event not generated on Station disconnect
  34. 0U, // Event not generated on Ethernet frame reception in bypass mode
  35. 0U, // Bypass or pass-through mode (Ethernet interface) not supported
  36. 0U, // IP (UDP/TCP) (Socket interface) supported
  37. 0U, // IPv6 (Socket interface) not supported
  38. 0U, // Ping (ICMP) supported
  39. 0U // Reserved (must be zero)
  40. };
  41. static ARM_DRIVER_VERSION ARM_WiFi_GetVersion (void) {
  42. return driver_version;
  43. }
  44. static ARM_WIFI_CAPABILITIES ARM_WiFi_GetCapabilities (void) {
  45. return driver_capabilities;
  46. }
  47. static int32_t ARM_WiFi_Initialize (ARM_WIFI_SignalEvent_t cb_event) {
  48. return ARM_DRIVER_ERROR_UNSUPPORTED;
  49. }
  50. static int32_t ARM_WiFi_Uninitialize (void) {
  51. return ARM_DRIVER_ERROR_UNSUPPORTED;
  52. }
  53. static int32_t ARM_WiFi_PowerControl (ARM_POWER_STATE state) {
  54. return ARM_DRIVER_ERROR_UNSUPPORTED;
  55. }
  56. static int32_t ARM_WiFi_GetModuleInfo (char *module_info, uint32_t max_len) {
  57. return ARM_DRIVER_ERROR_UNSUPPORTED;
  58. }
  59. static int32_t ARM_WiFi_SetOption (uint32_t interface, uint32_t option, const void *data, uint32_t len) {
  60. return ARM_DRIVER_ERROR_UNSUPPORTED;
  61. }
  62. static int32_t ARM_WiFi_GetOption (uint32_t interface, uint32_t option, void *data, uint32_t *len) {
  63. return ARM_DRIVER_ERROR_UNSUPPORTED;
  64. }
  65. static int32_t ARM_WiFi_Scan (ARM_WIFI_SCAN_INFO_t scan_info[], uint32_t max_num) {
  66. return ARM_DRIVER_ERROR_UNSUPPORTED;
  67. }
  68. static int32_t ARM_WiFi_Activate (uint32_t interface, const ARM_WIFI_CONFIG_t *config) {
  69. return ARM_DRIVER_ERROR_UNSUPPORTED;
  70. }
  71. static int32_t ARM_WiFi_Deactivate (uint32_t interface) {
  72. return ARM_DRIVER_ERROR_UNSUPPORTED;
  73. }
  74. static uint32_t ARM_WiFi_IsConnected (void) {
  75. return 0U;
  76. }
  77. static int32_t ARM_WiFi_GetNetInfo (ARM_WIFI_NET_INFO_t *net_info) {
  78. return ARM_DRIVER_ERROR_UNSUPPORTED;
  79. }
  80. static int32_t ARM_WiFi_BypassControl (uint32_t interface, uint32_t mode) {
  81. return ARM_DRIVER_ERROR_UNSUPPORTED;
  82. }
  83. static int32_t ARM_WiFi_EthSendFrame (uint32_t interface, const uint8_t *frame, uint32_t len){
  84. return ARM_DRIVER_ERROR_UNSUPPORTED;
  85. }
  86. static int32_t ARM_WiFi_EthReadFrame (uint32_t interface, uint8_t *frame, uint32_t len){
  87. return ARM_DRIVER_ERROR_UNSUPPORTED;
  88. }
  89. static uint32_t ARM_WiFi_EthGetRxFrameSize (uint32_t interface){
  90. return 0U;
  91. }
  92. static int32_t ARM_WiFi_SocketCreate (int32_t af, int32_t type, int32_t protocol) {
  93. return ARM_DRIVER_ERROR_UNSUPPORTED;
  94. }
  95. static int32_t ARM_WiFi_SocketBind (int32_t socket, const uint8_t *ip, uint32_t ip_len, uint16_t port) {
  96. return ARM_DRIVER_ERROR_UNSUPPORTED;
  97. }
  98. static int32_t ARM_WiFi_SocketListen (int32_t socket, int32_t backlog) {
  99. return ARM_DRIVER_ERROR_UNSUPPORTED;
  100. }
  101. static int32_t ARM_WiFi_SocketAccept (int32_t socket, uint8_t *ip, uint32_t *ip_len, uint16_t *port) {
  102. return ARM_DRIVER_ERROR_UNSUPPORTED;
  103. }
  104. static int32_t ARM_WiFi_SocketConnect (int32_t socket, const uint8_t *ip, uint32_t ip_len, uint16_t port) {
  105. return ARM_DRIVER_ERROR_UNSUPPORTED;
  106. }
  107. static int32_t ARM_WiFi_SocketRecv (int32_t socket, void *buf, uint32_t len) {
  108. return ARM_DRIVER_ERROR_UNSUPPORTED;
  109. }
  110. static int32_t ARM_WiFi_SocketRecvFrom (int32_t socket, void *buf, uint32_t len, uint8_t *ip, uint32_t *ip_len, uint16_t *port) {
  111. return ARM_DRIVER_ERROR_UNSUPPORTED;
  112. }
  113. static int32_t ARM_WiFi_SocketSend (int32_t socket, const void *buf, uint32_t len) {
  114. return ARM_DRIVER_ERROR_UNSUPPORTED;
  115. }
  116. static int32_t ARM_WiFi_SocketSendTo (int32_t socket, const void *buf, uint32_t len, const uint8_t *ip, uint32_t ip_len, uint16_t port) {
  117. return ARM_DRIVER_ERROR_UNSUPPORTED;
  118. }
  119. static int32_t ARM_WiFi_SocketGetSockName (int32_t socket, uint8_t *ip, uint32_t *ip_len, uint16_t *port) {
  120. return ARM_DRIVER_ERROR_UNSUPPORTED;
  121. }
  122. static int32_t ARM_WiFi_SocketGetPeerName (int32_t socket, uint8_t *ip, uint32_t *ip_len, uint16_t *port) {
  123. return ARM_DRIVER_ERROR_UNSUPPORTED;
  124. }
  125. static int32_t ARM_WiFi_SocketGetOpt (int32_t socket, int32_t opt_id, void *opt_val, uint32_t *opt_len) {
  126. return ARM_DRIVER_ERROR_UNSUPPORTED;
  127. }
  128. static int32_t ARM_WiFi_SocketSetOpt (int32_t socket, int32_t opt_id, const void *opt_val, uint32_t opt_len) {
  129. return ARM_DRIVER_ERROR_UNSUPPORTED;
  130. }
  131. static int32_t ARM_WiFi_SocketClose (int32_t socket) {
  132. return ARM_DRIVER_ERROR_UNSUPPORTED;
  133. }
  134. static int32_t ARM_WiFi_SocketGetHostByName (const char *name, int32_t af, uint8_t *ip, uint32_t *ip_len) {
  135. return ARM_DRIVER_ERROR_UNSUPPORTED;
  136. }
  137. static int32_t ARM_WiFi_Ping (const uint8_t *ip, uint32_t ip_len) {
  138. return ARM_DRIVER_ERROR_UNSUPPORTED;
  139. }
  140. /* WiFi Driver Control Block */
  141. extern \
  142. ARM_DRIVER_WIFI Driver_WiFi0;
  143. ARM_DRIVER_WIFI Driver_WiFi0 = {
  144. ARM_WiFi_GetVersion,
  145. ARM_WiFi_GetCapabilities,
  146. ARM_WiFi_Initialize,
  147. ARM_WiFi_Uninitialize,
  148. ARM_WiFi_PowerControl,
  149. ARM_WiFi_GetModuleInfo,
  150. ARM_WiFi_SetOption,
  151. ARM_WiFi_GetOption,
  152. ARM_WiFi_Scan,
  153. ARM_WiFi_Activate,
  154. ARM_WiFi_Deactivate,
  155. ARM_WiFi_IsConnected,
  156. ARM_WiFi_GetNetInfo,
  157. ARM_WiFi_BypassControl,
  158. ARM_WiFi_EthSendFrame,
  159. ARM_WiFi_EthReadFrame,
  160. ARM_WiFi_EthGetRxFrameSize,
  161. ARM_WiFi_SocketCreate,
  162. ARM_WiFi_SocketBind,
  163. ARM_WiFi_SocketListen,
  164. ARM_WiFi_SocketAccept,
  165. ARM_WiFi_SocketConnect,
  166. ARM_WiFi_SocketRecv,
  167. ARM_WiFi_SocketRecvFrom,
  168. ARM_WiFi_SocketSend,
  169. ARM_WiFi_SocketSendTo,
  170. ARM_WiFi_SocketGetSockName,
  171. ARM_WiFi_SocketGetPeerName,
  172. ARM_WiFi_SocketGetOpt,
  173. ARM_WiFi_SocketSetOpt,
  174. ARM_WiFi_SocketClose,
  175. ARM_WiFi_SocketGetHostByName,
  176. ARM_WiFi_Ping
  177. };