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_ */ |