|  | /* | 
|  | * IPWireless 3G PCMCIA Network Driver | 
|  | * | 
|  | * Original code | 
|  | *   by Stephen Blackheath <stephen@blacksapphire.com>, | 
|  | *      Ben Martel <benm@symmetric.co.nz> | 
|  | * | 
|  | * Copyrighted as follows: | 
|  | *   Copyright (C) 2004 by Symmetric Systems Ltd (NZ) | 
|  | * | 
|  | * Various driver changes and rewrites, port to new kernels | 
|  | *   Copyright (C) 2006-2007 Jiri Kosina | 
|  | * | 
|  | * Misc code cleanups and updates | 
|  | *   Copyright (C) 2007 David Sterba | 
|  | */ | 
|  |  | 
|  | #ifndef _IPWIRELESS_CS_SETUP_PROTOCOL_H_ | 
|  | #define _IPWIRELESS_CS_SETUP_PROTOCOL_H_ | 
|  |  | 
|  | /* Version of the setup protocol and transport protocols */ | 
|  | #define TL_SETUP_VERSION		1 | 
|  |  | 
|  | #define TL_SETUP_VERSION_QRY_TMO	1000 | 
|  | #define TL_SETUP_MAX_VERSION_QRY	30 | 
|  |  | 
|  | /* Message numbers 0-9 are obsoleted and must not be reused! */ | 
|  | #define TL_SETUP_SIGNO_GET_VERSION_QRY	10 | 
|  | #define TL_SETUP_SIGNO_GET_VERSION_RSP	11 | 
|  | #define TL_SETUP_SIGNO_CONFIG_MSG	12 | 
|  | #define TL_SETUP_SIGNO_CONFIG_DONE_MSG	13 | 
|  | #define TL_SETUP_SIGNO_OPEN_MSG		14 | 
|  | #define TL_SETUP_SIGNO_CLOSE_MSG	15 | 
|  |  | 
|  | #define TL_SETUP_SIGNO_INFO_MSG     20 | 
|  | #define TL_SETUP_SIGNO_INFO_MSG_ACK 21 | 
|  |  | 
|  | #define TL_SETUP_SIGNO_REBOOT_MSG      22 | 
|  | #define TL_SETUP_SIGNO_REBOOT_MSG_ACK  23 | 
|  |  | 
|  | /* Synchronous start-messages */ | 
|  | struct tl_setup_get_version_qry { | 
|  | unsigned char sig_no;		/* TL_SETUP_SIGNO_GET_VERSION_QRY */ | 
|  | } __attribute__ ((__packed__)); | 
|  |  | 
|  | struct tl_setup_get_version_rsp { | 
|  | unsigned char sig_no;		/* TL_SETUP_SIGNO_GET_VERSION_RSP */ | 
|  | unsigned char version;		/* TL_SETUP_VERSION */ | 
|  | } __attribute__ ((__packed__)); | 
|  |  | 
|  | struct tl_setup_config_msg { | 
|  | unsigned char sig_no;		/* TL_SETUP_SIGNO_CONFIG_MSG */ | 
|  | unsigned char port_no; | 
|  | unsigned char prio_data; | 
|  | unsigned char prio_ctrl; | 
|  | } __attribute__ ((__packed__)); | 
|  |  | 
|  | struct tl_setup_config_done_msg { | 
|  | unsigned char sig_no;		/* TL_SETUP_SIGNO_CONFIG_DONE_MSG */ | 
|  | } __attribute__ ((__packed__)); | 
|  |  | 
|  | /* Asyncronous messages */ | 
|  | struct tl_setup_open_msg { | 
|  | unsigned char sig_no;		/* TL_SETUP_SIGNO_OPEN_MSG */ | 
|  | unsigned char port_no; | 
|  | } __attribute__ ((__packed__)); | 
|  |  | 
|  | struct tl_setup_close_msg { | 
|  | unsigned char sig_no;		/* TL_SETUP_SIGNO_CLOSE_MSG */ | 
|  | unsigned char port_no; | 
|  | } __attribute__ ((__packed__)); | 
|  |  | 
|  | /* Driver type  - for use in tl_setup_info_msg.driver_type */ | 
|  | #define COMM_DRIVER     0 | 
|  | #define NDISWAN_DRIVER  1 | 
|  | #define NDISWAN_DRIVER_MAJOR_VERSION  2 | 
|  | #define NDISWAN_DRIVER_MINOR_VERSION  0 | 
|  |  | 
|  | /* | 
|  | * It should not matter when this message comes over as we just store the | 
|  | * results and send the ACK. | 
|  | */ | 
|  | struct tl_setup_info_msg { | 
|  | unsigned char sig_no;		/* TL_SETUP_SIGNO_INFO_MSG */ | 
|  | unsigned char driver_type; | 
|  | unsigned char major_version; | 
|  | unsigned char minor_version; | 
|  | } __attribute__ ((__packed__)); | 
|  |  | 
|  | struct tl_setup_info_msgAck { | 
|  | unsigned char sig_no;		/* TL_SETUP_SIGNO_INFO_MSG_ACK */ | 
|  | } __attribute__ ((__packed__)); | 
|  |  | 
|  | struct TlSetupRebootMsgAck { | 
|  | unsigned char sig_no;		/* TL_SETUP_SIGNO_REBOOT_MSG_ACK */ | 
|  | } __attribute__ ((__packed__)); | 
|  |  | 
|  | /* Define a union of all the msgs that the driver can receive from the card.*/ | 
|  | union ipw_setup_rx_msg { | 
|  | unsigned char sig_no; | 
|  | struct tl_setup_get_version_rsp version_rsp_msg; | 
|  | struct tl_setup_open_msg open_msg; | 
|  | struct tl_setup_close_msg close_msg; | 
|  | struct tl_setup_info_msg InfoMsg; | 
|  | struct tl_setup_info_msgAck info_msg_ack; | 
|  | } __attribute__ ((__packed__)); | 
|  |  | 
|  | #endif				/* _IPWIRELESS_CS_SETUP_PROTOCOL_H_ */ |