Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.
Path: blob/next/external/cache/sources/wl/shared/wlu_remote.h
Views: 3959
/*1* OS independent remote wl declarations2*3* $Copyright (C) 2008 Broadcom Corporation$4*5* $Id: wlu_remote.h 401759 2013-05-13 16:08:08Z sudhirbs $6*/7#ifndef _wlu_remote_h8#define _wlu_remote_h9#include <wlioctl.h>10/* Remote wl declararions */11#define NO_REMOTE 012#define REMOTE_SERIAL 113#define REMOTE_SOCKET 214#define REMOTE_WIFI 315#define REMOTE_DONGLE 416#define SHELL_CMD -1 /* Invalid cmd id for shell */17#define ASD_CMD -2 /* Cmd id for ASD command */18#define SERVER_RESPONSE_MAX_BUF_LEN 819219#define SHELL_RESP_SIZE 102420#define CTRLC_PACKET 0xDEADBEAF21#define CTRLC_FLAG -422#define VISTA_CMD -3 /* cmd id for remote vista */2324/* For cross OS support */25/* For autonegotiation to work, these defines should be26* the same for client and server.27*/28#define UNKNOWN_OS 029#define LINUX_OS 130#define WIN32_OS 231#define MAC_OSX 332#define BACKLOG 433#define WINVISTA_OS 534#define INDONGLE 635#define INVALID_OS 7 /* Should be last */3637/* Used in cdc_ioctl_t.flags field */38#define REMOTE_SET_IOCTL 139#define REMOTE_GET_IOCTL 240#define REMOTE_REPLY 441#define REMOTE_SHELL_CMD 842#define REMOTE_FINDSERVER_IOCTL 16 /* Find remote server */43#define REMOTE_ASD_CMD 32 /* ASD integration */44#define RDHD_SET_IOCTL 6445#define RDHD_GET_IOCTL 12846#define REMOTE_VISTA_CMD 256 /* for remote vista specific commands */47#define REMOTE_NEGOTIATE_CMD 512 /* for RWL negotiation */48#define NEGOTIATE_GET_OS 0 /* detect remote OS */49#define RWL_WIFI_DEFAULT_TYPE 0x0050#define RWL_WIFI_DEFAULT_SUBTYPE 0x0051#define RWL_ACTION_FRAME_DATA_SIZE 1024 /* fixed size for the wifi frame data */52#define RWL_WIFI_CDC_HEADER_OFFSET 053#define RWL_WIFI_FRAG_DATA_SIZE 960 /* max size of the frag data */54#define RWL_DEFAULT_WIFI_FRAG_COUNT 127 /* maximum fragment count */55#define RWL_WIFI_RETRY 5 /* CMD retry count for wifi */56#define RWL_WIFI_RX_RETRY 20 /* WIFI response rerty count */57#define RWL_WIFI_SEND 5 /* WIFI frame sent count */58#define RWL_WIFI_RETRY_DELAY 1000 /* wifi specific retry delay */59#define RWL_WIFI_SEND_DELAY 100 /* delay between two frames */60#define RWL_WIFI_RX_DELAY 250 /* wait between send and receive */61#define RWL_WIFI_RX_SHELL_DELAY 1000 /* delay added for shell cmd response read */62#define RWL_CHANNEL_RX_SCAN_DELAY 10 /* Delay between findserver rx calls */63#define RWL_CHANNEL_SCAN_WAIT 250 /* Sleep time in between the channel scans */64#define RWL_WIFI_BUF_LEN 6465#define RWL_WIFI_SHELL_CMD 166#define RWL_WIFI_WL_CMD 067#define RWL_WIFI_FIND_SER_CMD "findserver"68#define RWL_WIFI_ACTION_CMD "wifiaction"69#define RWL_WIFI_GET_ACTION_CMD "rwlwifivsaction"70#define RWL_DONGLE_SET_CMD "dongleset"71#define DATA_FRAME_LEN 96072/* wl & shell cmd work fine for 960 (512+256+128+64) */737475/*76* Information about the action frame data fields in the77* dot11_action_wifi_vendor_specific78* cdc struct (1 to 16. This does not include status flag. Since this79* is not directly visible to the driver code we cant use sizeof struct80* cdc_ioctl_t. Hence Ref MAC address offset starts from byte 17.81* REF MAC ADDR (6 bytes (MAC Address len) from byte 17 to 22)82* DUT MAC ADDR (6 bytes after the REF MAC Address byte 23 to 28)83* unused (byte 29 to 49)84* REF/Client Channel offset (50)85* DUT/Server channel offset (51)86* ---------------------------------------------------------------------------------------87* cdc struct|REF MAC ADDR|DUT_MAC_ADDR|un used|REF Channel|DUT channel|Action frame Data|88* 1---------17-----------23-------------------50----------51----------52----------------104089* REF MAC addr after CDC struct without status flag (status flag not used by wifi)90*/91#define RWL_ACTION_WIFI_CATEGORY 127 /* Vendor Specific category value for wifi */92#define RWL_REF_MAC_ADDRESS_OFFSET 1793#define RWL_DUT_MAC_ADDRESS_OFFSET 2394#define RWL_WIFI_CLIENT_CHANNEL_OFFSET 5095#define RWL_WIFI_SERVER_CHANNEL_OFFSET 519697#define SUCCESS 198#define FAIL -199#define NO_PACKET -2100#define SERIAL_PORT_ERR -3101102#define DEFAULT_SERVER_PORT 8000103104#define WL_MAX_BUF_LEN (127 * 1024)105#define MAX_VISTA_ARGC 10106#define HOST_TO_NETWORK TRUE107#define NETWORK_TO_HOST FALSE108109#ifndef IFNAMSIZ110#define IFNAMSIZ 16111#endif112113#if defined (WIN32) || defined (LINUX)114/* We don't want the server to allocate bigger buffers for some of the commands115* like scanresults. Server can still allocate 8K memory and send the response116* in fragments. This is used in case of Get commands only.117*/118#define SERVER_RESPONSE_MAX_BUF_LEN 8192119#endif120/* Used to set the cmds for wifi specific init */121typedef struct remote_wifi_cmds {122uint32 cmd; /* common ioctl definition */123char *data; /* max size of the data length */124int value;125} remote_wifi_cmds_t;126127/* Added for debug utility support */128#define ERR stderr129#define OUTPUT stdout130131#define DEBUG_DEFAULT 0x0001132#define DEBUG_ERR 0x0001133#define DEBUG_INFO 0x0002134#define DEBUG_DBG 0x0004135136/* #ifdef TARGETOS_symbian */137#if 0138/* There is some side-defect when SymbianPrintf is used139* Error in Com Port Recv140*/141extern void SymbianPrintf(void *fd, char *format, ...);142#define DPRINT_ERR if (defined_debug & DEBUG_ERR) \143SymbianPrintf144#define DPRINT_INFO if (defined_debug & DEBUG_INFO) \145SymbianPrintf146#define DPRINT_DBG if (defined_debug & DEBUG_DBG) \147SymbianPrintf148#else149#define DPRINT_ERR if (defined_debug & DEBUG_ERR) \150fprintf151#define DPRINT_INFO if (defined_debug & DEBUG_INFO) \152fprintf153#define DPRINT_DBG if (defined_debug & DEBUG_DBG) \154fprintf155#endif /* TARGETOS_symbian */156extern unsigned short defined_debug;157#ifdef WIN32158#if 0159#define IPV4_ADDR_LEN 4160/* IPV4 packet formats */161struct ipv4_addr {162uint8 addr[IPV4_ADDR_LEN];163} PACKED;164#endif165/* Function defined in wlu.c for client and wlu_server_ce.c for server */166extern int wl_atoip(const char *a, struct ipv4_addr *n);167#endif /* WIN32 */168/* Function defined to do host to network and network to host conversions */169void rwl_swap_header(rem_ioctl_t *rem_ptr, bool host_to_network);170171/* Macros to access remote type */172extern int remote_type;173#define rwl_get_remote_type() (remote_type)174#define rwl_set_remote_type(type) (remote_type = type)175176/* Macros to access server IP and port globals */177extern char *g_rwl_servIP;178#define rwl_get_server_ip() (g_rwl_servIP)179#define rwl_set_server_ip(ip) (g_rwl_servIP = ip)180extern unsigned short g_rwl_servport;181#define rwl_get_server_port() (g_rwl_servport)182#define rwl_set_server_port(port) (g_rwl_servport = port)183184/* Wrapper functions defined in wlu_pipe_xxx.c where xxx is OS specific */185extern int rwl_read_serial_port(void* hndle, char* read_buf, uint data_size, uint *numread);186extern int rwl_write_serial_port(void* hndle, char* write_buf, unsigned long size,187unsigned long *numwritten);188extern void rwl_sleep(int delay);189extern void* rwl_open_transport(int remote_type, char *port, int ReadTotalTimeout, int debug);190extern int rwl_close_transport(int remote_type, void * handle);191extern int rwl_poll_serial_buffer(void *hndle);192extern int rwl_serial_handle_timeout(void);193extern void rwl_sync_delay(uint noframes);194195#ifdef RWL_SOCKET196extern int rwl_connectsocket(int SocketDes, struct sockaddr* SerAddr, int SizeOfAddr);197extern int rwl_acceptconnection(int SocketDes, struct sockaddr *ClientAddr, int *SizeOfAddr);198extern int rwl_send_to_streamsocket(int SocketDes, const char* SendBuff, int data_size, int Flag);199extern int rwl_receive_from_streamsocket(int SocketDes, char* RecvBuff, int data_size, int Flag);200extern int rwl_init_server_socket_setup(int argc, char** argv, uint remote_type);201#ifdef vxworks202extern int rwl_GetifAddr(char *ifname, char *ifaddr);203#else204extern int rwl_GetifAddr(char *ifname, struct sockaddr_in* sa);205#endif /* vxworks */206#endif /* RWL_SOCKET */207208#if defined(vxworks) || defined(LINUX)209extern int set_interface(void *wl, char *intf_name);210#endif /* defined(vxworks) || defined(LINUX) */211212/* Win32 specific function wlu_pipe_win32.c */213extern int rwl_init_ws2_32dll(void);214extern int rwl_terminate_ws2_32dll(void);215216/* Function definitions for wlu_client_shared.c and wlu_server_shared.c */217extern int rwl_var_getbuf(void *wl, const char *iovar, void *param, int param_len, void **bufptr);218extern int rwl_var_setbuf(void *wl, const char *iovar, void *param, int param_len);219extern int rwl_var_send_vs_actionframe(void* wl, const char* iovar, void* param, int param_len);220221/* Function definitions for wlu_ndis.c/wlu_linux.c and wlu_server_ce.c/wlu_server_linux.c */222extern int wl_get(void *wl, int cmd, void *buf, int len);223extern int wl_set(void *wl, int cmd, void *buf, int len);224#ifdef RWLASD225typedef unsigned char BYTE;226extern void wfa_dut_init(BYTE **tBuf, BYTE **rBuf, BYTE **paBuf, BYTE **cBuf, struct timeval **);227extern int remote_asd_exec(unsigned char* command, int* cmd_len);228void wfa_dut_deinit(void);229#endif230extern int get_ctrlc_header(void *wl);231extern int remote_tx_response(void *wl, void *buf_ptr, int cmd);232extern rem_ioctl_t *g_rem_ptr;233extern int g_rwl_hndle;234#if defined (LINUX) || defined (MACOSX)235/* Variable to indiate if the server child has completed execution */236extern volatile sig_atomic_t g_sig_chld;237#endif238239/*240* Separate paths are defined for android and linux machines241* / filesystem on android is read only memory242*/243#ifndef WIN32244#ifdef TARGETENV_android245#define SH_PATH "/data/busybox/sh"246#define SHELL_RESP_PATH "/data/local/RWL/" /* Default path for storing files for shell response */247#define TEMPLATE "/data/local/RWL/SyncXXXXXX"248#else249#define SHELL_RESP_PATH "/tmp/RWL/" /* Default path for storing files for shell response */250#define TEMPLATE "/tmp/RWL/SyncXXXXXX"251#define SH_PATH "/bin/sh"252#endif253#endif /* !WIN32 */254#endif /* _wlu_remote_h */255256257