# Generated by h2py from /usr/include/termios.h

# Included from sys/termios.h

# Included from sys/feature_tests.h
_POSIX_C_SOURCE = 1

# Included from sys/ttydev.h
B0 = 0
B50 = 1
B75 = 2
B110 = 3
B134 = 4
B150 = 5
B200 = 6
B300 = 7
B600 = 8
B1200 = 9
B1800 = 10
B2400 = 11
B4800 = 12
B9600 = 13
B19200 = 14
B38400 = 15
EXTA = 14
EXTB = 15

# Included from sys/types.h

# Included from sys/isa_defs.h
_CHAR_ALIGNMENT = 1
_SHORT_ALIGNMENT = 2
_INT_ALIGNMENT = 4
_LONG_ALIGNMENT = 4
_LONG_LONG_ALIGNMENT = 4
_DOUBLE_ALIGNMENT = 4
_LONG_DOUBLE_ALIGNMENT = 4
_POINTER_ALIGNMENT = 4
_MAX_ALIGNMENT = 4
_ALIGNMENT_REQUIRED = 0
_CHAR_ALIGNMENT = 1
_SHORT_ALIGNMENT = 2
_INT_ALIGNMENT = 4
_LONG_ALIGNMENT = 4
_LONG_LONG_ALIGNMENT = 8
_DOUBLE_ALIGNMENT = 8
_LONG_DOUBLE_ALIGNMENT = 16
_POINTER_ALIGNMENT = 4
_MAX_ALIGNMENT = 16
_ALIGNMENT_REQUIRED = 1
_CHAR_ALIGNMENT = 1
_SHORT_ALIGNMENT = 2
_INT_ALIGNMENT = 4
_LONG_ALIGNMENT = 4
_LONG_LONG_ALIGNMENT = 8
_DOUBLE_ALIGNMENT = 8
_LONG_DOUBLE_ALIGNMENT = 8
_POINTER_ALIGNMENT = 4
_MAX_ALIGNMENT = 8
_ALIGNMENT_REQUIRED = 1

# Included from sys/machtypes.h
SHRT_MIN = -32768
SHRT_MAX = 32767
INT_MIN = (-2147483647-1)
INT_MAX = 2147483647
LONG_MIN = (-2147483647-1)
LONG_MAX = 2147483647
P_MYID = (-1)

# Included from sys/select.h

# Included from sys/time.h
DST_NONE = 0
DST_USA = 1
DST_AUST = 2
DST_WET = 3
DST_MET = 4
DST_EET = 5
DST_CAN = 6
DST_GB = 7
DST_RUM = 8
DST_TUR = 9
DST_AUSTALT = 10
ITIMER_REAL = 0
ITIMER_VIRTUAL = 1
ITIMER_PROF = 2
ITIMER_REALPROF = 3
SEC = 1
MILLISEC = 1000
MICROSEC = 1000000
NANOSEC = 1000000000
__CLOCK_REALTIME0 = 0
CLOCK_VIRTUAL = 1
CLOCK_PROF = 2
__CLOCK_REALTIME3 = 3
CLOCK_REALTIME = __CLOCK_REALTIME3
CLOCK_REALTIME = __CLOCK_REALTIME0
TIMER_RELTIME = 0x0
TIMER_ABSTIME = 0x1

# Included from sys/mutex.h

# Included from sys/dki_lkinfo.h

# Included from sys/dl.h
NOSTATS = 1
LSB_NLKDS = 91
def MUTEX_HELD(x): return (mutex_owned(x))


# Included from time.h
NULL = 0
CLOCKS_PER_SEC = 1000000

# Included from sys/siginfo.h
SIGEV_NONE = 1
SIGEV_SIGNAL = 2
SIGEV_THREAD = 3
SI_NOINFO = 32767
SI_USER = 0
SI_LWP = (-1)
SI_QUEUE = (-2)
SI_TIMER = (-3)
SI_ASYNCIO = (-4)
SI_MESGQ = (-5)

# Included from sys/machsig.h
ILL_ILLOPC = 1
ILL_ILLOPN = 2
ILL_ILLADR = 3
ILL_ILLTRP = 4
ILL_PRVOPC = 5
ILL_PRVREG = 6
ILL_COPROC = 7
ILL_BADSTK = 8
NSIGILL = 8
EMT_TAGOVF = 1
NSIGEMT = 1
FPE_INTDIV = 1
FPE_INTOVF = 2
FPE_FLTDIV = 3
FPE_FLTOVF = 4
FPE_FLTUND = 5
FPE_FLTRES = 6
FPE_FLTINV = 7
FPE_FLTSUB = 8
NSIGFPE = 8
SEGV_MAPERR = 1
SEGV_ACCERR = 2
NSIGSEGV = 2
BUS_ADRALN = 1
BUS_ADRERR = 2
BUS_OBJERR = 3
NSIGBUS = 3
TRAP_BRKPT = 1
TRAP_TRACE = 2
NSIGTRAP = 2
CLD_EXITED = 1
CLD_KILLED = 2
CLD_DUMPED = 3
CLD_TRAPPED = 4
CLD_STOPPED = 5
CLD_CONTINUED = 6
NSIGCLD = 6
POLL_IN = 1
POLL_OUT = 2
POLL_MSG = 3
POLL_ERR = 4
POLL_PRI = 5
POLL_HUP = 6
NSIGPOLL = 6
PROF_SIG = 1
NSIGPROF = 1
SI_MAXSZ = 128
def SI_CANQUEUE(c): return ((c) <= SI_QUEUE)

FD_SETSIZE = 1024
NBBY = 8
_POSIX_VDISABLE = 0
def CTRL(c): return ((c)&037)

IBSHIFT = 16
NCC = 8
NCCS = 19
VINTR = 0
VQUIT = 1
VERASE = 2
VKILL = 3
VEOF = 4
VEOL = 5
VEOL2 = 6
VMIN = 4
VTIME = 5
VSWTCH = 7
VSTART = 8
VSTOP = 9
VSUSP = 10
VDSUSP = 11
VREPRINT = 12
VDISCARD = 13
VWERASE = 14
VLNEXT = 15
VCEOF = NCC
VCEOL = (NCC + 1)
CNUL = 0
CDEL = 0177
CESC = ord('\\')
CINTR = CTRL(ord('c'))
CQUIT = 034
CERASE = 0177
CKILL = CTRL(ord('u'))
CEOT = 04
CEOL = 0
CEOL2 = 0
CEOF = 04
CSTART = 021
CSTOP = 023
CSWTCH = 032
CNSWTCH = 0
CSUSP = CTRL(ord('z'))
CDSUSP = CTRL(ord('y'))
CRPRNT = CTRL(ord('r'))
CFLUSH = CTRL(ord('o'))
CWERASE = CTRL(ord('w'))
CLNEXT = CTRL(ord('v'))
IGNBRK = 0000001
BRKINT = 0000002
IGNPAR = 0000004
PARMRK = 0000010
INPCK = 0000020
ISTRIP = 0000040
INLCR = 0000100
IGNCR = 0000200
ICRNL = 0000400
IUCLC = 0001000
IXON = 0002000
IXANY = 0004000
IXOFF = 0010000
IMAXBEL = 0020000
DOSMODE = 0100000
OPOST = 0000001
OLCUC = 0000002
ONLCR = 0000004
OCRNL = 0000010
ONOCR = 0000020
ONLRET = 0000040
OFILL = 0000100
OFDEL = 0000200
NLDLY = 0000400
NL0 = 0
NL1 = 0000400
CRDLY = 0003000
CR0 = 0
CR1 = 0001000
CR2 = 0002000
CR3 = 0003000
TABDLY = 0014000
TAB0 = 0
TAB1 = 0004000
TAB2 = 0010000
TAB3 = 0014000
XTABS = 0014000
BSDLY = 0020000
BS0 = 0
BS1 = 0020000
VTDLY = 0040000
VT0 = 0
VT1 = 0040000
FFDLY = 0100000
FF0 = 0
FF1 = 0100000
PAGEOUT = 0200000
WRAP = 0400000
CBAUD = 0000017
CSIZE = 0000060
CS5 = 0
CS6 = 0000020
CS7 = 0000040
CS8 = 0000060
CSTOPB = 0000100
CREAD = 0000200
PARENB = 0000400
PARODD = 0001000
HUPCL = 0002000
CLOCAL = 0004000
RCV1EN = 0010000
XMT1EN = 0020000
LOBLK = 0040000
XCLUDE = 0100000
CRTSXOFF = 010000000000
CRTSCTS = 020000000000
CIBAUD = 03600000
PAREXT = 04000000
CBAUDEXT = 010000000
CIBAUDEXT = 020000000
CRTS_IFLOW = 010000000000
CCTS_OFLOW = 020000000000
ISIG = 0000001
ICANON = 0000002
XCASE = 0000004
ECHO = 0000010
ECHOE = 0000020
ECHOK = 0000040
ECHONL = 0000100
NOFLSH = 0000200
TOSTOP = 0000400
ECHOCTL = 0001000
ECHOPRT = 0002000
ECHOKE = 0004000
DEFECHO = 0010000
FLUSHO = 0020000
PENDIN = 0040000
IEXTEN = 0100000
_TIOC = (ord('T')<<8)
TIOC = _TIOC
TCGETA = (_TIOC|1)
TCSETA = (_TIOC|2)
TCSETAW = (_TIOC|3)
TCSETAF = (_TIOC|4)
TCSBRK = (_TIOC|5)
TCXONC = (_TIOC|6)
TCFLSH = (_TIOC|7)
TIOCKBON = (_TIOC|8)
TIOCKBOF = (_TIOC|9)
KBENABLED = (_TIOC|10)
IOCTYPE = 0xff00
TCDSET = (_TIOC|32)
RTS_TOG = (_TIOC|33)
TIOCGWINSZ = (_TIOC|104)
TIOCSWINSZ = (_TIOC|103)
TIOCGSOFTCAR = (_TIOC|105)
TIOCSSOFTCAR = (_TIOC|106)
TCGETS = (_TIOC|13)
TCSETS = (_TIOC|14)
TCSANOW = (_TIOC|14)
TCSETSW = (_TIOC|15)
TCSADRAIN = (_TIOC|15)
TCSETSF = (_TIOC|16)
TCSAFLUSH = (_TIOC|16)
TCIFLUSH = 0
TCOFLUSH = 1
TCIOFLUSH = 2
TCOOFF = 0
TCOON = 1
TCIOFF = 2
TCION = 3
tIOC = (ord('t')<<8)
TIOCGETD = (tIOC|0)
TIOCSETD = (tIOC|1)
TIOCHPCL = (tIOC|2)
TIOCGETP = (tIOC|8)
TIOCSETP = (tIOC|9)
TIOCSETN = (tIOC|10)
TIOCEXCL = (tIOC|13)
TIOCNXCL = (tIOC|14)
TIOCFLUSH = (tIOC|16)
TIOCSETC = (tIOC|17)
TIOCGETC = (tIOC|18)
TIOCLBIS = (tIOC|127)
TIOCLBIC = (tIOC|126)
TIOCLSET = (tIOC|125)
TIOCLGET = (tIOC|124)
TIOCSBRK = (tIOC|123)
TIOCCBRK = (tIOC|122)
TIOCSDTR = (tIOC|121)
TIOCCDTR = (tIOC|120)
TIOCSLTC = (tIOC|117)
TIOCGLTC = (tIOC|116)
TIOCOUTQ = (tIOC|115)
TIOCNOTTY = (tIOC|113)
TIOCSTOP = (tIOC|111)
TIOCSTART = (tIOC|110)
TIOCGPGRP = (tIOC|20)
TIOCSPGRP = (tIOC|21)
TIOCGSID = (tIOC|22)
TIOCSSID = (tIOC|24)
TIOCSTI = (tIOC|23)
TIOCMSET = (tIOC|26)
TIOCMBIS = (tIOC|27)
TIOCMBIC = (tIOC|28)
TIOCMGET = (tIOC|29)
TIOCM_LE = 0001
TIOCM_DTR = 0002
TIOCM_RTS = 0004
TIOCM_ST = 0010
TIOCM_SR = 0020
TIOCM_CTS = 0040
TIOCM_CAR = 0100
TIOCM_CD = TIOCM_CAR
TIOCM_RNG = 0200
TIOCM_RI = TIOCM_RNG
TIOCM_DSR = 0400
TIOCREMOTE = (tIOC|30)
TIOCSIGNAL = (tIOC|31)
LDIOC = (ord('D')<<8)
LDOPEN = (LDIOC|0)
LDCLOSE = (LDIOC|1)
LDCHG = (LDIOC|2)
LDGETT = (LDIOC|8)
LDSETT = (LDIOC|9)
LDSMAP = (LDIOC|110)
LDGMAP = (LDIOC|111)
LDNMAP = (LDIOC|112)
LDEMAP = (LDIOC|113)
LDDMAP = (LDIOC|114)
DIOC = (ord('d')<<8)
DIOCGETP = (DIOC|8)
DIOCSETP = (DIOC|9)
FIORDCHK = ((ord('f')<<8)|3)
B0 = 0
B50 = 1
B75 = 2
B110 = 3
B134 = 4
B150 = 5
B200 = 6
B300 = 7
B600 = 8
B1200 = 9
B1800 = 10
B2400 = 11
B4800 = 12
B9600 = 13
B19200 = 14
B38400 = 15
B57600 = 16
B76800 = 17
B115200 = 18
B153600 = 19
B230400 = 20
B307200 = 21
B460800 = 22
