cdc.h 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. /*
  2. This work is licensed under the Creative Commons Attribution 3.0 Unported License.
  3. To view a copy of this license, visit http://creativecommons.org/licenses/by/3.0/
  4. or send a letter to
  5. Creative Commons,
  6. 171 Second Street,
  7. Suite 300,
  8. San Francisco,
  9. California,
  10. 94105,
  11. USA.
  12. // JTR V0.2a // 26th Jan 2012
  13. */
  14. #ifndef __CDC_H__
  15. #define __CDC_H__
  16. void cdc_setup(void);
  17. void cdc_set_line_coding_data(void);
  18. void cdc_set_line_coding_status(void);
  19. void cdc_get_line_coding(void);
  20. void cdc_set_control_line_state_status(void);
  21. void user_configured_init(void); // JTR added. Sets up CDC endpoints after device configured.
  22. void WaitInReady(void);
  23. void WaitOutReady(void);
  24. BYTE getInReady(void);
  25. BYTE getOutReady(void);
  26. BYTE getda_cdc(void);
  27. BYTE putda_cdc(BYTE count);
  28. void SendZLP(void);
  29. BYTE getc_cdc(void);
  30. void putc_cdc(BYTE c);
  31. void CDC_Flush_In_Now(void);
  32. void CDCFlushOnTimeout(void);
  33. BYTE poll_getc_cdc(BYTE * c);
  34. BYTE peek_getc_cdc(BYTE * c);
  35. void initCDC(void);
  36. struct _cdc_ControlLineState {
  37. int DTR : 1;
  38. int RTS : 1;
  39. int unused1 : 6;
  40. BYTE unused2;
  41. };
  42. // CDC Request Codes
  43. #define CDC_SEND_ENCAPSULATED_COMMAND 0x00
  44. #define CDC_GET_ENCAPSULATED_RESPONSE 0x01
  45. #define CDC_SET_COMM_FEATURE 0x02
  46. #define CDC_GET_COMM_FEATURE 0x03
  47. #define CDC_CLEAR_COMM_FEATURE 0x04
  48. // RESERVED (future use) 0x05-0x0F
  49. #define CDC_SET_AUX_LINE_STATE 0x10
  50. #define CDC_SET_HOOK_STATE 0x11
  51. #define CDC_PULSE_SETUP 0x12
  52. #define CDC_SEND_PULSE 0x13
  53. #define CDC_SET_PULSE_TIME 0x14
  54. #define CDC_RING_AUX_JACK 0x15
  55. // RESERVED (future use) 0x16-0x1F
  56. #define CDC_SET_LINE_CODING 0x20
  57. #define CDC_GET_LINE_CODING 0x21
  58. #define CDC_SET_CONTROL_LINE_STATE 0x22
  59. #define CDC_SEND_BREAK 0x23
  60. // RESERVED (future use) 0x24-0x2F
  61. #define CDC_SET_RINGER_PARMS 0x30
  62. #define CDC_GET_RINGER_PARMS 0x31
  63. #define CDC_SET_OPERATION_PARMS 0x32
  64. #define CDC_GET_OPERATION_PARMS 0x33
  65. #define CDC_SET_LINE_PARMS 0x34
  66. #define CDC_GET_LINE_PARMS 0x35
  67. #define CDC_DIAL_DIGITS 0x36
  68. #define CDC_SET_UNIT_PARAMETER 0x37
  69. #define CDC_GET_UNIT_PARAMETER 0x38
  70. #define CDC_CLEAR_UNIT_PARAMETER 0x39
  71. #define CDC_GET_PROFILE 0x3A
  72. // RESERVED (future use) 0x3B-0x3F
  73. #define CDC_SET_ETHERNET_MULTICAST_FILTERS 0x40
  74. #define CDC_SET_ETHERNET_POWER_MANAGEMENT_PATTERN_FILTER 0x41
  75. #define CDC_GET_ETHERNET_POWER_MANAGEMENT_PATTERN_FILTER 0x42
  76. #define CDC_SET_ETHERNET_PACKET_FILTER 0x43
  77. #define CDC_GET_ETHERNET_STATISTIC 0x44
  78. // RESERVED (future use) 0x45-0x4F
  79. #define CDC_SET_ATM_DATA_FORMAT 0x50
  80. #define CDC_GET_ATM_DEVICE_STATISTICS 0x51
  81. #define CDC_SET_ATM_DEFAULT_VC 0x52
  82. #define CDC_GET_ATM_VC_STATISTICS 0x53
  83. // RESERVED (future use) 0x54-0x5F
  84. // MDLM Semantic-Model specific Requests 0x60–0x7F
  85. // RESERVED (future use) 0x80-0xFF
  86. // CDC Notification Codes
  87. #define CDC_NETWORK_CONNECTION 0x00
  88. #define CDC_RESPONSE_AVAILABLE 0x01
  89. // RESERVED (future use) 0x02-0x07
  90. #define CDC_AUX_JACK_HOOK_STATE 0x08
  91. #define CDC_RING_DETECT 0x09
  92. // RESERVED (future use) 0x0A-0x1F
  93. #define CDC_SERIAL_STATE 0x20
  94. // RESERVED (future use) 0x21-0x27
  95. #define CDC_CALL_STATE_CHANGE 0x28
  96. #define CDC_LINE_STATE_CHANGE 0x29
  97. #define CDC_CONNECTION_SPEED_CHANGE 0x2A
  98. // RESERVED 0x2B-0x3F
  99. // MDML SEMANTIC-MODEL-SPECIFIC NOTIFICATION 0x40-0x5F
  100. // RESERVED (future use) 0x60-0xFF
  101. #endif