Mac OS 9
Serial.h File Reference

Asynchronous Serial Driver (.AIn/.AOut/.BIn/.BOut) Interfaces. More...

#include <MacTypes.h>

Go to the source code of this file.

Data Structures

struct  SerShk
 
struct  SerStaRec
 

Typedefs

typedef SInt8 SPortSel
 
typedef struct SerShk SerShk
 
typedef struct SerStaRec SerStaRec
 

Enumerations

enum  {
  baud150 = 763 , baud300 = 380 , baud600 = 189 , baud1200 = 94 ,
  baud1800 = 62 , baud2400 = 46 , baud3600 = 30 , baud4800 = 22 ,
  baud7200 = 14 , baud9600 = 10 , baud14400 = 6 , baud19200 = 4 ,
  baud28800 = 2 , baud38400 = 1 , baud57600 = 0
}
 
enum  { stop10 = 16384 , stop15 = -32768L , stop20 = -16384 }
 
enum  { noParity = 0 , oddParity = 4096 , evenParity = 12288 }
 
enum  { data5 = 0 , data6 = 2048 , data7 = 1024 , data8 = 3072 }
 
enum  { aData = 6 , aCtl = 2 , bData = 4 , bCtl = 0 }
 
enum  {
  dsrEvent = 2 , riEvent = 4 , dcdEvent = 8 , ctsEvent = 32 ,
  breakEvent = 128
}
 
enum  { xOffWasSent = 128 , dtrNegated = 64 , rtsNegated = 32 }
 
enum  { ainRefNum = -6 , aoutRefNum = -7 , binRefNum = -8 , boutRefNum = -9 }
 
enum  {
  swOverrunErr = 1 , breakErr = 8 , parityErr = 16 , hwOverrunErr = 32 ,
  framingErr = 64
}
 
enum  { kOptionPreserveDTR = 128 , kOptionClockX1CTS = 64 }
 
enum  { kUseCTSOutputFlowControl = 128 , kUseDSROutputFlowControl = 64 , kUseRTSInputFlowControl = 128 , kUseDTRInputFlowControl = 64 }
 
enum  { sPortA = 0 , sPortB = 1 , sCOM1 = 2 , sCOM2 = 3 }
 
enum  {
  kSERDConfiguration , kSERDInputBuffer , kSERDSerHShake = 10 , kSERDClearBreak = 11 ,
  kSERDSetBreak = 12 , kSERDBaudRate = 13 , kSERDHandshake = 14 , kSERDClockMIDI = 15 ,
  kSERDMiscOptions = 16 , kSERDAssertDTR = 17 , kSERDNegateDTR = 18 , kSERDSetPEChar = 19 ,
  kSERDSetPEAltChar = 20 , kSERDSetXOffFlag , kSERDClearXOffFlag , kSERDSendXOn = 23 ,
  kSERDSendXOnOut = 24 , kSERDSendXOff = 25 , kSERDSendXOffOut = 26 , kSERDResetChannel = 27 ,
  kSERDHandshakeRS232 , kSERDStickParity = 29 , kSERDAssertRTS = 30 , kSERDNegateRTS = 31 ,
  kSERD115KBaud = 115 , kSERD230KBaud = 230
}
 
enum  { kSERDInputCount = 2 , kSERDStatus = 8 , kSERDVersion = 9 , kSERDGetDCD = 256 }
 

Functions

OSErr SerReset (short refNum, short serConfig)
 
OSErr SerSetBuf (short refNum, Ptr serBPtr, short serBLen)
 
OSErr SerHShake (short refNum, const SerShk *flags)
 
OSErr SerSetBrk (short refNum)
 
OSErr SerClrBrk (short refNum)
 
OSErr SerGetBuf (short refNum, long *count)
 Get the number of bytes in an input driver's buffer. More...
 
OSErr SerStatus (short refNum, SerStaRec *serSta)
 

Detailed Description

Asynchronous Serial Driver (.AIn/.AOut/.BIn/.BOut) Interfaces.

Introduced In: System 7.6+
Avaliable From: Universal Interfaces 3.4.1
Copyright: © 1985-2001 by Apple Computer, Inc., all rights reserved

For bug reports, consult the following page on the World Wide Web:

http://developer.apple.com/bugreporter/

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
aCtl 

channel A data in or out (historical)

bData 

channel A control (historical)

bCtl 

channel B data in or out (historical)

◆ anonymous enum

anonymous enum
Enumerator
riEvent 

flag for SerShk.evts

dcdEvent 

flag for SerShk.evts

ctsEvent 

flag for SerShk.evts

breakEvent 

flag for SerShk.evts

◆ anonymous enum

anonymous enum
Enumerator
dtrNegated 

flag for SerStaRec.xOffSent

rtsNegated 

flag for SerStaRec.xOffSent

◆ anonymous enum

anonymous enum
Enumerator
aoutRefNum 

serial port A input

binRefNum 

serial port A output

boutRefNum 

serial port B input

◆ anonymous enum

anonymous enum
Enumerator
breakErr 

serial driver error masks

parityErr 

serial driver error masks

hwOverrunErr 

serial driver error masks

framingErr 

serial driver error masks

◆ anonymous enum

anonymous enum
Enumerator
kOptionClockX1CTS 

option bit used with Control code 16

◆ anonymous enum

anonymous enum
Enumerator
kUseDSROutputFlowControl 

flag for SerShk.fCTS

kUseRTSInputFlowControl 

flag for SerShk.fCTS

kUseDTRInputFlowControl 

flag for SerShk.fDTR

◆ anonymous enum

anonymous enum
Enumerator
sPortB 

Macintosh modem port

sCOM1 

Macintosh printer port

sCOM2 

RS-232 port COM1

◆ anonymous enum

anonymous enum

csCodes for serial driver Control routines

Enumerator
kSERDInputBuffer 

program port speed, bits/char, parity, and stop bits

kSERDSerHShake 

set buffer for chars received with no read pending

kSERDClearBreak 

equivalent to SerHShake, largely obsolete

kSERDSetBreak 

assert break signal on output

kSERDBaudRate 

negate break state on output

kSERDHandshake 

set explicit baud rate, other settings unchanged

kSERDClockMIDI 

superset of 10, honors setting of fDTR

kSERDMiscOptions 

clock externally on CTS with specified multiplier

kSERDAssertDTR 

select clock source and DTR behavior on close

kSERDNegateDTR 

assert DTR output

kSERDSetPEChar 

negate DTR output

kSERDSetPEAltChar 

select char to replace chars with invalid parity

kSERDSetXOffFlag 

select char to replace char that replaces chars with invalid parity

kSERDClearXOffFlag 

set XOff output flow control (same as receiving XOff)

kSERDSendXOn 

clear XOff output flow control (same as receiving XOn)

kSERDSendXOnOut 

send XOn if input flow control state is XOff

kSERDSendXOff 

send XOn regardless of input flow control state

kSERDSendXOffOut 

send XOff if input flow control state is XOn

kSERDResetChannel 

send XOff regardless of input flow control state

kSERDHandshakeRS232 

reset serial I/O channel hardware

kSERDStickParity 

extension of 14, allows full RS-232 hardware handshaking

kSERDAssertRTS 

use mark/space parity

kSERDNegateRTS 

assert RTS output

kSERD115KBaud 

negate RTS output

kSERD230KBaud 

set 115.2K baud data rate

◆ anonymous enum

anonymous enum

csCodes for serial driver Status routines

Enumerator
kSERDStatus 

return characters available (SerGetBuf)

kSERDVersion 

return characters available (SerStatus)

kSERDGetDCD 

return version number in first byte of csParam

Function Documentation

◆ SerClrBrk()

OSErr SerClrBrk ( short  refNum)

SerClrBrk()

Non-Carbon CFM: in InterfaceLib 7.1 and later
Carbon Lib: not available
Mac OS X: not available

◆ SerGetBuf()

OSErr SerGetBuf ( short  refNum,
long *  count 
)

Get the number of bytes in an input driver's buffer.

SerGetBuf gets the number of bytes in the buffer for the specified input
driver.
refNum is the parameter that identifies the input driver with the buffer that
is being counted.
countis the total number of bytes in the buffer.
Returns
an operating system Error Code .
noErr(0) No error
Note
 This call is equivalent to a Device Manager Status call with csCode=2
and with the count returned as a long in csParam.
Copyright: THINK Reference © 1991-1992 Symantec Corporation
Non-Carbon CFM: in InterfaceLib 7.1 and later
Carbon Lib: not available
Mac OS X: not available

◆ SerHShake()

OSErr SerHShake ( short  refNum,
const SerShk flags 
)

SerHShake()

Non-Carbon CFM: in InterfaceLib 7.1 and later
Carbon Lib: not available
Mac OS X: not available

◆ SerReset()

OSErr SerReset ( short  refNum,
short  serConfig 
)

OLDROUTINENAMES The following interfaces are for the legacy high-level serial driver glue in the interface libraries of your development system. They merely substitue for the corresponding synchronous calls to PBControl and PBStatus.

They have not been updated as the serial driver API has evolved. Take note:

SerHShake does not support hardware input flow control. Use csCode 14.
SerStatus returns only the first six bytes of SerStaRec (through

xOffHold). SerReset()

Non-Carbon CFM: in InterfaceLib 7.1 and later
Carbon Lib: not available
Mac OS X: not available

◆ SerSetBrk()

OSErr SerSetBrk ( short  refNum)

SerSetBrk()

Non-Carbon CFM: in InterfaceLib 7.1 and later
Carbon Lib: not available
Mac OS X: not available

◆ SerSetBuf()

OSErr SerSetBuf ( short  refNum,
Ptr  serBPtr,
short  serBLen 
)

SerSetBuf()

Non-Carbon CFM: in InterfaceLib 7.1 and later
Carbon Lib: not available
Mac OS X: not available

◆ SerStatus()

OSErr SerStatus ( short  refNum,
SerStaRec serSta 
)

SerStatus()

Non-Carbon CFM: in InterfaceLib 7.1 and later
Carbon Lib: not available
Mac OS X: not available