xref: /linux/drivers/tty/ipwireless/setup_protocol.h (revision 498495dba268b20e8eadd7fe93c140c68b6cc9d2)
1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2282361a0SGreg Kroah-Hartman /*
3282361a0SGreg Kroah-Hartman  * IPWireless 3G PCMCIA Network Driver
4282361a0SGreg Kroah-Hartman  *
5282361a0SGreg Kroah-Hartman  * Original code
6282361a0SGreg Kroah-Hartman  *   by Stephen Blackheath <stephen@blacksapphire.com>,
7282361a0SGreg Kroah-Hartman  *      Ben Martel <benm@symmetric.co.nz>
8282361a0SGreg Kroah-Hartman  *
9282361a0SGreg Kroah-Hartman  * Copyrighted as follows:
10282361a0SGreg Kroah-Hartman  *   Copyright (C) 2004 by Symmetric Systems Ltd (NZ)
11282361a0SGreg Kroah-Hartman  *
12282361a0SGreg Kroah-Hartman  * Various driver changes and rewrites, port to new kernels
13282361a0SGreg Kroah-Hartman  *   Copyright (C) 2006-2007 Jiri Kosina
14282361a0SGreg Kroah-Hartman  *
15282361a0SGreg Kroah-Hartman  * Misc code cleanups and updates
16282361a0SGreg Kroah-Hartman  *   Copyright (C) 2007 David Sterba
17282361a0SGreg Kroah-Hartman  */
18282361a0SGreg Kroah-Hartman 
19282361a0SGreg Kroah-Hartman #ifndef _IPWIRELESS_CS_SETUP_PROTOCOL_H_
20282361a0SGreg Kroah-Hartman #define _IPWIRELESS_CS_SETUP_PROTOCOL_H_
21282361a0SGreg Kroah-Hartman 
22282361a0SGreg Kroah-Hartman /* Version of the setup protocol and transport protocols */
23282361a0SGreg Kroah-Hartman #define TL_SETUP_VERSION		1
24282361a0SGreg Kroah-Hartman 
25282361a0SGreg Kroah-Hartman #define TL_SETUP_VERSION_QRY_TMO	1000
26282361a0SGreg Kroah-Hartman #define TL_SETUP_MAX_VERSION_QRY	30
27282361a0SGreg Kroah-Hartman 
28282361a0SGreg Kroah-Hartman /* Message numbers 0-9 are obsoleted and must not be reused! */
29282361a0SGreg Kroah-Hartman #define TL_SETUP_SIGNO_GET_VERSION_QRY	10
30282361a0SGreg Kroah-Hartman #define TL_SETUP_SIGNO_GET_VERSION_RSP	11
31282361a0SGreg Kroah-Hartman #define TL_SETUP_SIGNO_CONFIG_MSG	12
32282361a0SGreg Kroah-Hartman #define TL_SETUP_SIGNO_CONFIG_DONE_MSG	13
33282361a0SGreg Kroah-Hartman #define TL_SETUP_SIGNO_OPEN_MSG		14
34282361a0SGreg Kroah-Hartman #define TL_SETUP_SIGNO_CLOSE_MSG	15
35282361a0SGreg Kroah-Hartman 
36282361a0SGreg Kroah-Hartman #define TL_SETUP_SIGNO_INFO_MSG     20
37282361a0SGreg Kroah-Hartman #define TL_SETUP_SIGNO_INFO_MSG_ACK 21
38282361a0SGreg Kroah-Hartman 
39282361a0SGreg Kroah-Hartman #define TL_SETUP_SIGNO_REBOOT_MSG      22
40282361a0SGreg Kroah-Hartman #define TL_SETUP_SIGNO_REBOOT_MSG_ACK  23
41282361a0SGreg Kroah-Hartman 
42282361a0SGreg Kroah-Hartman /* Synchronous start-messages */
43282361a0SGreg Kroah-Hartman struct tl_setup_get_version_qry {
44282361a0SGreg Kroah-Hartman 	unsigned char sig_no;		/* TL_SETUP_SIGNO_GET_VERSION_QRY */
45282361a0SGreg Kroah-Hartman } __attribute__ ((__packed__));
46282361a0SGreg Kroah-Hartman 
47282361a0SGreg Kroah-Hartman struct tl_setup_get_version_rsp {
48282361a0SGreg Kroah-Hartman 	unsigned char sig_no;		/* TL_SETUP_SIGNO_GET_VERSION_RSP */
49282361a0SGreg Kroah-Hartman 	unsigned char version;		/* TL_SETUP_VERSION */
50282361a0SGreg Kroah-Hartman } __attribute__ ((__packed__));
51282361a0SGreg Kroah-Hartman 
52282361a0SGreg Kroah-Hartman struct tl_setup_config_msg {
53282361a0SGreg Kroah-Hartman 	unsigned char sig_no;		/* TL_SETUP_SIGNO_CONFIG_MSG */
54282361a0SGreg Kroah-Hartman 	unsigned char port_no;
55282361a0SGreg Kroah-Hartman 	unsigned char prio_data;
56282361a0SGreg Kroah-Hartman 	unsigned char prio_ctrl;
57282361a0SGreg Kroah-Hartman } __attribute__ ((__packed__));
58282361a0SGreg Kroah-Hartman 
59282361a0SGreg Kroah-Hartman struct tl_setup_config_done_msg {
60282361a0SGreg Kroah-Hartman 	unsigned char sig_no;		/* TL_SETUP_SIGNO_CONFIG_DONE_MSG */
61282361a0SGreg Kroah-Hartman } __attribute__ ((__packed__));
62282361a0SGreg Kroah-Hartman 
63b3834be5SAdam Buchbinder /* Asynchronous messages */
64282361a0SGreg Kroah-Hartman struct tl_setup_open_msg {
65282361a0SGreg Kroah-Hartman 	unsigned char sig_no;		/* TL_SETUP_SIGNO_OPEN_MSG */
66282361a0SGreg Kroah-Hartman 	unsigned char port_no;
67282361a0SGreg Kroah-Hartman } __attribute__ ((__packed__));
68282361a0SGreg Kroah-Hartman 
69282361a0SGreg Kroah-Hartman struct tl_setup_close_msg {
70282361a0SGreg Kroah-Hartman 	unsigned char sig_no;		/* TL_SETUP_SIGNO_CLOSE_MSG */
71282361a0SGreg Kroah-Hartman 	unsigned char port_no;
72282361a0SGreg Kroah-Hartman } __attribute__ ((__packed__));
73282361a0SGreg Kroah-Hartman 
74282361a0SGreg Kroah-Hartman /* Driver type  - for use in tl_setup_info_msg.driver_type */
75282361a0SGreg Kroah-Hartman #define COMM_DRIVER     0
76282361a0SGreg Kroah-Hartman #define NDISWAN_DRIVER  1
77282361a0SGreg Kroah-Hartman #define NDISWAN_DRIVER_MAJOR_VERSION  2
78282361a0SGreg Kroah-Hartman #define NDISWAN_DRIVER_MINOR_VERSION  0
79282361a0SGreg Kroah-Hartman 
80282361a0SGreg Kroah-Hartman /*
81282361a0SGreg Kroah-Hartman  * It should not matter when this message comes over as we just store the
82282361a0SGreg Kroah-Hartman  * results and send the ACK.
83282361a0SGreg Kroah-Hartman  */
84282361a0SGreg Kroah-Hartman struct tl_setup_info_msg {
85282361a0SGreg Kroah-Hartman 	unsigned char sig_no;		/* TL_SETUP_SIGNO_INFO_MSG */
86282361a0SGreg Kroah-Hartman 	unsigned char driver_type;
87282361a0SGreg Kroah-Hartman 	unsigned char major_version;
88282361a0SGreg Kroah-Hartman 	unsigned char minor_version;
89282361a0SGreg Kroah-Hartman } __attribute__ ((__packed__));
90282361a0SGreg Kroah-Hartman 
91282361a0SGreg Kroah-Hartman struct tl_setup_info_msgAck {
92282361a0SGreg Kroah-Hartman 	unsigned char sig_no;		/* TL_SETUP_SIGNO_INFO_MSG_ACK */
93282361a0SGreg Kroah-Hartman } __attribute__ ((__packed__));
94282361a0SGreg Kroah-Hartman 
95282361a0SGreg Kroah-Hartman struct TlSetupRebootMsgAck {
96282361a0SGreg Kroah-Hartman 	unsigned char sig_no;		/* TL_SETUP_SIGNO_REBOOT_MSG_ACK */
97282361a0SGreg Kroah-Hartman } __attribute__ ((__packed__));
98282361a0SGreg Kroah-Hartman 
99282361a0SGreg Kroah-Hartman /* Define a union of all the msgs that the driver can receive from the card.*/
100282361a0SGreg Kroah-Hartman union ipw_setup_rx_msg {
101282361a0SGreg Kroah-Hartman 	unsigned char sig_no;
102282361a0SGreg Kroah-Hartman 	struct tl_setup_get_version_rsp version_rsp_msg;
103282361a0SGreg Kroah-Hartman 	struct tl_setup_open_msg open_msg;
104282361a0SGreg Kroah-Hartman 	struct tl_setup_close_msg close_msg;
105282361a0SGreg Kroah-Hartman 	struct tl_setup_info_msg InfoMsg;
106282361a0SGreg Kroah-Hartman 	struct tl_setup_info_msgAck info_msg_ack;
107282361a0SGreg Kroah-Hartman } __attribute__ ((__packed__));
108282361a0SGreg Kroah-Hartman 
109282361a0SGreg Kroah-Hartman #endif				/* _IPWIRELESS_CS_SETUP_PROTOCOL_H_ */
110