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