setup_protocol.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * IPWireless 3G PCMCIA Network Driver
  4. *
  5. * Original code
  6. * by Stephen Blackheath <stephen@blacksapphire.com>,
  7. * Ben Martel <benm@symmetric.co.nz>
  8. *
  9. * Copyrighted as follows:
  10. * Copyright (C) 2004 by Symmetric Systems Ltd (NZ)
  11. *
  12. * Various driver changes and rewrites, port to new kernels
  13. * Copyright (C) 2006-2007 Jiri Kosina
  14. *
  15. * Misc code cleanups and updates
  16. * Copyright (C) 2007 David Sterba
  17. */
  18. #ifndef _IPWIRELESS_CS_SETUP_PROTOCOL_H_
  19. #define _IPWIRELESS_CS_SETUP_PROTOCOL_H_
  20. /* Version of the setup protocol and transport protocols */
  21. #define TL_SETUP_VERSION 1
  22. #define TL_SETUP_VERSION_QRY_TMO 1000
  23. #define TL_SETUP_MAX_VERSION_QRY 30
  24. /* Message numbers 0-9 are obsoleted and must not be reused! */
  25. #define TL_SETUP_SIGNO_GET_VERSION_QRY 10
  26. #define TL_SETUP_SIGNO_GET_VERSION_RSP 11
  27. #define TL_SETUP_SIGNO_CONFIG_MSG 12
  28. #define TL_SETUP_SIGNO_CONFIG_DONE_MSG 13
  29. #define TL_SETUP_SIGNO_OPEN_MSG 14
  30. #define TL_SETUP_SIGNO_CLOSE_MSG 15
  31. #define TL_SETUP_SIGNO_INFO_MSG 20
  32. #define TL_SETUP_SIGNO_INFO_MSG_ACK 21
  33. #define TL_SETUP_SIGNO_REBOOT_MSG 22
  34. #define TL_SETUP_SIGNO_REBOOT_MSG_ACK 23
  35. /* Synchronous start-messages */
  36. struct tl_setup_get_version_qry {
  37. unsigned char sig_no; /* TL_SETUP_SIGNO_GET_VERSION_QRY */
  38. } __attribute__ ((__packed__));
  39. struct tl_setup_get_version_rsp {
  40. unsigned char sig_no; /* TL_SETUP_SIGNO_GET_VERSION_RSP */
  41. unsigned char version; /* TL_SETUP_VERSION */
  42. } __attribute__ ((__packed__));
  43. struct tl_setup_config_msg {
  44. unsigned char sig_no; /* TL_SETUP_SIGNO_CONFIG_MSG */
  45. unsigned char port_no;
  46. unsigned char prio_data;
  47. unsigned char prio_ctrl;
  48. } __attribute__ ((__packed__));
  49. struct tl_setup_config_done_msg {
  50. unsigned char sig_no; /* TL_SETUP_SIGNO_CONFIG_DONE_MSG */
  51. } __attribute__ ((__packed__));
  52. /* Asynchronous messages */
  53. struct tl_setup_open_msg {
  54. unsigned char sig_no; /* TL_SETUP_SIGNO_OPEN_MSG */
  55. unsigned char port_no;
  56. } __attribute__ ((__packed__));
  57. struct tl_setup_close_msg {
  58. unsigned char sig_no; /* TL_SETUP_SIGNO_CLOSE_MSG */
  59. unsigned char port_no;
  60. } __attribute__ ((__packed__));
  61. /* Driver type - for use in tl_setup_info_msg.driver_type */
  62. #define COMM_DRIVER 0
  63. #define NDISWAN_DRIVER 1
  64. #define NDISWAN_DRIVER_MAJOR_VERSION 2
  65. #define NDISWAN_DRIVER_MINOR_VERSION 0
  66. /*
  67. * It should not matter when this message comes over as we just store the
  68. * results and send the ACK.
  69. */
  70. struct tl_setup_info_msg {
  71. unsigned char sig_no; /* TL_SETUP_SIGNO_INFO_MSG */
  72. unsigned char driver_type;
  73. unsigned char major_version;
  74. unsigned char minor_version;
  75. } __attribute__ ((__packed__));
  76. struct tl_setup_info_msgAck {
  77. unsigned char sig_no; /* TL_SETUP_SIGNO_INFO_MSG_ACK */
  78. } __attribute__ ((__packed__));
  79. struct TlSetupRebootMsgAck {
  80. unsigned char sig_no; /* TL_SETUP_SIGNO_REBOOT_MSG_ACK */
  81. } __attribute__ ((__packed__));
  82. /* Define a union of all the msgs that the driver can receive from the card.*/
  83. union ipw_setup_rx_msg {
  84. unsigned char sig_no;
  85. struct tl_setup_get_version_rsp version_rsp_msg;
  86. struct tl_setup_open_msg open_msg;
  87. struct tl_setup_close_msg close_msg;
  88. struct tl_setup_info_msg InfoMsg;
  89. struct tl_setup_info_msgAck info_msg_ack;
  90. } __attribute__ ((__packed__));
  91. #endif /* _IPWIRELESS_CS_SETUP_PROTOCOL_H_ */