home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
comos2.zip
/
COMMOS2.H
< prev
next >
Wrap
C/C++ Source or Header
|
1993-02-21
|
9KB
|
220 lines
/**************************************************************************
*
* COMMOS2.H
*
* This file provides the headers for the IOPL and basic serial services
* provided by this library.
*_________________________________________________________________________
*
* Copyright (c) 1992 by ASH Software, Inc.
*
* Update History
*
* 11/28/1992 - Module created
*
**************************************************************************/
#if !defined(COMMOS2__H)
#define COMMOS2__H
//
// Type definitions
//
#define HCOMMPORT USHORT
typedef HCOMMPORT *PHCOMMPORT;
//
// Basic definitions
//
#define TIMEOUT_INDEFINITE -1L
#define PARITY_NONE 0
#define PARITY_ODD 1
#define PARITY_EVEN 2
#define PARITY_MARK 3
#define PARITY_SPACE 4
#define STOPBITS_1 0
#define STOPBITS_1_POINT_5 1
#define STOPBITS_2 2
#define TRANSMIT_BREAK 0x01
#define TRANSMIT_NO_BREAK 0x00
//
// Comm Mode definitions
//
#define COMM_MODE_NOTSTARTED 0ul
#define COMM_MODE_OPEN 1ul
#define COMM_MODE_WRITE 2ul
#define COMM_MODE_READ 3ul
#define COMM_MODE_READTIMEOUT 4ul
#define COMM_MODE_READUNTILBYTE 5ul
#define COMM_MODE_SETBAUD 6ul
#define COMM_MODE_SETLINECNTRL 7ul
#define COMM_MODE_CLEARTXBUFFER 8ul
#define COMM_MODE_CLEARRXBUFFER 9ul
#define COMM_MODE_QUERYRXCOUNT 10ul
#define COMM_MODE_QUERYRXBUFSIZE 11ul
#define COMM_MODE_QUERYTXCOUNT 12ul
#define COMM_MODE_QUERYTXBUFSIZE 13ul
#define COMM_MODE_GETDCBINFO 14ul
#define COMM_MODE_SETDCBINFO 15ul
#define COMM_MODE_SETREADTIMEOUT 16ul
#define COMM_MODE_SETWRITETIMEOUT 17ul
//
// Comm Error Codes
//
#define COMM_ERROR_NOERROR 0ul
#define COMM_ERROR_SYSINITFAILED 1ul
#define COMM_ERROR_INVALIDMAXPORTS 2ul
#define COMM_ERROR_ALREADYINITIALIZED 3ul
#define COMM_ERROR_MAXPORTSEXCEEDED 4ul
#define COMM_ERROR_OPENFAILED 5ul
#define COMM_ERROR_PORTNOTFOUND 6ul
#define COMM_ERROR_WRITEFAILED 7ul
#define COMM_ERROR_READFAILED 8ul
#define COMM_ERROR_IOCTLFAILED 9ul
#define COMM_ERROR_TIMEOUTEXCEEDED 10ul
#define COMM_ERROR_BAUDFAILED 11ul
#define COMM_ERROR_LINECNTRLFAILED 12ul
#define COMM_ERROR_CLEARBUFFERFAILED 13ul
#define COMM_ERROR_SEMAPHOREFAILED 14ul
#define COMM_ERROR_DCBINFOFAILED 15ul
#define COMM_ERROR_SETTIMEOUTFAILED 16ul
//
// This section is used with 16-bit applications (OS/2 1.x).
//
#if defined(INCL_COMMOS2_16BIT)
#define CommStartSystem COMMSTART16
#define CommStopSystem COMMSTOP16
#define CommGetLastError COMMERROR16
#define CommOpen COMMOPEN16
#define CommInit COMMINIT16
#define CommClear COMMCLEAR16
#define CommClearTxBuffer COMMTXBUF16
#define CommClearRxBuffer COMMRXBUF16
#define CommClose COMMCLOSE16
#define CommClear COMMCLEAR16
#define CommWrite COMMWRITE16
#define CommRead COMMREAD16
#define CommReadTimeOut COMMREADTIMEOUT16
#define CommReadUntilByte COMMREADUNTILBYTE16
#define CommQueryHPortFile COMMQHPORTFILE16
#define CommQueryRxCount COMMQRXCOUNT16
#define CommQueryRxBufSize COMMQRXBUFSIZE16
#define CommQueryTxCount COMMQTXCOUNT16
#define CommQueryTxBufSize COMMQTXBUFSIZE16
#define CommGetDCBInfo COMMGETDCB16
#define CommSetDCBInfo COMMSETDCB16
#define CommSetReadTimeOut COMMSETREADTIMEOUT16
#define CommSetWriteTimeOut COMMSETWRITETIMEOUT16
//
// IOPL 16-bit interface function prototypes which may be called by
// 16-bit applications
//
VOID PortOutByte(USHORT usPortAddress,BYTE bParam);
VOID PortOutWord(USHORT usPortAddress,USHORT usParam);
USHORT PortInpByte(USHORT usPortAddress);
USHORT PortInpWord(USHORT usPortAddress);
//
// 16-bit IOPL Assembler prototypes which can be called directly
// by 16-bit applications.
//
extern int far pascal ioplinp (unsigned int portaddress);
extern int far pascal ioplinpw(unsigned int portaddress);
extern void far pascal ioplout (unsigned int portaddress,
UCHAR outputbyte);
extern void far pascal ioploutw(unsigned int portaddress,
unsigned int outputword);
#endif
//
// This section is used with 32-bit applications (OS/2 2.x).
//
#if defined(INCL_COMMOS2_32BIT)
#define CommStartSystem COMMSTART32
#define CommStopSystem COMMSTOP32
#define CommGetLastError COMMERROR32
#define CommOpen COMMOPEN32
#define CommInit COMMINIT32
#define CommClear COMMCLEAR32
#define CommClearTxBuffer COMMTXBUF32
#define CommClearRxBuffer COMMRXBUF32
#define CommClose COMMCLOSE32
#define CommWrite COMMWRITE32
#define CommRead COMMREAD32
#define CommReadTimeOut COMMREADTIMEOUT32
#define CommReadUntilByte COMMREADUNTILBYTE32
#define CommQueryHPortFile COMMQHPORTFILE32
#define CommQueryRxCount COMMQRXCOUNT32
#define CommQueryRxBufSize COMMQRXBUFSIZE32
#define CommQueryTxCount COMMQTXCOUNT32
#define CommQueryTxBufSize COMMQTXBUFSIZE32
#define CommGetDCBInfo COMMGETDCB32
#define CommSetDCBInfo COMMSETDCB32
#define CommSetReadTimeOut COMMSETREADTIMEOUT32
#define CommSetWriteTimeOut COMMSETWRITETIMEOUT32
//
// IOPL 16-bit interface function prototypes to be called by
// 32-bit applications
//
VOID APIENTRY16 PortOutByte(USHORT usPortAddress,BYTE bParam);
VOID APIENTRY16 PortOutWord(USHORT usPortAddress,USHORT usParam);
APIRET16 APIENTRY16 PortInpByte(USHORT usPortAddress);
APIRET16 APIENTRY16 PortInpWord(USHORT usPortAddress);
#endif
//
// This section includes support for basic serial port access from
// an OS/2 application.
//
ULONG CommStartSystem(int iCommPorts);
ULONG CommStopSystem(void);
ULONG CommGetLastError(HCOMMPORT hCommPort,ULONG *ulCommError,
ULONG *ulDosError,ULONG *ulCommMode);
ULONG CommOpen(int iCommPort,PHCOMMPORT phCommPort);
ULONG CommInit(HCOMMPORT hCommPort,USHORT usBaudRate,USHORT usParity,
USHORT usDataBits,USHORT usStopBits,USHORT usTxBreak);
ULONG CommClear(HCOMMPORT hCommPort);
ULONG CommClearTxBuffer(HCOMMPORT hCommPort);
ULONG CommClearRxBuffer(HCOMMPORT hCommPort);
ULONG CommClose(HCOMMPORT hCommPort);
ULONG CommWrite(HCOMMPORT hCommPort,UCHAR *pucDataArea,
USHORT usDataAreaSize,ULONG *pulWritten);
ULONG CommRead(HCOMMPORT hCommPort,UCHAR *pucDataArea,
USHORT usDataAreaSize,ULONG *pulRead);
ULONG CommReadTimeOut(HCOMMPORT hCommPort,UCHAR *pucDataArea,
USHORT usDataAreaSize,ULONG *pulRead,long lTimeOutmSec);
ULONG CommReadUntilByte(HCOMMPORT hCommPort,UCHAR *pucDataArea,
USHORT usDataAreaSize,ULONG *pulRead,UCHAR ucWaitByte,
long lTimeOutmSec);
HFILE CommQueryHPortFile(HCOMMPORT hCommPort);
ULONG CommQueryRxCount(HCOMMPORT hCommPort,ULONG *ulCount);
ULONG CommQueryRxBufSize(HCOMMPORT hCommPort,ULONG *ulSize);
ULONG CommQueryTxCount(HCOMMPORT hCommPort,ULONG *ulCount);
ULONG CommQueryTxBufSize(HCOMMPORT hCommPort,ULONG *ulSize);
ULONG CommGetDCBInfo(HCOMMPORT hCommPort);
ULONG CommSetDCBInfo(HCOMMPORT hCommPort);
ULONG CommSetReadTimeOut(HCOMMPORT hCommPort,ULONG ulTimeMsec);
ULONG CommSetWriteTimeOut(HCOMMPORT hCommPort,ULONG ulTimeMsec);
#endif