home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / gio-201.zip / gio2.h < prev    next >
C/C++ Source or Header  |  1994-03-16  |  5KB  |  147 lines

  1. ///////////////////////////////////////////////////////////////////////////
  2. //                                                                       //
  3. // GIO2.H   --  Gern's 32-bit I/O routines 2.0 for OS/2 2.x              //
  4. //              (ver.  2.00 - to be called from multi-threaded pgm)      //
  5. //                                                                       //
  6. //                                                                       //
  7. ///////////////////////////////////////////////////////////////////////////
  8.  
  9. // ERROR_USER_DEFINED_BASE  is  0xFF00  -or-  65280
  10.  
  11. #define COMERR_PORT_NOT_OPEN                ERROR_USER_DEFINED_BASE + 1
  12. #define COMERR_INVALID_PORT_NAME            ERROR_USER_DEFINED_BASE + 2
  13. #define COMERR_NO_MEMORY                    ERROR_USER_DEFINED_BASE + 3
  14. #define COMERR_NO_HCOMINFO                  ERROR_USER_DEFINED_BASE + 4
  15. #define COMERR_OPENING_PORT                 ERROR_USER_DEFINED_BASE + 5
  16. #define COMERR_SETTING_BPS_RATE             ERROR_USER_DEFINED_BASE + 6
  17. #define COMERR_SETTING_LINE_CONTROL         ERROR_USER_DEFINED_BASE + 7
  18. #define COMERR_CARRIER_DROPPED              ERROR_USER_DEFINED_BASE + 8
  19. #define COMERR_NO_CHAR_WAITING              ERROR_USER_DEFINED_BASE + 9
  20. #define COMERR_TIMED_CHAR_NOT_RECEIVED      ERROR_USER_DEFINED_BASE + 10
  21. #define COMERR_BUFFER_ALLOCATION            ERROR_USER_DEFINED_BASE + 11
  22. #define COMERR_BLOCK_TIMEOUT                ERROR_USER_DEFINED_BASE + 12
  23.  
  24. // ComOpen 'OpenFlags'
  25. #define LEAVEPORTOPEN       0x00000001
  26. #define OPENPORTSHARED      0x00000002
  27. #define OPENWRITETHROUGH    0x00000004
  28. #define ISPIPESERVER        0x00000010
  29. #define ISPIPECLIENT        0x00000020
  30.  
  31. #ifndef BSEDEV_INCLUDED
  32.  
  33. typedef struct _DCBINFO
  34. {
  35.     USHORT usWriteTimeout;
  36.     USHORT usReadTimeout;
  37.     BYTE   fbCtlHndShake;
  38.     BYTE   fbFlowReplace;
  39.     BYTE   fbTimeout;
  40.     BYTE   bErrorReplacementChar;
  41.     BYTE   bBreakReplacementChar;
  42.     BYTE   bXONChar;
  43.     BYTE   bXOFFChar;
  44. } DCBINFO, *PDCBINFO;
  45.  
  46. typedef struct _MODEMSTATUS 
  47. {
  48.     BYTE fbModemOn;
  49.     BYTE fbModemOff;
  50. } MODEMSTATUS, *PMODEMSTATUS;
  51.  
  52. #endif
  53.  
  54. typedef ULONG HCOMINFO, *PHCOMINFO;
  55.  
  56. // Extended Bit Rate Structure
  57. typedef struct _EXTBITRATES
  58. {
  59.     ULONG   BPSRate;  // actual rate
  60.     BYTE    Fraction;
  61.     ULONG   MinBPS;
  62.     BYTE    MinFraction;
  63.     ULONG   MaxBPS;
  64.     BYTE    MaxFraction;
  65. } EXTBITRATES, *PEXTBITRATES;
  66.  
  67. APIRET EXPENTRY ComOpen(PSZ, HFILE, ULONG, BYTE, SHORT, SHORT, ULONG, PHCOMINFO);
  68.  
  69. APIRET EXPENTRY ComClose(HCOMINFO);
  70.  
  71. APIRET EXPENTRY ComSetLineControl(HCOMINFO, BYTE, SHORT, SHORT);
  72.  
  73. APIRET EXPENTRY ComSetFlowControl(HCOMINFO);
  74.  
  75. APIRET EXPENTRY ComGetBPS(HCOMINFO, PEXTBITRATES);
  76.  
  77. APIRET EXPENTRY ComSetBPS(HCOMINFO, ULONG);
  78.  
  79. APIRET EXPENTRY ComGetDCB(HCOMINFO, PDCBINFO);
  80.  
  81. APIRET EXPENTRY ComSetDCB(HCOMINFO, PDCBINFO);
  82.  
  83. APIRET EXPENTRY ComSetDTR(HCOMINFO, SHORT);
  84.  
  85. BOOL   EXPENTRY ComGetDCD(HCOMINFO);
  86.  
  87. BOOL   EXPENTRY ComGetCTS(HCOMINFO);
  88.  
  89. APIRET EXPENTRY ComXONEnable(HCOMINFO);
  90.  
  91. APIRET EXPENTRY ComXONDisable(HCOMINFO);
  92.  
  93. APIRET EXPENTRY ComTXStart(HCOMINFO);
  94.  
  95. APIRET EXPENTRY ComTXStop(HCOMINFO);
  96.  
  97. APIRET EXPENTRY ComTXPurge(HCOMINFO);
  98.  
  99. APIRET EXPENTRY ComTXCharImm(HCOMINFO, BYTE);
  100.  
  101. ULONG  EXPENTRY ComTXChar(HCOMINFO, BYTE, BOOL);
  102.  
  103. APIRET EXPENTRY ComTXString(HCOMINFO, PSZ, BOOL);
  104.  
  105. APIRET EXPENTRY ComTXBlock(HCOMINFO, PBYTE, ULONG, BOOL);
  106.  
  107. BOOL   EXPENTRY ComTXEmpty(HCOMINFO);
  108.  
  109. VOID   EXPENTRY ComTXFlush(HCOMINFO, ULONG);
  110.  
  111. APIRET EXPENTRY ComTXCount(HCOMINFO, PUSHORT);
  112.  
  113. APIRET EXPENTRY ComRXPurge(HCOMINFO);
  114.  
  115. APIRET EXPENTRY ComRX(HCOMINFO, PSHORT, ULONG, BOOL, BOOL);
  116.  
  117. APIRET EXPENTRY ComRXBlock(HCOMINFO, PBYTE, ULONG, ULONG, BOOL, PULONG);
  118.  
  119. APIRET EXPENTRY ComRXString(HCOMINFO, PBYTE, ULONG, SHORT, ULONG, BOOL);
  120.  
  121. BOOL   EXPENTRY ComRXEmpty(HCOMINFO);
  122.  
  123. APIRET EXPENTRY ComRXCount(HCOMINFO, PUSHORT);
  124.  
  125. VOID   EXPENTRY ComPause(HCOMINFO);
  126.  
  127. VOID   EXPENTRY ComResume(HCOMINFO);
  128.  
  129. VOID   EXPENTRY ComBreak(HCOMINFO, BOOL);
  130.  
  131. APIRET EXPENTRY ComConnect(HCOMINFO);
  132.  
  133. APIRET EXPENTRY ComDisConnect(HCOMINFO);
  134.  
  135. VOID   EXPENTRY ComGetHandle(HCOMINFO, PULONG);
  136.  
  137. ///////////////////////////////////////////////////////////////////////////
  138. // Macros for peeking/receiving individual chars
  139.  
  140. #define ComRXChar(x,y,c) ComRX(x,y,0,FALSE,c)
  141.  
  142. #define ComRXCharTimed(x,y,c,z) ComRX(x,y,z,FALSE,c)
  143.  
  144. #define ComRXPeek(x,y,c) ComRX(x,y,0,TRUE,c)
  145.  
  146. #define ComRXPeekTimed(x,y,c,z) ComRX(x,y,z,TRUE,c)
  147.