Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

246 lines
5.3 KiB

  1. #ifndef _FR_H
  2. #define _FR_H
  3. #pragma pack(1) /** ensure packed structures **/
  4. /********
  5. @doc EXTERNAL OEMNSF DATATYPES AWNSFAPI SRVRDLL
  6. @type BYTE | IFR | .
  7. @flag Frame identifier values used in the FR struct and various APIs |
  8. ifrDIS = DIS frame
  9. ifrCSI = CSI frame
  10. ifrNSF = NSF frame
  11. ifrDTC = DTC frame
  12. ifrCIG = CIG frame
  13. ifrNSC = NSC frame
  14. ifrDCS = DCS frame
  15. ifrTSI = TSI frame
  16. ifrNSS = NSS frame
  17. @xref <t FR>
  18. ********/
  19. #define ifrNULL 0
  20. #define ifrDIS 1
  21. #define ifrCSI 2
  22. #define ifrNSF 3
  23. #define ifrDTC 4
  24. #define ifrCIG 5
  25. #define ifrNSC 6
  26. #define ifrDCS 7
  27. #define ifrTSI 8
  28. #define ifrNSS 9
  29. typedef BYTE IFR;
  30. typedef IFR FAR* LPIFR;
  31. /********
  32. @doc EXTERNAL OEMNSF DATATYPES AWNSFAPI SRVRDLL
  33. @types FR | Structure containing received or sent frames
  34. @field IFR | ifr | Frame identifier
  35. @field BYTE | cb | Length of the FIF part of the frame
  36. @field BYTE[] | fif | Variable length FIF part
  37. @tagname _FR
  38. @xref <t IFR>
  39. ********/
  40. typedef struct
  41. {
  42. IFR ifr;
  43. BYTE cb;
  44. } FRBASE;
  45. #if defined(PORTABLE) || defined(__cplusplus) /* strictly ANSI C */
  46. typedef struct
  47. {
  48. IFR ifr;
  49. BYTE cb;
  50. BYTE fif[1]; /* start of var length array */
  51. }
  52. FR, FAR* LPFR, NEAR* NPFR;
  53. #else /* Microsoft C */
  54. typedef struct
  55. {
  56. FRBASE; /* anonymous */
  57. BYTE fif[1]; /* variable length fif field */
  58. } FR, FAR* LPFR, NEAR* NPFR;
  59. #endif
  60. typedef LPFR FAR* LPLPFR;
  61. typedef LPLPFR FAR* LPLPLPFR;
  62. /********
  63. @doc EXTERNAL OEMNSF DATATYPES
  64. @types LLPARAMS | Structure containing low-level T.30 capabilities or
  65. parameters.
  66. @field BYTE | Baud | Baud Rate Capability or Mode.
  67. @flag Baud Rate Mode Codes |
  68. V27_2400 = 0
  69. V27_4800 = 2
  70. V29_7200 = 3
  71. V29_9600 = 1
  72. V33_12000 = 6
  73. V33_14400 = 4
  74. V17_7200 = 11
  75. V17_9600 = 9
  76. V17_12000 = 10
  77. V17_14400 = 8
  78. @flag V27_SLOW | Baud Rate Capability: V.27 at 2400bps only.
  79. @flag V27_ONLY | Baud Rate Capability: V.27 only, at 2400bps and 4800bps.
  80. @flag V29_ONLY | Baud Rate Capability: V.29 only, at 7200bps and 9600bps.
  81. @flag V27_V29 | Baud Rate Capability: V.27 and V.29 at the above speeds.
  82. @flag V27_V29_V33 | Baud Rate Capability: V.27 and V.29 at the above speeds plus
  83. V.33 at 12000bps and 14400bps.
  84. @flag V27_V29_V33_V17 | Baud Rate Capability: V.27, V.29, V.33 at the above
  85. speeds plus V.17 at 12000bps and 14400bps.
  86. @field BYTE | MinScan | Minimum Scan-line time Requirement or Mode.
  87. @flag Minscan Mode Codes |
  88. MINSCAN_40 = 4
  89. MINSCAN_20 = 0
  90. MINSCAN_10 = 2
  91. MINSCAN_5 = 1
  92. MINSCAN_0 = 7
  93. @flag MINSCAN_0_0_0 | MinScan Reqmnt: 0ms at all vertical resolutions
  94. @flag MINSCAN_5_5_5 | MinScan Reqmnt: 5ms at all vertical resolutions
  95. @flag MINSCAN_10_10_10 | MinScan Reqmnt: 10ms at all vertical resolutions
  96. @flag MINSCAN_20_20_20 | MinScan Reqmnt: 20ms at all vertical resolutions
  97. @flag MINSCAN_40_40_40 | MinScan Reqmnt: 40ms at all vertical resolutions
  98. @flag MINSCAN_40_20_20 | MinScan Reqmnt: 40ms at 100dpi, 20ms at all other resolutions
  99. @flag MINSCAN_20_10_10 | MinScan Reqmnt: 20ms at 100dpi, 10ms at all other resolutions
  100. @flag MINSCAN_10_5_5 | MinScan Reqmnt: 10ms at 100dpi, 5ms at all other resolutions
  101. @flag MINSCAN_40_40_20 | MinScan Reqmnt: 40ms at 100dpi and 200dpi, 20ms at 400dpi
  102. @flag MINSCAN_20_20_10 | MinScan Reqmnt: 20ms at 100dpi and 200dpi, 10ms at 400dpi
  103. @flag MINSCAN_10_10_5 | MinScan Reqmnt: 10ms at 100dpi and 200dpi, 5ms at 400dpi
  104. @flag MINSCAN_40_20_10 | MinScan Reqmnt: 40ms at 100dpi, 20ms at 200dpi, 10ms at 400dpi
  105. @flag MINSCAN_20_10_5 | MinScan Reqmnt: 20ms at 100dpi, 10ms at 200dpi, 5ms at 400dpi
  106. @field BYTE | fECM | ECM Capability or Mode (boolean).
  107. @field BYTE | fECM64 | Small-Frame (64 byte frame) ECM Capability or Mode (boolean).
  108. @tagname _LLPARAMS
  109. @xref <f OEM_NSxToBC>, <f OEM_CreateFrame>
  110. ********/
  111. typedef struct
  112. {
  113. BYTE Baud;
  114. BYTE MinScan;
  115. BYTE fECM;
  116. BYTE fECM64;
  117. /**
  118. BYTE fNonEfaxBFT :1;
  119. BYTE fNonEfaxSUB :1;
  120. BYTE fNonEfaxSEP :1;
  121. BYTE fNonEfaxPWD :1;
  122. BYTE fNonEfaxCharMode:1;
  123. BYTE fNonEfaxDTM :1;
  124. BYTE fNonEfaxBTM :1;
  125. BYTE fNonEfaxEDI :1;
  126. **/
  127. }
  128. LLPARAMS, FAR* LPLLPARAMS, NEAR* NPLLPARAMS;
  129. /** Baud rate capability codes **/
  130. #define V27_SLOW 0
  131. #define V27_ONLY 2
  132. #define V29_ONLY 1
  133. #define V33_ONLY 4
  134. #define V17_ONLY 8
  135. #define V27_V29 3
  136. #define V27_V29_V33 7
  137. #define V27_V29_V33_V17 11
  138. #define V_ALL 15
  139. /** Baud rate mode codes **/
  140. #define V27_2400 0
  141. #define V29_9600 1
  142. #define V27_4800 2
  143. #define V29_7200 3
  144. #define V33_14400 4
  145. #define V33_12000 6
  146. #define V17_14400 8
  147. #define V17_9600 9
  148. #define V17_12000 10
  149. #define V17_7200 11
  150. /** Minscan capability codes **/
  151. #define MINSCAN_0_0_0 7
  152. #define MINSCAN_5_5_5 1
  153. #define MINSCAN_10_10_10 2
  154. #define MINSCAN_20_20_20 0
  155. #define MINSCAN_40_40_40 4
  156. #define MINSCAN_40_20_20 5
  157. #define MINSCAN_20_10_10 3
  158. #define MINSCAN_10_5_5 6
  159. #define MINSCAN_10_10_5 10
  160. #define MINSCAN_20_20_10 8
  161. #define MINSCAN_40_40_20 12
  162. #define MINSCAN_40_20_10 13
  163. #define MINSCAN_20_10_5 11
  164. typedef enum
  165. {
  166. WHICHDCS_FIRST = 0,
  167. WHICHDCS_NOREPLY = 1,
  168. WHICHDCS_FTT = 2,
  169. WHICHDCS_DIS = 3
  170. }
  171. WHICHDCS;
  172. #pragma pack()
  173. #endif /* _FR_H */