2 * Copyright (c) 2013-2019 Arm Limited. All rights reserved.
4 * SPDX-License-Identifier: Apache-2.0
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
10 * www.apache.org/licenses/LICENSE-2.0
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.
19 #include "Driver_WiFi.h"
21 #define ARM_WIFI_DRV_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(1, 0) // Driver version
24 static const ARM_DRIVER_VERSION driver_version = {
29 // Driver Capabilities
30 static const ARM_WIFI_CAPABILITIES driver_capabilities = {
31 0U, // Station supported
32 0U, // Access Point supported
33 0U, // Concurrent Station and Access Point not supported
34 0U, // WiFi Protected Setup (WPS) for Station supported
35 0U, // WiFi Protected Setup (WPS) for Access Point not supported
36 0U, // Access Point: event generated on Station connect
37 0U, // Access Point: event not generated on Station disconnect
38 0U, // Event not generated on Ethernet frame reception in bypass mode
39 0U, // Bypass or pass-through mode (Ethernet interface) not supported
40 0U, // IP (UDP/TCP) (Socket interface) supported
41 0U, // IPv6 (Socket interface) not supported
42 0U, // Ping (ICMP) supported
43 0U // Reserved (must be zero)
45 static ARM_DRIVER_VERSION WiFi_GetVersion (void) {
46 return driver_version;
49 static ARM_WIFI_CAPABILITIES WiFi_GetCapabilities (void) {
50 return driver_capabilities;
53 static int32_t WiFi_Initialize (ARM_WIFI_SignalEvent_t cb_event) {
55 return ARM_DRIVER_ERROR_UNSUPPORTED;
58 static int32_t WiFi_Uninitialize (void) {
59 return ARM_DRIVER_ERROR_UNSUPPORTED;
62 static int32_t WiFi_PowerControl (ARM_POWER_STATE state) {
64 return ARM_DRIVER_ERROR_UNSUPPORTED;
67 static int32_t WiFi_GetModuleInfo (char *module_info, uint32_t max_len) {
68 (void)module_info; (void) max_len;
69 return ARM_DRIVER_ERROR_UNSUPPORTED;
72 static int32_t WiFi_SetOption (uint32_t interface, uint32_t option, const void *data, uint32_t len) {
73 (void)interface; (void) option; (void)data; (void)len;
74 return ARM_DRIVER_ERROR_UNSUPPORTED;
77 static int32_t WiFi_GetOption (uint32_t interface, uint32_t option, void *data, uint32_t *len) {
78 (void)interface; (void) option; (void)data; (void)len;
79 return ARM_DRIVER_ERROR_UNSUPPORTED;
81 static int32_t WiFi_Scan (ARM_WIFI_SCAN_INFO_t scan_info[], uint32_t max_num) {
82 (void)scan_info; (void)max_num;
83 return ARM_DRIVER_ERROR_UNSUPPORTED;
86 static int32_t WiFi_Activate (uint32_t interface, const ARM_WIFI_CONFIG_t *config) {
87 (void)interface; (void)config;
88 return ARM_DRIVER_ERROR_UNSUPPORTED;
91 static int32_t WiFi_Deactivate (uint32_t interface) {
93 return ARM_DRIVER_ERROR_UNSUPPORTED;
96 static uint32_t WiFi_IsConnected (void) {
100 static int32_t WiFi_GetNetInfo (ARM_WIFI_NET_INFO_t *net_info) {
102 return ARM_DRIVER_ERROR_UNSUPPORTED;
105 static int32_t WiFi_BypassControl (uint32_t interface, uint32_t mode) {
106 (void)interface; (void)mode;
107 return ARM_DRIVER_ERROR_UNSUPPORTED;
110 static int32_t WiFi_EthSendFrame (uint32_t interface, const uint8_t *frame, uint32_t len){
111 (void)interface; (void)frame; (void)len;
112 return ARM_DRIVER_ERROR_UNSUPPORTED;
115 static int32_t WiFi_EthReadFrame (uint32_t interface, uint8_t *frame, uint32_t len){
116 (void)interface; (void)frame; (void)len;
117 return ARM_DRIVER_ERROR_UNSUPPORTED;
120 static int32_t WiFi_EthGetRxFrameSize (uint32_t interface){
122 return ARM_DRIVER_ERROR_UNSUPPORTED;
125 static int32_t WiFi_SocketCreate (int32_t af, int32_t type, int32_t protocol) {
126 (void)af; (void)type; (void)protocol;
127 return ARM_DRIVER_ERROR_UNSUPPORTED;
130 static int32_t WiFi_SocketBind (int32_t socket, const uint8_t *ip, uint32_t ip_len, uint16_t port) {
131 (void)socket; (void)ip; (void)ip_len; (void)port;
132 return ARM_DRIVER_ERROR_UNSUPPORTED;
136 static int32_t WiFi_SocketListen (int32_t socket, int32_t backlog) {
137 return ARM_DRIVER_ERROR_UNSUPPORTED;
140 static int32_t WiFi_SocketAccept (int32_t socket, uint8_t *ip, uint32_t *ip_len, uint16_t *port) {
141 return ARM_DRIVER_ERROR_UNSUPPORTED;
144 static int32_t WiFi_SocketConnect (int32_t socket, const uint8_t *ip, uint32_t ip_len, uint16_t port) {
145 return ARM_DRIVER_ERROR_UNSUPPORTED;
148 static int32_t WiFi_SocketRecv (int32_t socket, void *buf, uint32_t len) {
149 return ARM_DRIVER_ERROR_UNSUPPORTED;
152 static int32_t WiFi_SocketRecvFrom (int32_t socket, void *buf, uint32_t len, uint8_t *ip, uint32_t *ip_len, uint16_t *port) {
153 return ARM_DRIVER_ERROR_UNSUPPORTED;
156 static int32_t WiFi_SocketSend (int32_t socket, const void *buf, uint32_t len) {
157 return ARM_DRIVER_ERROR_UNSUPPORTED;
160 static int32_t WiFi_SocketSendTo (int32_t socket, const void *buf, uint32_t len, const uint8_t *ip, uint32_t ip_len, uint16_t port) {
161 return ARM_DRIVER_ERROR_UNSUPPORTED;
164 static int32_t WiFi_SocketGetSockName (int32_t socket, uint8_t *ip, uint32_t *ip_len, uint16_t *port) {
165 return ARM_DRIVER_ERROR_UNSUPPORTED;
168 static int32_t WiFi_SocketGetPeerName (int32_t socket, uint8_t *ip, uint32_t *ip_len, uint16_t *port) {
169 return ARM_DRIVER_ERROR_UNSUPPORTED;
172 static int32_t WiFi_SocketGetOpt (int32_t socket, int32_t opt_id, void *opt_val, uint32_t *opt_len) {
173 return ARM_DRIVER_ERROR_UNSUPPORTED;
176 static int32_t WiFi_SocketSetOpt (int32_t socket, int32_t opt_id, const void *opt_val, uint32_t opt_len) {
177 return ARM_DRIVER_ERROR_UNSUPPORTED;
180 static int32_t WiFi_SocketClose (int32_t socket) {
181 return ARM_DRIVER_ERROR_UNSUPPORTED;
184 static int32_t WiFi_SocketGetHostByName (const char *name, int32_t af, uint8_t *ip, uint32_t *ip_len) {
185 return ARM_DRIVER_ERROR_UNSUPPORTED;
188 static int32_t WiFi_Ping (const uint8_t *ip, uint32_t ip_len) {
189 return ARM_DRIVER_ERROR_UNSUPPORTED;
192 /* WiFi Driver Control Block */
194 ARM_DRIVER_WIFI Driver_WiFi_(WIFI_DRIVER);
195 ARM_DRIVER_WIFI Driver_WiFi_(WIFI_DRIVER) = {
197 WiFi_GetCapabilities,
211 WiFi_EthGetRxFrameSize,
212 WiFi_EthGetRxFrameSize,
222 WiFi_SocketGetSockName,
223 WiFi_SocketGetPeerName,
227 WiFi_SocketGetHostByName,