home *** CD-ROM | disk | FTP | other *** search
- #ifndef __INC_POS_DEVICE_SERIAL_H
- #define __INC_POS_DEVICE_SERIAL_H
- /*******************************************************************
- Includes Release 24
- (C) Copyright 1995-1997 proDAD
- All Rights Reserved
-
- $AUT Holger Burkarth
- $DAT >>Serial.h<< 19 Nov 1996 11:23:44 - (C) ProDAD
- *******************************************************************/
- #ifndef __INC_POS_PEXEC_DEVICE_H
- #include <pExec/Device.h>
- #endif
- #ifndef __INC_POS_DEVICE_IOTERM_H
- #include <Device/IOTerm.h>
- #endif
-
-
- /*----------------------------------
- -----------------------------------*/
- struct pOS_SerialIO
- {
- /* struct pOS_IOStdReq */
-
- struct pOS_Message sio_Message;
- struct pOS_Device *sio_Device; /* device node pointer */
- struct pOS_Unit *sio_Unit; /* unit (driver private)*/
- UWORD sio_Command; /* (enum pOS_IOReqCommands) */
- UBYTE sio_Flags; /* (enum pOS_IOReqFlags) */
- SBYTE sio_Error; /* (enum pOS_IOReqErrors) */
- ULONG sio_Actual; /* actual number of bytes transferred */
- ULONG sio_Length; /* requested number bytes transferred */
- APTR sio_Data; /* points to data area */
- ULONG sio_Offset; /* unused */
-
- ULONG sio_CtlChar; /* control char's (order = xON,xOFF,INQ,ACK) 0x11130000 */
- ULONG sio_RBufLen; /* length in bytes of serial port's read buffer */
- ULONG sio_ExtFlags; /* (enum pOS_SerialExtFlags) */
- ULONG sio_Baud; /* baud rate requested (true baud) */
- ULONG sio_BrkTime; /* duration of break signal in MICROseconds */
- struct pOS_IOTArray sio_TArray; /* termination character array */
- UBYTE sio_ReadLen; /* bits per read character (# of bits) */
- UBYTE sio_WriteLen; /* bits per write character (# of bits) */
- UBYTE sio_StopBits; /* stopbits for read (# of bits) */
- UBYTE sio_SerFlags; /* (enum pOS_SerialFlags) */
- UWORD sio_Status; /* (enum pOS_SerialStatus) */
- };
-
-
- enum pOS_SerialFlags
- {
- SERB_XDisabled = 7, /* xOn-xOff feature disabled bit */
- SERF_XDisabled = (1<<7), /* xOn-xOff feature disabled mask */
- SERB_EOFMode = 6, /* EOF mode enabled bit */
- SERF_EOFMode = (1<<6), /* EOF mode enabled mask */
- SERB_Shared = 5, /* non-exclusive access bit */
- SERF_Shared = (1<<5), /* non-exclusive access mask */
- SERB_RADBoogie = 4, /* high-speed mode active bit */
- SERF_RADBoogie = (1<<4), /* high-speed mode active mask */
- SERB_QueuedBrk = 3, /* queue this Break ioRqst */
- SERF_QueuedBrk = (1<<3), /* queue this Break ioRqst */
- SERB_7Wire = 2, /* RS232 7-wire protocol */
- SERF_7Wire = (1<<2), /* RS232 7-wire protocol */
- SERB_PartyOdd = 1, /* parity feature enabled bit */
- SERF_PartyOdd = (1<<1), /* parity feature enabled mask */
- SERB_PartyOn = 0, /* parity-enabled bit */
- SERF_PartyOn = (1<<0) /* parity-enabled mask */
- };
-
-
-
- /* status of serial port, as follows:
- * BIT ACTIVE FUNCTION
- * 0 --- reserved
- * 1 --- reserved
- * 2 --- reserved
- * 3 low Data Set Ready
- * 4 low Clear To Send
- * 5 low Carrier Detect
- * 6 low Ready To Send
- * 7 low Data Terminal Ready
- * 8 high read overrun
- * 9 high break sent
- * 10 high break received
- * 11 high transmit x-OFFed
- * 12 high receive x-OFFed
- * 13-15 --- reserved
- */
-
- enum pOS_SerialStatus
- {
- SERSTAB_XOffRead = 12, /* receive currently xOFF'ed bit */
- SERSTAF_XOffRead = (1<<12), /* receive currently xOFF'ed mask */
- SERSTAB_XOffWrite = 11, /* transmit currently xOFF'ed bit */
- SERSTAF_XOffWrite = (1<<11), /* transmit currently xOFF'ed mask */
- SERSTAB_ReadBreak = 10, /* break was latest input bit */
- SERSTAF_ReadBreak = (1<<10), /* break was latest input mask */
- SERSTAB_WroteBreak = 9, /* break was latest output bit */
- SERSTAF_WroteBreak = (1<<9), /* break was latest output mask */
- SERSTAB_Overrun = 8, /* status word RBF overrun bit */
- SERSTAF_Overrun = (1<<8), /* status word RBF overrun mask */
- SERSTAB_nDTR = 7,
- SERSTAF_nDTR = (1<<7),
- SERSTAB_nRTS = 6,
- SERSTAF_nRTS = (1<<6),
- SERSTAB_nCD = 5,
- SERSTAF_nCD = (1<<5),
- SERSTAB_nCTS = 4,
- SERSTAF_nCTS = (1<<4),
- SERSTAB_nDSR = 3,
- SERSTAF_nDST = (1<<3)
- };
-
-
- enum pOS_SerialExtFlags
- {
- SEXTB_MSPOn = 1, /* Use mark-space parity, instead of odd-even. */
- SEXTF_MSPOn = (1<<1), /* mark-space parity mask */
- SEXTB_Mark = 0, /* if mark-space, use mark */
- SEXTF_Mark = (1<<0), /* if mark-space, use mark mask */
- };
-
-
-
- enum pOS_SerialIOReqCommands
- {
- SERCMD_Query = CMD_NONSTD,
- SERCMD_Break,
- SERCMD_SetParams,
- };
-
-
- enum pOS_SerialIOReqErrors
- {
- SERIOERR_DevBusy =1,
- SERIOERR_BaudMismatch, /* baud rate not supported by hardware */
- SERIOERR_BufErr =4, /* Failed to allocate new read buffer */
- SERIOERR_InvParam,
- SERIOERR_LineErr,
- SERIOERR_ParityErr =9,
- SERIOERR_TimerErr =11,
- SERIOERR_BufOverflow,
- SERIOERR_NoDSR,
- SERIOERR_DetectedBreak =15
- };
-
- #endif
-