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