| David Sterba | 099dc4f | 2008-02-07 10:57:12 +0100 | [diff] [blame] | 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_ */ |