/* * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _WIFI_H #define _WIFI_H #if __cplusplus extern "C" { #endif /** * Load the Wi-Fi driver. * * @return 0 on success, < 0 on failure. */ /*int wifi_load_driver();*/ /** * Unload the Wi-Fi driver. * * @return 0 on success, < 0 on failure. */ /*int wifi_unload_driver();*/ /** * Check if the Wi-Fi driver is loaded. * * @return 0 on success, < 0 on failure. */ /*int is_wifi_driver_loaded();*/ /** * Start supplicant. * * @return 0 on success, < 0 on failure. */ /*int wifi_start_supplicant(int p2pSupported);*/ /** * Stop supplicant. * * @return 0 on success, < 0 on failure. */ /*int wifi_stop_supplicant(int p2pSupported);*/ /** * Open a connection to supplicant * * @return 0 on success, < 0 on failure. */ /*int wifi_connect_to_supplicant();*/ /** * Close connection to supplicant * * @return 0 on success, < 0 on failure. */ /*void wifi_close_supplicant_connection();*/ /** * wifi_wait_for_event() performs a blocking call to * get a Wi-Fi event and returns a string representing * a Wi-Fi event when it occurs. * * @param buf is the buffer that receives the event * @param len is the maximum length of the buffer * * @returns number of bytes in buffer, 0 if no * event (for instance, no connection), and less than 0 * if there is an error. */ /*int wifi_wait_for_event(char *buf, size_t len);*/ /** * wifi_command() issues a command to the Wi-Fi driver. * * Android extends the standard commands listed at * /link http://hostap.epitest.fi/wpa_supplicant/devel/ctrl_iface_page.html * to include support for sending commands to the driver: * * See wifi/java/android/net/wifi/WifiNative.java for the details of * driver commands that are supported * * @param command is the string command (preallocated with 32 bytes) * @param commandlen is command buffer length * @param reply is a buffer to receive a reply string * @param reply_len on entry, this is the maximum length of * the reply buffer. On exit, the number of * bytes in the reply buffer. * * @return 0 if successful, < 0 if an error. */ /*int wifi_command(const char *command, char *reply, size_t reply_len);*/ /** * do_dhcp_request() issues a dhcp request and returns the acquired * information. * * All IPV4 addresses/mask are in network byte order. * * @param ipaddr return the assigned IPV4 address * @param gateway return the gateway being used * @param mask return the IPV4 mask * @param dns1 return the IPV4 address of a DNS server * @param dns2 return the IPV4 address of a DNS server * @param server return the IPV4 address of DHCP server * @param lease return the length of lease in seconds. * * @return 0 if successful, < 0 if error. */ /*int do_dhcp_request(int *ipaddr, int *gateway, int *mask, int *dns1, int *dns2, int *server, int *lease); */ /** * Return the error string of the last do_dhcp_request(). */ /*const char *get_dhcp_error_string(); */ /** * Return the path to requested firmware */ #define WIFI_GET_FW_PATH_STA 0 #define WIFI_GET_FW_PATH_AP 1 #define WIFI_GET_FW_PATH_P2P 2 const char *wifi_get_fw_path(int fw_type); /** * Change the path to firmware for the wlan driver */ int wifi_change_fw_path(const char *fwpath); /** * Check and create if necessary initial entropy file */ #ifndef WIFI_ENTROPY_FILE //#define WIFI_ENTROPY_FILE "/etc/wifi/entropy.bin" #define WIFI_ENTROPY_FILE "/mnt/UDISK/wifi/entropy.bin" #endif int ensure_entropy_file_exists(); /*path of firmware for WIFI in different mode*/ #ifndef WIFI_DRIVER_FW_PATH_STA //#define WIFI_DRIVER_FW_PATH_STA "/lib/firmware/fw_bcm43438a0.bin" #define WIFI_DRIVER_FW_PATH_STA "/lib/firmware/fw_bcm43436b0.bin" #endif #ifndef WIFI_DRIVER_FW_PATH_AP //#define WIFI_DRIVER_FW_PATH_AP "/lib/firmware/fw_bcm43438a0_apsta.bin" #define WIFI_DRIVER_FW_PATH_AP "/lib/firmware/fw_bcm43436b0_apsta.bin" #endif #ifndef WIFI_DRIVER_FW_PATH_P2P //#define WIFI_DRIVER_FW_PATH_P2P "/lib/firmware/fw_bcm43438a0_p2p.bin" #define WIFI_DRIVER_FW_PATH_P2P "/lib/firmware/fw_bcm43436b0_p2p.bin" #endif #ifndef WIFI_DRIVER_FW_PATH_PARAM #define WIFI_DRIVER_FW_PATH_PARAM "/sys/module/bcmdhd/parameters/firmware_path" #endif /** * PATH_MAX */ #ifndef PATH_MAX #define PATH_MAX 4096 #endif /* Evaluate EXPRESSION, and repeat as long as it returns -1 with `errno' set to EINTR. */ #ifndef TEMP_FAILURE_RETRY #define TEMP_FAILURE_RETRY(expression) \ (__extension__ \ ({ long int __result; \ do __result = (long int) (expression); \ while (__result == -1L && errno == EINTR); \ __result; })) #endif #if __cplusplus }; // extern "C" #endif #endif // _WIFI_H