linux/drivers/tty/ipwireless/setup_protocol.h
<<
>>
Prefs
   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 */
  42struct tl_setup_get_version_qry {
  43        unsigned char sig_no;           /* TL_SETUP_SIGNO_GET_VERSION_QRY */
  44} __attribute__ ((__packed__));
  45
  46struct 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
  51struct 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
  58struct tl_setup_config_done_msg {
  59        unsigned char sig_no;           /* TL_SETUP_SIGNO_CONFIG_DONE_MSG */
  60} __attribute__ ((__packed__));
  61
  62/* Asynchronous messages */
  63struct tl_setup_open_msg {
  64        unsigned char sig_no;           /* TL_SETUP_SIGNO_OPEN_MSG */
  65        unsigned char port_no;
  66} __attribute__ ((__packed__));
  67
  68struct 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 */
  83struct 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
  90struct tl_setup_info_msgAck {
  91        unsigned char sig_no;           /* TL_SETUP_SIGNO_INFO_MSG_ACK */
  92} __attribute__ ((__packed__));
  93
  94struct 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.*/
  99union 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_ */
 109