1 /* 2 * IPWireless 3G PCMCIA Network Driver 3 * 4 * Original code 5 * by Stephen Blackheath <stephen@blacksapphire.com>, 6 * Ben Martel <benm@symmetric.co.nz> 7 * 8 * Copyrighted as follows: 9 * Copyright (C) 2004 by Symmetric Systems Ltd (NZ) 10 * 11 * Various driver changes and rewrites, port to new kernels 12 * Copyright (C) 2006-2007 Jiri Kosina 13 * 14 * Misc code cleanups and updates 15 * Copyright (C) 2007 David Sterba 16 */ 17 18 #ifndef _IPWIRELESS_CS_SETUP_PROTOCOL_H_ 19 #define _IPWIRELESS_CS_SETUP_PROTOCOL_H_ 20 21 /* Version of the setup protocol and transport protocols */ 22 #define TL_SETUP_VERSION 1 23 24 #define TL_SETUP_VERSION_QRY_TMO 1000 25 #define TL_SETUP_MAX_VERSION_QRY 30 26 27 /* Message numbers 0-9 are obsoleted and must not be reused! */ 28 #define TL_SETUP_SIGNO_GET_VERSION_QRY 10 29 #define TL_SETUP_SIGNO_GET_VERSION_RSP 11 30 #define TL_SETUP_SIGNO_CONFIG_MSG 12 31 #define TL_SETUP_SIGNO_CONFIG_DONE_MSG 13 32 #define TL_SETUP_SIGNO_OPEN_MSG 14 33 #define TL_SETUP_SIGNO_CLOSE_MSG 15 34 35 #define TL_SETUP_SIGNO_INFO_MSG 20 36 #define TL_SETUP_SIGNO_INFO_MSG_ACK 21 37 38 #define TL_SETUP_SIGNO_REBOOT_MSG 22 39 #define TL_SETUP_SIGNO_REBOOT_MSG_ACK 23 40 41 /* Synchronous start-messages */ 42 struct tl_setup_get_version_qry { 43 unsigned char sig_no; /* TL_SETUP_SIGNO_GET_VERSION_QRY */ 44 } __attribute__ ((__packed__)); 45 46 struct tl_setup_get_version_rsp { 47 unsigned char sig_no; /* TL_SETUP_SIGNO_GET_VERSION_RSP */ 48 unsigned char version; /* TL_SETUP_VERSION */ 49 } __attribute__ ((__packed__)); 50 51 struct tl_setup_config_msg { 52 unsigned char sig_no; /* TL_SETUP_SIGNO_CONFIG_MSG */ 53 unsigned char port_no; 54 unsigned char prio_data; 55 unsigned char prio_ctrl; 56 } __attribute__ ((__packed__)); 57 58 struct tl_setup_config_done_msg { 59 unsigned char sig_no; /* TL_SETUP_SIGNO_CONFIG_DONE_MSG */ 60 } __attribute__ ((__packed__)); 61 62 /* Asyncronous messages */ 63 struct tl_setup_open_msg { 64 unsigned char sig_no; /* TL_SETUP_SIGNO_OPEN_MSG */ 65 unsigned char port_no; 66 } __attribute__ ((__packed__)); 67 68 struct tl_setup_close_msg { 69 unsigned char sig_no; /* TL_SETUP_SIGNO_CLOSE_MSG */ 70 unsigned char port_no; 71 } __attribute__ ((__packed__)); 72 73 /* Driver type - for use in tl_setup_info_msg.driver_type */ 74 #define COMM_DRIVER 0 75 #define NDISWAN_DRIVER 1 76 #define NDISWAN_DRIVER_MAJOR_VERSION 2 77 #define NDISWAN_DRIVER_MINOR_VERSION 0 78 79 /* 80 * It should not matter when this message comes over as we just store the 81 * results and send the ACK. 82 */ 83 struct tl_setup_info_msg { 84 unsigned char sig_no; /* TL_SETUP_SIGNO_INFO_MSG */ 85 unsigned char driver_type; 86 unsigned char major_version; 87 unsigned char minor_version; 88 } __attribute__ ((__packed__)); 89 90 struct tl_setup_info_msgAck { 91 unsigned char sig_no; /* TL_SETUP_SIGNO_INFO_MSG_ACK */ 92 } __attribute__ ((__packed__)); 93 94 struct TlSetupRebootMsgAck { 95 unsigned char sig_no; /* TL_SETUP_SIGNO_REBOOT_MSG_ACK */ 96 } __attribute__ ((__packed__)); 97 98 /* Define a union of all the msgs that the driver can receive from the card.*/ 99 union ipw_setup_rx_msg { 100 unsigned char sig_no; 101 struct tl_setup_get_version_rsp version_rsp_msg; 102 struct tl_setup_open_msg open_msg; 103 struct tl_setup_close_msg close_msg; 104 struct tl_setup_info_msg InfoMsg; 105 struct tl_setup_info_msgAck info_msg_ack; 106 } __attribute__ ((__packed__)); 107 108 #endif /* _IPWIRELESS_CS_SETUP_PROTOCOL_H_ */ 109