1099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba/* 2099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * IPWireless 3G PCMCIA Network Driver 3099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * 4099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * Original code 5099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * by Stephen Blackheath <stephen@blacksapphire.com>, 6099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * Ben Martel <benm@symmetric.co.nz> 7099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * 8099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * Copyrighted as follows: 9099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * Copyright (C) 2004 by Symmetric Systems Ltd (NZ) 10099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * 11099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * Various driver changes and rewrites, port to new kernels 12099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * Copyright (C) 2006-2007 Jiri Kosina 13099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * 14099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * Misc code cleanups and updates 15099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * Copyright (C) 2007 David Sterba 16099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba */ 17099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba 18099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#ifndef _IPWIRELESS_CS_SETUP_PROTOCOL_H_ 19099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#define _IPWIRELESS_CS_SETUP_PROTOCOL_H_ 20099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba 21099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba/* Version of the setup protocol and transport protocols */ 22099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#define TL_SETUP_VERSION 1 23099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba 24099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#define TL_SETUP_VERSION_QRY_TMO 1000 25099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#define TL_SETUP_MAX_VERSION_QRY 30 26099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba 27099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba/* Message numbers 0-9 are obsoleted and must not be reused! */ 28099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#define TL_SETUP_SIGNO_GET_VERSION_QRY 10 29099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#define TL_SETUP_SIGNO_GET_VERSION_RSP 11 30099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#define TL_SETUP_SIGNO_CONFIG_MSG 12 31099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#define TL_SETUP_SIGNO_CONFIG_DONE_MSG 13 32099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#define TL_SETUP_SIGNO_OPEN_MSG 14 33099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#define TL_SETUP_SIGNO_CLOSE_MSG 15 34099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba 35099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#define TL_SETUP_SIGNO_INFO_MSG 20 36099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#define TL_SETUP_SIGNO_INFO_MSG_ACK 21 37099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba 38099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#define TL_SETUP_SIGNO_REBOOT_MSG 22 39099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#define TL_SETUP_SIGNO_REBOOT_MSG_ACK 23 40099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba 41099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba/* Synchronous start-messages */ 42099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterbastruct tl_setup_get_version_qry { 43099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba unsigned char sig_no; /* TL_SETUP_SIGNO_GET_VERSION_QRY */ 44099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba} __attribute__ ((__packed__)); 45099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba 46099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterbastruct tl_setup_get_version_rsp { 47099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba unsigned char sig_no; /* TL_SETUP_SIGNO_GET_VERSION_RSP */ 48099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba unsigned char version; /* TL_SETUP_VERSION */ 49099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba} __attribute__ ((__packed__)); 50099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba 51099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterbastruct tl_setup_config_msg { 52099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba unsigned char sig_no; /* TL_SETUP_SIGNO_CONFIG_MSG */ 53099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba unsigned char port_no; 54099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba unsigned char prio_data; 55099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba unsigned char prio_ctrl; 56099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba} __attribute__ ((__packed__)); 57099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba 58099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterbastruct tl_setup_config_done_msg { 59099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba unsigned char sig_no; /* TL_SETUP_SIGNO_CONFIG_DONE_MSG */ 60099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba} __attribute__ ((__packed__)); 61099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba 62099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba/* Asyncronous messages */ 63099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterbastruct tl_setup_open_msg { 64099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba unsigned char sig_no; /* TL_SETUP_SIGNO_OPEN_MSG */ 65099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba unsigned char port_no; 66099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba} __attribute__ ((__packed__)); 67099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba 68099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterbastruct tl_setup_close_msg { 69099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba unsigned char sig_no; /* TL_SETUP_SIGNO_CLOSE_MSG */ 70099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba unsigned char port_no; 71099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba} __attribute__ ((__packed__)); 72099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba 73099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba/* Driver type - for use in tl_setup_info_msg.driver_type */ 74099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#define COMM_DRIVER 0 75099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#define NDISWAN_DRIVER 1 76099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#define NDISWAN_DRIVER_MAJOR_VERSION 2 77099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#define NDISWAN_DRIVER_MINOR_VERSION 0 78099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba 79099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba/* 80099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * It should not matter when this message comes over as we just store the 81099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * results and send the ACK. 82099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba */ 83099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterbastruct tl_setup_info_msg { 84099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba unsigned char sig_no; /* TL_SETUP_SIGNO_INFO_MSG */ 85099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba unsigned char driver_type; 86099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba unsigned char major_version; 87099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba unsigned char minor_version; 88099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba} __attribute__ ((__packed__)); 89099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba 90099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterbastruct tl_setup_info_msgAck { 91099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba unsigned char sig_no; /* TL_SETUP_SIGNO_INFO_MSG_ACK */ 92099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba} __attribute__ ((__packed__)); 93099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba 94099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterbastruct TlSetupRebootMsgAck { 95099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba unsigned char sig_no; /* TL_SETUP_SIGNO_REBOOT_MSG_ACK */ 96099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba} __attribute__ ((__packed__)); 97099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba 98099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba/* Define a union of all the msgs that the driver can receive from the card.*/ 99099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterbaunion ipw_setup_rx_msg { 100099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba unsigned char sig_no; 101099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba struct tl_setup_get_version_rsp version_rsp_msg; 102099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba struct tl_setup_open_msg open_msg; 103099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba struct tl_setup_close_msg close_msg; 104099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba struct tl_setup_info_msg InfoMsg; 105099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba struct tl_setup_info_msgAck info_msg_ack; 106099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba} __attribute__ ((__packed__)); 107099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba 108099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#endif /* _IPWIRELESS_CS_SETUP_PROTOCOL_H_ */ 109