• Main Page
  • Modules
  • Data Structures
  • Files
  • File List
  • Globals

wlp_proto.h

00001 /*
00002  * Copyright (C) 2012, H&D Wireless AB All rights reserved.
00003  *
00004  * The license to use this software in whole and in part and to
00005  * redistribute it in any form follows with the WiFi HW module from H&D
00006  * Wireless and is granted under the following restrictions:
00007  * 
00008  * 1. Redistributions of source code must retain the above copyright
00009  *    notice, this list of conditions and the following disclaimer.
00010  *
00011  * 2. Redistributions in binary form must reproduce the above copyright
00012  *    notice, this list of conditions and the following disclaimer in the
00013  *    documentation and/or other materials provided with the distribution.
00014  *
00015  * 3. The name of H&D Wireless AB may not be used to endorse or promote
00016  *    products derived from this software without specific prior written
00017  *    permission.
00018  *
00019  * 4. The software may only be used together with hardware from H&D
00020  *    Wireless all other use is prohibited.
00021  *
00022  * 5. The license to use and redistribute the software is granted
00023  *    together with the purchase of a hardware platform on a one to one
00024  *    basis.
00025  *
00026  * 6. The binary code may not be reversed engineered or by other means
00027  *    copied to circumvent this license.
00028  * 
00029  * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY
00030  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00031  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00032  * PURPOSE ARE EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT
00033  * SHALL HD WIRELESS AB BE LIABLE FOR ANY DIRECT, INDIRECT,
00034  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
00035  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
00036  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
00037  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
00038  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00039  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
00040  * OF THE POSSIBILITY OF SUCH DAMAGE.
00041  *
00042  * For more information regarding this software license Contact H&D
00043  * Wireless AB (support@hd-wireless.se).
00044  *
00045  */
00046 
00047 #ifndef WLP_PROTO_H
00048 #define WLP_PROTO_H
00049 
00050 #include <stdint.h>
00051 
00052 /* Message types */
00053 #define WLP_TYPE_MGMT_REQ  0
00054 #define WLP_TYPE_MGMT_CFM  1
00055 #define WLP_TYPE_DATA_REQ  2
00056 #define WLP_TYPE_DATA_CFM  3
00057 #define WLP_TYPE_DATA_IND  4
00058 
00059 /* Message id's */
00060 #define WLP_UART_CONFIG 0
00061 #define WLP_POLL        1
00062 #define WLP_FW_VERSION  2
00063 #define WLP_FW_UPGRADE  28
00064 #define WLP_SET_MODE    22
00065 #define WLP_SET_CHANNEL 23
00066 #define WLP_RESET       24
00067 #define WLP_GET_MODE    26
00068 #define WLP_SET_PS_CONF 29
00069 #define WLP_SET_PS_ENABLE 30
00070 #define WLP_SET_CONFIG  31
00071 #define WLP_SET_LED     32
00072 #define WLP_SET_HEARTBEAT 33
00073 #define WLP_SET_POLL_PERIOD 34
00074 #define WLP_GET_CONFIG  35
00075 
00076 #define WLP_LINK_UP        3
00077 #define WLP_LINK_DOWN      4
00078 #define WLP_LINK_STATUS    5
00079 #define WLP_LINK_INFO      6
00080 
00081 #define WLP_NET_STATUS     7
00082 #define WLP_NET_CONFIG     8
00083 #define WLP_NET_INFO       9
00084 #define WLP_NET_DNSLOOKUP  10
00085 #define WLP_NET_DHCPD      25
00086 
00087 #define WLP_SOCK_OPEN    11
00088 #define WLP_SOCK_BIND    12
00089 #define WLP_SOCK_LISTEN  13 
00090 #define WLP_SOCK_CONNECT 14
00091 
00092 #define WLP_SOCK_CLOSE  15
00093 #define WLP_SOCK_RECV   16
00094 #define WLP_SOCK_SEND   17
00095 #define WLP_SOCK_SENDTO 18
00096 #define WLP_SOCK_STATUS 19
00097 #define WLP_SOCK_ACCEPT 20
00098 #define WLP_SOCK_INFO   21
00099 #define WLP_SOCK_DATA   27
00100 
00102 enum wlp_auth_mode {
00103         WLP_AUTH_AUTO = 0,
00104         WLP_AUTH_WEP,
00105         WLP_AUTH_WPA_PSK,
00106         WLP_AUTH_WPA2_PSK
00107 };
00108 
00109 
00110 enum wlp_fw_upgrade_method {
00111         WLP_UPGRADE_METHOD_HTTP_POST
00112 };
00113 
00114 #ifndef WL_API_H
00115 #define WL_MAX_PASS_LEN 64
00116 #define WL_SSID_MAX_LENGTH 32
00117 #define WL_MAC_ADDR_LENGTH 6
00118 struct wl_ssid_t {
00119         char ssid[WL_SSID_MAX_LENGTH];
00120         uint8_t len;
00121 };
00122 
00123 struct wl_mac_addr_t {
00124         uint8_t octet[WL_MAC_ADDR_LENGTH];
00125 };
00126 
00127 #define WL_MODE_STA 0
00128 #define WL_MODE_AP  1
00129 
00130 #endif /* WL_API_H */
00131 
00132 /* Message alignment */
00133 #define WLP_SIZE_ALIGNMENT 4
00134 #define WLP_SIZE_ALIGNMENT_MASK (WLP_SIZE_ALIGNMENT - 1)
00135 #define wlp_pad(len)  \
00136         (((len) & WLP_SIZE_ALIGNMENT_MASK) ?                            \
00137          WLP_SIZE_ALIGNMENT - ((len) & WLP_SIZE_ALIGNMENT_MASK) : 0)
00138 
00139 
00140 #ifndef __LWIP_IP_ADDR_H__
00141 
00142 /*
00143  * The struct ip_addr type is based on work from the lwIP network stack.
00144  *
00145  */
00146 
00147 /*
00148  * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
00149  * All rights reserved.
00150  *
00151  * Redistribution and use in source and binary forms, with or without
00152  * modification,  are permitted provided that the following conditions are met:
00153  *
00154  * 1. Redistributions of source code must retain the above copyright notice,
00155  *    this list of conditions and the following disclaimer.
00156  * 2. Redistributions in binary form must reproduce the above copyright notice,
00157  *    this list of conditions and the following disclaimer in the documentation
00158  *    and/or other materials provided with the distribution.
00159  * 3. The name of the author may not be used to endorse or promote products
00160  *    derived from this software without specific prior written permission.
00161  *
00162  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
00163  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
00164  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
00165  * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
00166  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00167  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00168  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00169  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00170  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
00171  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00172  */
00173 
00174 struct ip_addr {
00175         uint32_t addr;
00176 };
00177 
00178 extern const struct ip_addr ip_addr_any;
00179 
00180 #define IP_ADDR_ANY ((struct ip_addr *) &ip_addr_any)
00181 #define IP4_ADDR(ipaddr, a,b,c,d)                               \
00182         (ipaddr)->addr = htonl(((uint32_t)((a) & 0xff) << 24) | \
00183                                ((uint32_t)((b) & 0xff) << 16) | \
00184                                ((uint32_t)((c) & 0xff) << 8) |  \
00185                                (uint32_t)((d) & 0xff))
00186 #define ip_addr_set(dest, src) \
00187         (dest)->addr = ((src) == NULL? 0: (src)->addr)
00188 #define ip_addr_netcmp(addr1, addr2, mask) \
00189         (((addr1)->addr & (mask)->addr) == ((addr2)->addr & (mask)->addr))
00190 #define ip_addr_cmp(addr1, addr2) \
00191         ((addr1)->addr == (addr2)->addr)
00192 #define ip_addr_isany(addr1) \
00193         ((addr1) == NULL || (addr1)->addr == 0)
00194 
00195 #define ip4_addr1(ipaddr) ((uint16_t)(ntohl((ipaddr)->addr) >> 24) & 0xff)
00196 #define ip4_addr2(ipaddr) ((uint16_t)(ntohl((ipaddr)->addr) >> 16) & 0xff)
00197 #define ip4_addr3(ipaddr) ((uint16_t)(ntohl((ipaddr)->addr) >> 8) & 0xff)
00198 #define ip4_addr4(ipaddr) ((uint16_t)(ntohl((ipaddr)->addr)) & 0xff)
00199 
00200 #endif /* __LWIP_IP_ADDR_H__ */
00201 
00202 #define WLP_VERSION(a,b,c) (((uint32_t)((a) & 0xff) << 16) |            \
00203                             ((uint32_t)((b) & 0xff) << 8) |             \
00204                             (uint32_t)((c) & 0xff))
00205 #define WLP_MAJOR_VERSION(code) ((uint16_t)((code) >> 16) & 0xff)
00206 #define WLP_MINOR_VERSION(code) ((uint16_t)((code) >> 8) & 0xff)
00207 #define WLP_PATCH_VERSION(code) ((uint16_t)((code)) & 0xff)
00208 
00209 /* !\ingroup wlp_api */
00210 #define WLP_CAP_HA_PIN    (1 << 0) 
00211 #define WLP_CAP_WAKEUP_PIN (1 << 1) 
00213 struct wlp_uart_config_req {
00214         uint32_t baudrate;
00215         uint8_t rtscts;
00216         uint8_t pad[3];
00217 }; /* sizeof: 8 */
00218 
00219 struct wlp_set_config_req {
00220         uint8_t flags;
00221 #define WLP_FLAG_WAKEUP_PIN_PRESENT 1
00222         uint8_t pad[3];
00223 }; /* sizeof: 4 */
00224 
00225 struct wlp_get_config_req {
00226 }; /* sizeof: 0 */
00227 
00228 struct wlp_poll_req {
00229 }; /* sizeof: 0 */
00230 
00231 struct wlp_fw_version_req {
00232 }; /* sizeof: 0 */
00233 
00234 struct wlp_fw_upgrade_req {
00235         struct ip_addr addr;
00236         uint16_t port;
00237         uint8_t method;
00238         char pad[1];
00239 #define WLP_PATH_MAX_LENGTH 127
00240         char path[WLP_PATH_MAX_LENGTH + 1];
00241 }; /* sizeof: 136 */
00242 
00243 struct wlp_set_mode_req {
00244         uint8_t mode;
00245         uint8_t pad[3];
00246 }; /* sizeof: 4 */
00247 
00248 struct wlp_get_mode_req {
00249 }; /* sizeof: 0 */
00250 
00251 struct wlp_set_channel_req {
00252         uint8_t channel;
00253         uint8_t pad[3];
00254 }; /* sizeof: 4 */
00255 
00256 struct wlp_set_ps_conf_req {
00257         uint32_t ps_delay;
00258         uint32_t traffic_timeout;
00259         uint16_t listen_interval;
00260         uint8_t ps_poll;
00261         uint8_t rx_all_dtim;
00262         char pad[3];
00263 }; /* sizeof: 24 */
00264 
00265 struct wlp_set_ps_enable_req {
00266         uint8_t enable;
00267         uint8_t pad[3];
00268 }; /* sizeof: 4 */
00269 
00270 struct wlp_set_led_req {
00271         uint8_t enable;
00272         uint8_t pad[3];
00273 }; /* sizeof: 4 */
00274 
00275 struct wlp_set_heartbeat_req {
00276         uint32_t period;
00277 }; /* sizeof: 4 */
00278 
00279 struct wlp_set_poll_period_req {
00280         uint32_t period;
00281 }; /* sizeof: 4 */
00282 
00283 struct wlp_reset_req {
00284 }; /* sizeof: 0 */
00285 
00286 struct wlp_link_up_req {
00287         struct wl_ssid_t ssid;
00288         char pad[3];
00289         char key[WL_MAX_PASS_LEN];
00290         uint8_t auth;
00291         char pad2[3];
00292 }; /* sizeof: 104 */
00293 
00294 struct wlp_link_down_req {
00295 }; /* sizeof: 0 */
00296 
00297 struct wlp_link_status_req {
00298 }; /* sizeof: 0 */
00299 
00300 struct wlp_link_info_req {
00301 }; /* sizeof: 0 */
00302 
00303 struct wlp_net_status_req {
00304 }; /* sizeof: 0 */
00305 
00306 struct wlp_net_config_req {
00307         struct ip_addr ip;
00308         struct ip_addr netmask;
00309         struct ip_addr gw;
00310         struct ip_addr dns_server;
00311         int8_t dhcp;
00312         char pad[3];
00313 }; /* sizeof: 24 */
00314 
00315 struct wlp_net_info_req {
00316 }; /* sizeof: 0 */
00317 
00318 struct wlp_net_dnslookup_req {
00319 #define WLP_HOSTNAME_MAX_LENGTH 127
00320         char host[WLP_HOSTNAME_MAX_LENGTH + 1];
00321 }; /* sizeof: 128 */
00322 
00323 struct wlp_net_dhcpd_req {
00324         uint8_t enable;
00325         char pad[3];
00326 }; /* sizeof: 4 */
00327 
00328 
00329 struct wlp_sock_open_req {
00330 #define WLP_SOCK_STREAM 0
00331 #define WLP_SOCK_DGRAM  1
00332 #define WLP_SOCK_RAW    2
00333         uint8_t stype;
00334         uint8_t protocol;
00335         char pad[2];
00336 }; /* sizeof: 4 */
00337 
00338 struct wlp_sock_bind_req {
00339         struct ip_addr ip;
00340         int16_t sockid;
00341         uint16_t port;
00342 }; /* sizeof: 8 */
00343 
00344 struct wlp_sock_listen_req {
00345         int16_t sockid;
00346         int8_t backlog;
00347         char pad[1];
00348 }; /* sizeof: 4 */
00349 
00350 struct wlp_sock_connect_req {
00351         struct ip_addr ip;
00352         int16_t sockid;
00353         uint16_t port;
00354 }; /* sizeof: 8 */
00355 
00356 struct wlp_sock_close_req {
00357         int16_t sockid;
00358         char pad[2];
00359 }; /* sizeof: 4 */
00360 
00361 struct wlp_sock_recv_req {
00362         int16_t sockid;
00363         int16_t datalen;
00364 }; /* sizeof: 4 */
00365 
00366 struct wlp_sock_send_req {
00367         int16_t sockid;
00368         int16_t datalen;
00369 }; /* sizeof: 4 */
00370 
00371 struct wlp_sock_sendto_req {
00372         struct ip_addr addr;
00373         int16_t sockid;
00374         int16_t datalen;
00375         uint16_t port;
00376         char pad[2];
00377 }; /* sizeof: 12 */
00378 
00379 struct wlp_sock_status_req {
00380         int16_t sockid;
00381         char pad[2];
00382 }; /* sizeof: 4 */
00383 
00384 struct wlp_sock_accept_req {
00385         int16_t sockid;
00386         char pad[2];
00387 }; /* sizeof: 4 */
00388 
00389 struct wlp_sock_info_req {
00390         int16_t sockid;
00391         char pad[2];
00392 }; /* sizeof: 4 */
00393 
00394 
00395 struct wlp_uart_config_cfm {
00396         int8_t mode; /* operation mode */
00397         char pad[3];
00398 }; /* sizeof: 4 */
00399 
00400 struct wlp_set_config_cfm {
00401 }; /* sizeof: 0 */
00402 
00403 struct wlp_get_config_cfm {
00404         uint8_t flags;
00405         uint8_t pad[3];
00406 }; /* sizeof: 4 */
00407 
00408 struct wlp_poll_cfm {
00409 }; /* sizeof: 0 */
00410 
00411 struct wlp_fw_version_cfm {
00412         uint8_t major; /* WLP_VERSION(a, b, c) */
00413         uint8_t minor; /* WLP_VERSION(a, b, c) */
00414         uint8_t patch; /* WLP_VERSION(a, b, c) */
00415         char pad[1];
00416         char build[16];
00417         char hw_rev[16];
00418 }; /* sizeof: 36 */
00419 
00420 struct wlp_fw_upgrade_cfm {
00421 }; /* sizeof: 0 */
00422 
00423 struct wlp_set_mode_cfm {
00424 }; /* sizeof: 0 */
00425 
00426 struct wlp_get_mode_cfm {
00427         uint8_t mode;
00428         char pad[3];
00429 }; /* sizeof: 4 */
00430 
00431 struct wlp_set_channel_cfm {
00432 }; /* sizeof: 0 */
00433 
00434 struct wlp_set_ps_conf_cfm {
00435 }; /* sizeof: 0 */
00436 
00437 struct wlp_set_ps_enable_cfm {
00438 }; /* sizeof: 0 */
00439 
00440 struct wlp_set_led_cfm {
00441 }; /* sizeof: 0 */
00442 
00443 struct wlp_set_heartbeat_cfm {
00444 }; /* sizeof: 0 */
00445 
00446 struct wlp_set_poll_period_cfm {
00447 }; /* sizeof: 0 */
00448 
00449 struct wlp_reset_cfm {
00450 }; /* sizeof: 0 */
00451 
00452 struct wlp_link_up_cfm {
00453 }; /* sizeof: 0 */
00454 
00455 struct wlp_link_down_cfm {
00456 }; /* sizeof: 0 */
00457 
00458 struct wlp_link_status_cfm {
00459 }; /* sizeof: 0 */
00460 
00461 struct wlp_link_info_cfm {
00462         struct wl_mac_addr_t hwaddr;
00463         struct wl_mac_addr_t ap;
00464         struct wl_ssid_t ssid;
00465         char pad[3];
00466         int16_t rssi;
00467         int16_t snr;
00468 }; /* sizeof: 52 */
00469 
00470 struct wlp_net_status_cfm {
00471 }; /* sizeof: 0 */
00472  
00473 struct wlp_net_config_cfm {
00474 }; /* sizeof: 0 */
00475 
00476 struct wlp_net_info_cfm {
00477         struct ip_addr ip;
00478         struct ip_addr netmask;
00479         struct ip_addr gw;
00480         struct ip_addr dns_server;
00481         struct ip_addr dns_lookup;
00482 
00483 #define WLP_DNS_OK       0
00484 #define WLP_DNS_ERROR   -1
00485 #define WLP_DNS_AGAIN   -2
00486 #define WLP_DNS_INVALID -3
00487         int8_t dns_result;
00488         int8_t dhcp;
00489         char pad[2];
00490 }; /* sizeof: 24 */
00491 
00492 struct wlp_net_dnslookup_cfm {
00493 }; /* sizeof: 0 */
00494 
00495 struct wlp_net_dhcpd_cfm {
00496 }; /* sizeof: 0 */
00497 
00498 struct wlp_sock_open_cfm {
00499 }; /* sizeof: 0 */
00500 
00501 struct wlp_sock_bind_cfm {
00502 }; /* sizeof: 0 */
00503 
00504 struct wlp_sock_listen_cfm {
00505 }; /* sizeof: 0 */
00506 
00507 struct wlp_sock_connect_cfm {
00508 }; /* sizeof: 0 */
00509 
00510 struct wlp_sock_close_cfm {
00511 }; /* sizeof: 0 */
00512 
00513 struct wlp_sock_recv_cfm {
00514 }; /* sizeof: 0 */
00515 
00516 struct wlp_sock_send_cfm {
00517 }; /* sizeof: 0 */
00518 
00519 struct wlp_sock_sendto_cfm {
00520 }; /* sizeof: 4 */
00521 
00522 struct wlp_sock_status_cfm {
00523 #define WLP_SOCK_STATE_DISCONNECTED 0 /* default */
00524 #define WLP_SOCK_STATE_CONNECTED 1
00525 #define WLP_SOCK_STATE_LISTEN 2
00526 #define WLP_SOCK_STATE_ACCEPT 3
00527 #define WLP_SOCK_STATE_ERROR 4
00528         int8_t state;
00529         char pad[3];
00530 }; /* sizeof: 4 */
00531 
00532 struct wlp_sock_accept_cfm {
00533 }; /* sizeof: 0 */
00534 
00535 struct wlp_sock_info_cfm {
00536         struct ip_addr peer;
00537 }; /* sizeof: 4 */
00538 
00539 struct wlp_hdr {
00540         uint16_t len;
00541         uint8_t type;
00542         uint8_t id;
00543         int16_t res;
00544         uint8_t pad;
00545         char reserved[1];
00546 };
00547 
00548 struct wlp_req {
00549         union {
00550                 struct wlp_uart_config_req uart_config;
00551                 struct wlp_set_config_req config;
00552                 struct wlp_get_config_req fw_config;
00553                 struct wlp_poll_req poll;
00554                 struct wlp_fw_version_req fw_version;
00555                 struct wlp_fw_upgrade_req fw_upgrade;
00556                 struct wlp_set_mode_req set_mode;
00557                 struct wlp_get_mode_req get_mode;
00558                 struct wlp_set_channel_req set_channel;
00559                 struct wlp_set_ps_conf_req ps_config;
00560                 struct wlp_set_ps_enable_req ps_enable;
00561                 struct wlp_set_led_req led_enable;
00562                 struct wlp_set_heartbeat_req heartbeat;
00563                 struct wlp_set_poll_period_req poll_period;
00564                 struct wlp_reset_req reset;
00565                 
00566                 struct wlp_link_up_req link_up;
00567                 struct wlp_link_down_req link_down;
00568                 struct wlp_link_status_req link_status;
00569                 struct wlp_link_info_req link_info;
00570 
00571                 struct wlp_net_status_req net_status;
00572                 struct wlp_net_config_req net_config;
00573                 struct wlp_net_info_req net_info;
00574                 struct wlp_net_dnslookup_req net_dnslookup;
00575                 struct wlp_net_dhcpd_req net_dhcpd;
00576 
00577                 struct wlp_sock_open_req sock_open;
00578                 struct wlp_sock_bind_req sock_bind;
00579                 struct wlp_sock_listen_req sock_listen;
00580                 struct wlp_sock_connect_req sock_connect;
00581                 struct wlp_sock_close_req sock_close;
00582                 struct wlp_sock_recv_req sock_recv;
00583                 struct wlp_sock_send_req sock_send;
00584                 struct wlp_sock_sendto_req sock_sendto;
00585                 struct wlp_sock_status_req sock_status;
00586                 struct wlp_sock_accept_req sock_accept;
00587                 struct wlp_sock_info_req sock_info;
00588         };
00589 };
00590 
00591 struct wlp_cfm {
00592         union {
00593                 struct wlp_uart_config_cfm uart_config;
00594                 struct wlp_set_config_cfm config;
00595                 struct wlp_get_config_cfm fw_config;
00596                 struct wlp_poll_cfm poll;
00597                 struct wlp_fw_version_cfm fw_version;
00598                 struct wlp_fw_upgrade_cfm fw_upgrade;
00599                 struct wlp_set_mode_cfm set_mode;
00600                 struct wlp_get_mode_cfm get_mode;
00601                 struct wlp_set_channel_cfm set_channel;
00602                 struct wlp_set_ps_conf_cfm ps_config;
00603                 struct wlp_set_ps_enable_cfm ps_enable;
00604                 struct wlp_set_led_cfm led_enable;
00605                 struct wlp_set_heartbeat_cfm heartbeat;
00606                 struct wlp_set_poll_period_cfm poll_period;
00607                 struct wlp_reset_cfm reset;
00608                 
00609                 struct wlp_link_up_cfm link_up;
00610                 struct wlp_link_down_cfm link_down;
00611                 struct wlp_link_status_cfm link_status;
00612                 struct wlp_link_info_cfm link_info;
00613                 
00614                 struct wlp_net_status_cfm net_status;
00615                 struct wlp_net_config_cfm net_config;
00616                 struct wlp_net_info_cfm net_info;
00617                 struct wlp_net_dnslookup_cfm net_dnslookup;
00618                 struct wlp_net_dhcpd_cfm net_dhcpd;
00619 
00620                 struct wlp_sock_open_cfm sock_open;
00621                 struct wlp_sock_bind_cfm sock_bind;
00622                 struct wlp_sock_listen_cfm sock_listen;
00623                 struct wlp_sock_connect_cfm sock_connect;
00624                 struct wlp_sock_close_cfm sock_close;
00625                 struct wlp_sock_recv_cfm sock_recv;
00626                 struct wlp_sock_send_cfm sock_send;
00627                 struct wlp_sock_sendto_cfm sock_sendto;
00628                 struct wlp_sock_status_cfm sock_status;
00629                 struct wlp_sock_accept_cfm sock_accept;
00630                 struct wlp_sock_info_cfm sock_info;
00631         };
00632 };
00633 
00634 struct wlp_data {
00635         /* char payload[]; len bytes of data follow */
00636 };
00637 
00638 struct wlp_msg {
00639         struct wlp_hdr hdr;
00640         union {
00641                 struct wlp_req req;
00642                 struct wlp_cfm cfm;
00643                 struct wlp_data data;
00644         };
00645 };
00646 
00647 /* API version */
00648 #define WLP_VERSION_CODE WLP_VERSION(1,3,0)
00649 
00650 #endif /* WLP_PROTO_H */

Generated on Fri Apr 27 2012 13:21:26 for API Reference Manual by  doxygen 1.7.1