diff --git a/Lib/sunos5/FCNTL.py b/Lib/sunos5/FCNTL.py
index 89ce2ed..78dbe70 100755
--- a/Lib/sunos5/FCNTL.py
+++ b/Lib/sunos5/FCNTL.py
@@ -1,4 +1,160 @@
 # Generated by h2py from /usr/include/sys/fcntl.h
+
+# Included from sys/feature_tests.h
+_POSIX_C_SOURCE = 1
+
+# 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
 O_RDONLY = 0
 O_WRONLY = 1
 O_RDWR = 2
@@ -39,6 +195,7 @@
 F_GETOWN = 23
 F_SETOWN = 24
 F_REVOKE = 25
+F_HASREMOTELOCKS = 26
 F_RDLCK = 01
 F_WRLCK = 02
 F_UNLCK = 03
diff --git a/Lib/sunos5/IN.py b/Lib/sunos5/IN.py
index b4421ba..d5406a2 100755
--- a/Lib/sunos5/IN.py
+++ b/Lib/sunos5/IN.py
@@ -1,4 +1,993 @@
 # Generated by h2py from /usr/include/netinet/in.h
+
+# Included from sys/stream.h
+
+# Included from sys/vnode.h
+
+# Included from sys/types.h
+
+# Included from sys/feature_tests.h
+_POSIX_C_SOURCE = 1
+
+# 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
+
+# Included from sys/t_lock.h
+
+# Included from sys/machlock.h
+LOCK_HELD_VALUE = 0xff
+def SPIN_LOCK(pl): return ((pl) > ipltospl(LOCK_LEVEL))
+
+def LOCK_SAMPLE_INTERVAL(i): return (((i) & 0xff) == 0)
+
+LOCK_LEVEL = 10
+CLOCK_LEVEL = 10
+PTR24_LSB = 5
+PTR24_MSB = (PTR24_LSB + 24)
+PTR24_ALIGN = 32
+PTR24_BASE = 0xe0000000
+
+# Included from sys/sleepq.h
+NSLEEPQ = 512
+
+# Included from sys/turnstile.h
+
+# Included from sys/param.h
+_POSIX_VDISABLE = 0
+MAX_INPUT = 512
+MAX_CANON = 256
+UID_NOBODY = 60001
+GID_NOBODY = UID_NOBODY
+UID_NOACCESS = 60002
+MAXPID = 30000
+MAXUID = 2147483647
+MAXLINK = 32767
+NMOUNT = 40
+CANBSIZ = 256
+NOFILE = 20
+NGROUPS_UMIN = 0
+NGROUPS_UMAX = 32
+NGROUPS_MAX_DEFAULT = 16
+PMASK = 0177
+PCATCH = 0400
+PNOSTOP = 01000
+PSWP = 0
+PINOD = 10
+PSNDD = PINOD
+PAMAP = PINOD
+PPMAP = PAMAP
+PRIBIO = 20
+PZERO = 25
+PMEM = 0
+NZERO = 20
+PPIPE = 26
+PVFS = 27
+PWAIT = 30
+PLOCK = 35
+PSLEP = 39
+PUSER = 60
+PIDLE = 127
+NULL = 0
+CMASK = 0
+CDLIMIT = (1L<<11)
+NBPS = 0x20000
+NBPSCTR = 512
+UBSIZE = 512
+SCTRSHFT = 9
+SYSNAME = 9
+PREMOTE = 39
+MAXPATHLEN = 1024
+MAXSYMLINKS = 20
+MAXNAMELEN = 256
+NADDR = 13
+PIPE_BUF = 5120
+PIPE_MAX = 5120
+NBBY = 8
+MAXBSIZE = 8192
+DEV_BSIZE = 512
+DEV_BSHIFT = 9
+MAXFRAG = 8
+def btodb(bytes): return   \
+
+def dbtob(db): return   \
+
+def lbtodb(bytes): return   \
+
+def ldbtob(db): return   \
+
+NCARGS = 0x100000
+FSHIFT = 8
+FSCALE = (1<<FSHIFT)
+def DELAY(n): return drv_usecwait(n)
+
+def mmu_ptob(x): return ((x) << MMU_PAGESHIFT)
+
+def mmu_btop(x): return (((unsigned)(x)) >> MMU_PAGESHIFT)
+
+def mmu_btopr(x): return ((((unsigned)(x) + MMU_PAGEOFFSET) >> MMU_PAGESHIFT))
+
+def mmu_ptod(x): return ((x) << (MMU_PAGESHIFT - DEV_BSHIFT))
+
+def ptod(x): return ((x) << (PAGESHIFT - DEV_BSHIFT))
+
+def ptob(x): return ((x) << PAGESHIFT)
+
+def btop(x): return (((unsigned)(x)) >> PAGESHIFT)
+
+def btopr(x): return ((((unsigned)(x) + PAGEOFFSET) >> PAGESHIFT))
+
+def dtop(DD): return (((DD) + NDPP - 1) >> (PAGESHIFT - DEV_BSHIFT))
+
+def dtopt(DD): return ((DD) >> (PAGESHIFT - DEV_BSHIFT))
+
+def PAGOFF(x): return (((uint)(x)) & PAGEOFFSET)
+
+
+# Included from sys/unistd.h
+_SC_ARG_MAX = 1
+_SC_CHILD_MAX = 2
+_SC_CLK_TCK = 3
+_SC_NGROUPS_MAX = 4
+_SC_OPEN_MAX = 5
+_SC_JOB_CONTROL = 6
+_SC_SAVED_IDS = 7
+_SC_VERSION = 8
+_SC_PASS_MAX = 9
+_SC_LOGNAME_MAX = 10
+_SC_PAGESIZE = 11
+_SC_XOPEN_VERSION = 12
+_SC_NPROCESSORS_CONF = 14
+_SC_NPROCESSORS_ONLN = 15
+_SC_STREAM_MAX = 16
+_SC_TZNAME_MAX = 17
+_SC_AIO_LISTIO_MAX = 18
+_SC_AIO_MAX = 19
+_SC_AIO_PRIO_DELTA_MAX = 20
+_SC_ASYNCHRONOUS_IO = 21
+_SC_DELAYTIMER_MAX = 22
+_SC_FSYNC = 23
+_SC_MAPPED_FILES = 24
+_SC_MEMLOCK = 25
+_SC_MEMLOCK_RANGE = 26
+_SC_MEMORY_PROTECTION = 27
+_SC_MESSAGE_PASSING = 28
+_SC_MQ_OPEN_MAX = 29
+_SC_MQ_PRIO_MAX = 30
+_SC_PRIORITIZED_IO = 31
+_SC_PRIORITY_SCHEDULING = 32
+_SC_REALTIME_SIGNALS = 33
+_SC_RTSIG_MAX = 34
+_SC_SEMAPHORES = 35
+_SC_SEM_NSEMS_MAX = 36
+_SC_SEM_VALUE_MAX = 37
+_SC_SHARED_MEMORY_OBJECTS = 38
+_SC_SIGQUEUE_MAX = 39
+_SC_SIGRT_MIN = 40
+_SC_SIGRT_MAX = 41
+_SC_SYNCHRONIZED_IO = 42
+_SC_TIMERS = 43
+_SC_TIMER_MAX = 44
+_SC_2_C_BIND = 45
+_SC_2_C_DEV = 46
+_SC_2_C_VERSION = 47
+_SC_2_FORT_DEV = 48
+_SC_2_FORT_RUN = 49
+_SC_2_LOCALEDEF = 50
+_SC_2_SW_DEV = 51
+_SC_2_UPE = 52
+_SC_2_VERSION = 53
+_SC_BC_BASE_MAX = 54
+_SC_BC_DIM_MAX = 55
+_SC_BC_SCALE_MAX = 56
+_SC_BC_STRING_MAX = 57
+_SC_COLL_WEIGHTS_MAX = 58
+_SC_EXPR_NEST_MAX = 59
+_SC_LINE_MAX = 60
+_SC_RE_DUP_MAX = 61
+_SC_XOPEN_CRYPT = 62
+_SC_XOPEN_ENH_I18N = 63
+_SC_XOPEN_SHM = 64
+_CS_PATH = 65
+_SC_2_CHAR_TERM = 66
+_SC_XOPEN_XCU_VERSION = 67
+_SC_PHYS_PAGES = 500
+_SC_AVPHYS_PAGES = 501
+_SC_COHER_BLKSZ = 503
+_SC_SPLIT_CACHE = 504
+_SC_ICACHE_SZ = 505
+_SC_DCACHE_SZ = 506
+_SC_ICACHE_LINESZ = 507
+_SC_DCACHE_LINESZ = 508
+_SC_ICACHE_BLKSZ = 509
+_SC_DCACHE_BLKSZ = 510
+_SC_DCACHE_TBLKSZ = 511
+_SC_ICACHE_ASSOC = 512
+_SC_DCACHE_ASSOC = 513
+_SC_THREAD_DESTRUCTOR_ITERATIONS = 568
+_SC_GETGR_R_SIZE_MAX = 569
+_SC_GETPW_R_SIZE_MAX = 570
+_SC_LOGIN_NAME_MAX = 571
+_SC_THREAD_KEYS_MAX = 572
+_SC_THREAD_STACK_MIN = 573
+_SC_THREAD_THREADS_MAX = 574
+_SC_TTY_NAME_MAX = 575
+_SC_THREADS = 576
+_SC_THREAD_ATTR_STACKADDR = 577
+_SC_THREAD_ATTR_STACKSIZE = 578
+_SC_THREAD_PRIORITY_SCHEDULING = 579
+_SC_THREAD_PRIO_INHERIT = 580
+_SC_THREAD_PRIO_PROTECT = 581
+_SC_THREAD_PROCESS_SHARED = 582
+_SC_THREAD_SAFE_FUNCTIONS = 583
+_SC_PPC_GRANULE_SZ = 601
+_SC_PPC_TB_TICKSPSECH = 602
+_SC_PPC_TB_TICKSPSECL = 603
+_PC_LINK_MAX = 1
+_PC_MAX_CANON = 2
+_PC_MAX_INPUT = 3
+_PC_NAME_MAX = 4
+_PC_PATH_MAX = 5
+_PC_PIPE_BUF = 6
+_PC_NO_TRUNC = 7
+_PC_VDISABLE = 8
+_PC_CHOWN_RESTRICTED = 9
+_PC_ASYNC_IO = 10
+_PC_PRIO_IO = 11
+_PC_SYNC_IO = 12
+_PC_LAST = 12
+_POSIX_VERSION = 199506L
+_POSIX2_VERSION = 199209L
+_POSIX2_C_VERSION = 199209L
+_XOPEN_VERSION = 3
+_XOPEN_XCU_VERSION = 4
+_POSIX2_C_BIND = 1
+_POSIX2_CHAR_TERM = 1
+_POSIX2_LOCALEDEF = 1
+_POSIX2_C_DEV = 1
+_POSIX2_SW_DEV = 1
+_POSIX2_UPE = 1
+
+# Included from sys/pirec.h
+NTSTILE_SQ = 2
+TSTILE_FREE = 0
+TSTILE_ACTIVE = 1
+TS_ROWSZ = 512
+TS_COLSZ = 128
+TS_ROWBITS = 9
+TS_COLBITS = 7
+TS_ROWMASK = ((1 << TS_ROWBITS) - 1)
+def TS_COL(ts_id): return ((ts_id) >> TS_ROWBITS)
+
+def TS_ROW(ts_id): return ((ts_id) & TS_ROWMASK)
+
+def TSTILE_PRIO_INVERTED(ts): return \
+
+
+# Included from sys/rwlock.h
+def RW_READ_HELD(x): return (rw_read_held((x)))
+
+def RW_WRITE_HELD(x): return (rw_write_held((x)))
+
+def RW_LOCK_HELD(x): return (rw_lock_held((x)))
+
+def RW_ISWRITER(x): return (rw_iswriter(x))
+
+
+# Included from sys/semaphore.h
+
+# Included from sys/thread.h
+
+# Included from sys/class.h
+
+# Included from sys/klwp.h
+
+# Included from sys/condvar.h
+
+# Included from sys/signal.h
+SIGHUP = 1
+SIGINT = 2
+SIGQUIT = 3
+SIGILL = 4
+SIGTRAP = 5
+SIGIOT = 6
+SIGABRT = 6
+SIGEMT = 7
+SIGFPE = 8
+SIGKILL = 9
+SIGBUS = 10
+SIGSEGV = 11
+SIGSYS = 12
+SIGPIPE = 13
+SIGALRM = 14
+SIGTERM = 15
+SIGUSR1 = 16
+SIGUSR2 = 17
+SIGCLD = 18
+SIGCHLD = 18
+SIGPWR = 19
+SIGWINCH = 20
+SIGURG = 21
+SIGPOLL = 22
+SIGIO = SIGPOLL
+SIGSTOP = 23
+SIGTSTP = 24
+SIGCONT = 25
+SIGTTIN = 26
+SIGTTOU = 27
+SIGVTALRM = 28
+SIGPROF = 29
+SIGXCPU = 30
+SIGXFSZ = 31
+SIGWAITING = 32
+SIGLWP = 33
+SIGFREEZE = 34
+SIGTHAW = 35
+SIGCANCEL = 36
+_SIGRTMIN = 37
+_SIGRTMAX = 44
+SIG_BLOCK = 1
+SIG_UNBLOCK = 2
+SIG_SETMASK = 3
+SIGNO_MASK = 0xFF
+SIGDEFER = 0x100
+SIGHOLD = 0x200
+SIGRELSE = 0x400
+SIGIGNORE = 0x800
+SIGPAUSE = 0x1000
+SA_NOCLDSTOP = 0x00020000
+SA_ONSTACK = 0x00000001
+SA_RESETHAND = 0x00000002
+SA_RESTART = 0x00000004
+SA_SIGINFO = 0x00000008
+SA_NODEFER = 0x00000010
+SA_NOCLDWAIT = 0x00010000
+SA_WAITSIG = 0x00010000
+NSIG = 45
+MAXSIG = 44
+S_SIGNAL = 1
+S_SIGSET = 2
+S_SIGACTION = 3
+S_NONE = 4
+MINSIGSTKSZ = 2048
+SIGSTKSZ = 8192
+SS_ONSTACK = 0x00000001
+SS_DISABLE = 0x00000002
+_SIGQUEUE_MAX = 32
+
+# Included from sys/pcb.h
+
+# Included from sys/regset.h
+REG_PSR = (0)
+REG_PC = (1)
+REG_nPC = (2)
+REG_Y = (3)
+REG_G1 = (4)
+REG_G2 = (5)
+REG_G3 = (6)
+REG_G4 = (7)
+REG_G5 = (8)
+REG_G6 = (9)
+REG_G7 = (10)
+REG_O0 = (11)
+REG_O1 = (12)
+REG_O2 = (13)
+REG_O3 = (14)
+REG_O4 = (15)
+REG_O5 = (16)
+REG_O6 = (17)
+REG_O7 = (18)
+REG_PS = REG_PSR
+REG_SP = REG_O6
+REG_R0 = REG_O0
+REG_R1 = REG_O1
+NGREG = 19
+SPARC_MAXREGWINDOW = 31
+MAXFPQ = 16
+XRS_ID = 0x78727300
+
+# Included from v7/sys/privregs.h
+
+# Included from v7/sys/psr.h
+PSR_CWP = 0x0000001F
+PSR_ET = 0x00000020
+PSR_PS = 0x00000040
+PSR_S = 0x00000080
+PSR_PIL = 0x00000F00
+PSR_EF = 0x00001000
+PSR_EC = 0x00002000
+PSR_RSV = 0x000FC000
+PSR_ICC = 0x00F00000
+PSR_C = 0x00100000
+PSR_V = 0x00200000
+PSR_Z = 0x00400000
+PSR_N = 0x00800000
+PSR_VER = 0x0F000000
+PSR_IMPL = 0xF0000000
+PSL_ALLCC = PSR_ICC
+PSL_USER = (PSR_S)
+PSL_USERMASK = (PSR_ICC)
+PSL_UBITS = (PSR_ICC|PSR_EF)
+def USERMODE(ps): return (((ps) & PSR_PS) == 0)
+
+
+# Included from sys/fsr.h
+FSR_CEXC = 0x0000001f
+FSR_AEXC = 0x000003e0
+FSR_FCC = 0x00000c00
+FSR_PR = 0x00001000
+FSR_QNE = 0x00002000
+FSR_FTT = 0x0001c000
+FSR_VER = 0x000e0000
+FSR_TEM = 0x0f800000
+FSR_RP = 0x30000000
+FSR_RD = 0xc0000000
+FSR_VER_SHIFT = 17
+FSR_FCC1 = 0x00000003
+FSR_FCC2 = 0x0000000C
+FSR_FCC3 = 0x00000030
+FSR_CEXC_NX = 0x00000001
+FSR_CEXC_DZ = 0x00000002
+FSR_CEXC_UF = 0x00000004
+FSR_CEXC_OF = 0x00000008
+FSR_CEXC_NV = 0x00000010
+FSR_AEXC_NX = (0x1 << 5)
+FSR_AEXC_DZ = (0x2 << 5)
+FSR_AEXC_UF = (0x4 << 5)
+FSR_AEXC_OF = (0x8 << 5)
+FSR_AEXC_NV = (0x10 << 5)
+FTT_NONE = 0
+FTT_IEEE = 1
+FTT_UNFIN = 2
+FTT_UNIMP = 3
+FTT_SEQ = 4
+FTT_ALIGN = 5
+FTT_DFAULT = 6
+FSR_FTT_SHIFT = 14
+FSR_FTT_IEEE = (FTT_IEEE   << FSR_FTT_SHIFT)
+FSR_FTT_UNFIN = (FTT_UNFIN  << FSR_FTT_SHIFT)
+FSR_FTT_UNIMP = (FTT_UNIMP  << FSR_FTT_SHIFT)
+FSR_FTT_SEQ = (FTT_SEQ    << FSR_FTT_SHIFT)
+FSR_FTT_ALIGN = (FTT_ALIGN  << FSR_FTT_SHIFT)
+FSR_FTT_DFAULT = (FTT_DFAULT << FSR_FTT_SHIFT)
+FSR_TEM_NX = (0x1 << 23)
+FSR_TEM_DZ = (0x2 << 23)
+FSR_TEM_UF = (0x4 << 23)
+FSR_TEM_OF = (0x8 << 23)
+FSR_TEM_NV = (0x10 << 23)
+RP_DBLEXT = 0
+RP_SINGLE = 1
+RP_DOUBLE = 2
+RP_RESERVED = 3
+RD_NEAR = 0
+RD_ZER0 = 1
+RD_POSINF = 2
+RD_NEGINF = 3
+FPRS_DL = 0x1
+FPRS_DU = 0x2
+FPRS_FEF = 0x4
+def SAVE_GLOBALS(RP): return \
+
+def RESTORE_GLOBALS(RP): return \
+
+def SAVE_OUTS(RP): return \
+
+def RESTORE_OUTS(RP): return \
+
+def SAVE_WINDOW(SBP): return \
+
+def RESTORE_WINDOW(SBP): return \
+
+def STORE_FPREGS(FP): return \
+
+def LOAD_FPREGS(FP): return \
+
+FIX_ALIGNMENT = 0x01
+INSTR_VALID = 0x02
+
+# Included from sys/msacct.h
+LMS_USER = 0
+LMS_SYSTEM = 1
+LMS_TRAP = 2
+LMS_TFAULT = 3
+LMS_DFAULT = 4
+LMS_KFAULT = 5
+LMS_USER_LOCK = 6
+LMS_SLEEP = 7
+LMS_WAIT_CPU = 8
+LMS_STOPPED = 9
+NMSTATES = 10
+
+# Included from sys/ucontext.h
+GETCONTEXT = 0
+SETCONTEXT = 1
+UC_SIGMASK = 001
+UC_STACK = 002
+UC_CPU = 004
+UC_MAU = 010
+UC_FPU = UC_MAU
+UC_INTR = 020
+UC_MCONTEXT = (UC_CPU|UC_FPU)
+UC_ALL = (UC_SIGMASK|UC_STACK|UC_MCONTEXT)
+
+# Included from sys/lwp.h
+
+# Included from sys/synch.h
+USYNC_THREAD = 0
+USYNC_PROCESS = 1
+TRACE_TYPE = 2
+LWP_DETACHED = 0x00000040
+LWP_SUSPENDED = 0x00000080
+__LWP_ASLWP = 0x00000100
+MAXSYSARGS = 8
+NORMALRETURN = 0
+JUSTRETURN = 1
+RESTARTSYS = 2
+LWP_USER = 0x01
+LWP_SYS = 0x02
+TS_FREE = 0x00
+TS_SLEEP = 0x01
+TS_RUN = 0x02
+TS_ONPROC = 0x04
+TS_ZOMB = 0x08
+TS_STOPPED = 0x10
+T_INTR_THREAD = 0x0001
+T_WAKEABLE = 0x0002
+T_TOMASK = 0x0004
+T_TALLOCSTK = 0x0008
+T_LWPZOMB = 0x0010
+T_WOULDBLOCK = 0x0020
+T_DONTBLOCK = 0x0040
+T_DONTPEND = 0x0080
+T_SYS_PROF = 0x0100
+T_WAITCVSEM = 0x0200
+TP_WAITFOR = 0x01
+TP_HOLDLWP = 0x02
+TP_TWAIT = 0x04
+TP_LWPEXIT = 0x08
+TP_PRSTOP = 0x10
+TP_CHKPT = 0x20
+TP_EXITLWP = 0x40
+TP_PRVSTOP = 0x80
+TP_MSACCT = 0x100
+TP_STOPPING = 0x200
+TS_LOAD = 0x01
+TS_CSTART = 0x02
+TS_XSTART = 0x04
+TS_PSTART = 0x08
+TS_DONT_SWAP = 0x10
+TS_RESUME = 0x20
+TS_SWAPENQ = 0x40
+TS_ON_SWAPQ = 0x80
+TS_ALLSTART = (TS_CSTART | TS_XSTART | TS_PSTART | TS_RESUME)
+def CPR_VSTOPPED(t): return \
+
+def THREAD_TRANSITION(tp): return thread_transition(tp);
+
+def THREAD_STOP(tp): return \
+
+def THREAD_ZOMB(tp): return THREAD_SET_STATE(tp, TS_ZOMB, NULL)
+
+def SEMA_HELD(x): return (sema_held((x)))
+
+LOCK_NAME_LEN = 18
+NO_LOCKS_HELD = 1
+NO_COMPETING_THREADS = 1
+
+# Included from sys/cred.h
+
+# Included from sys/uio.h
+
+# Included from vm/seg_enum.h
+
+# Included from sys/buf.h
+
+# Included from sys/kstat.h
+KSTAT_IOC_BASE = (ord('K') << 8)
+KSTAT_IOC_CHAIN_ID = KSTAT_IOC_BASE | 0x01
+KSTAT_IOC_READ = KSTAT_IOC_BASE | 0x02
+KSTAT_IOC_WRITE = KSTAT_IOC_BASE | 0x03
+KSTAT_STRLEN = 31
+def KSTAT_ENTER(k): return \
+
+def KSTAT_EXIT(k): return \
+
+KSTAT_TYPE_RAW = 0
+KSTAT_TYPE_NAMED = 1
+KSTAT_TYPE_INTR = 2
+KSTAT_TYPE_IO = 3
+KSTAT_TYPE_TIMER = 4
+KSTAT_NUM_TYPES = 5
+KSTAT_FLAG_VIRTUAL = 0x01
+KSTAT_FLAG_VAR_SIZE = 0x02
+KSTAT_FLAG_WRITABLE = 0x04
+KSTAT_FLAG_PERSISTENT = 0x08
+KSTAT_FLAG_DORMANT = 0x10
+KSTAT_FLAG_INVALID = 0x20
+KSTAT_READ = 0
+KSTAT_WRITE = 1
+KSTAT_DATA_CHAR = 0
+KSTAT_DATA_LONG = 1
+KSTAT_DATA_ULONG = 2
+KSTAT_DATA_LONGLONG = 3
+KSTAT_DATA_ULONGLONG = 4
+KSTAT_DATA_FLOAT = 5
+KSTAT_DATA_DOUBLE = 6
+KSTAT_INTR_HARD = 0
+KSTAT_INTR_SOFT = 1
+KSTAT_INTR_WATCHDOG = 2
+KSTAT_INTR_SPURIOUS = 3
+KSTAT_INTR_MULTSVC = 4
+KSTAT_NUM_INTRS = 5
+B_BUSY = 0x0001
+B_DONE = 0x0002
+B_ERROR = 0x0004
+B_KERNBUF = 0x0008
+B_PAGEIO = 0x0010
+B_PHYS = 0x0020
+B_READ = 0x0040
+B_WANTED = 0x0080
+B_WRITE = 0x0100
+B_AGE = 0x000200
+B_ASYNC = 0x000400
+B_DELWRI = 0x000800
+B_STALE = 0x001000
+B_DONTNEED = 0x002000
+B_REMAPPED = 0x004000
+B_FREE = 0x008000
+B_INVAL = 0x010000
+B_FORCE = 0x020000
+B_HEAD = 0x040000
+B_NOCACHE = 0x080000
+B_TRUNC = 0x100000
+def notavail(bp): return \
+
+VROOT = 0x01
+VNOCACHE = 0x02
+VNOMAP = 0x04
+VDUP = 0x08
+VNOSWAP = 0x10
+VNOMOUNT = 0x20
+VISSWAP = 0x40
+VSWAPLIKE = 0x80
+VVFSLOCK = 0x100
+VVFSWAIT = 0x200
+VVMLOCK = 0x400
+AT_TYPE = 0x0001
+AT_MODE = 0x0002
+AT_UID = 0x0004
+AT_GID = 0x0008
+AT_FSID = 0x0010
+AT_NODEID = 0x0020
+AT_NLINK = 0x0040
+AT_SIZE = 0x0080
+AT_ATIME = 0x0100
+AT_MTIME = 0x0200
+AT_CTIME = 0x0400
+AT_RDEV = 0x0800
+AT_BLKSIZE = 0x1000
+AT_NBLOCKS = 0x2000
+AT_VCODE = 0x4000
+AT_ALL = (AT_TYPE|AT_MODE|AT_UID|AT_GID|AT_FSID|AT_NODEID|\
+			AT_NLINK|AT_SIZE|AT_ATIME|AT_MTIME|AT_CTIME|\
+			AT_RDEV|AT_BLKSIZE|AT_NBLOCKS|AT_VCODE)
+AT_STAT = (AT_MODE|AT_UID|AT_GID|AT_FSID|AT_NODEID|AT_NLINK|\
+			AT_SIZE|AT_ATIME|AT_MTIME|AT_CTIME|AT_RDEV)
+AT_TIMES = (AT_ATIME|AT_MTIME|AT_CTIME)
+AT_NOSET = (AT_NLINK|AT_RDEV|AT_FSID|AT_NODEID|AT_TYPE|\
+			AT_BLKSIZE|AT_NBLOCKS|AT_VCODE)
+VSUID = 04000
+VSGID = 02000
+VSVTX = 01000
+VREAD = 00400
+VWRITE = 00200
+VEXEC = 00100
+MODEMASK = 07777
+PERMMASK = 00777
+def MANDMODE(mode): return (((mode) & (VSGID|(VEXEC>>3))) == VSGID)
+
+VSA_ACL = 0x0001
+VSA_ACLCNT = 0x0002
+VSA_DFACL = 0x0004
+VSA_DFACLCNT = 0x0008
+LOOKUP_DIR = 0x01
+ATTR_UTIME = 0x01
+ATTR_EXEC = 0x02
+ATTR_COMM = 0x04
+ATTR_HINT = 0x08
+
+# Included from sys/poll.h
+POLLIN = 0x0001
+POLLPRI = 0x0002
+POLLOUT = 0x0004
+POLLRDNORM = 0x0040
+POLLWRNORM = POLLOUT
+POLLRDBAND = 0x0080
+POLLWRBAND = 0x0100
+POLLNORM = POLLRDNORM
+POLLERR = 0x0008
+POLLHUP = 0x0010
+POLLNVAL = 0x0020
+T_POLLTIME = 0x01
+T_POLLWAKE = 0x02
+
+# Included from sys/strmdep.h
+def str_aligned(X): return (((uint)(X) & (sizeof (int) - 1)) == 0)
+
+QENAB = 0x001
+QWANTR = 0x002
+QWANTW = 0x004
+QFULL = 0x008
+QREADR = 0x010
+QUSE = 0x020
+QNOENB = 0x040
+QOLD = 0x080
+QBACK = 0x100
+QHLIST = 0x200
+QUNSAFE = 0x400
+QPAIR = 0x800
+QPERQ = 0x1000
+QPERMOD = 0x2000
+QMTSAFE = 0x4000
+QMTOUTPERIM = 0x8000
+QMT_TYPEMASK = (QUNSAFE|QPAIR|QPERQ|QPERMOD|QMTSAFE|QMTOUTPERIM)
+QINSERVICE = 0x10000
+QWCLOSE = 0x20000
+QEND = 0x40000
+QWANTWSYNC = 0x80000
+QSYNCSTR = 0x100000
+QISDRV = 0x200000
+QB_FULL = 0x01
+QB_WANTW = 0x02
+QB_BACK = 0x04
+NBAND = 256
+STRUIOT_NONE = -1
+STRUIOT_DONTCARE = 0
+STRUIOT_STANDARD = 1
+STRUIOT_IP = 2
+STRUIO_SPEC = 0x01
+STRUIO_DONE = 0x02
+STRUIO_IP = 0x04
+MSGMARK = 0x01
+MSGNOLOOP = 0x02
+MSGDELIM = 0x04
+MSGNOGET = 0x08
+M_DATA = 0x00
+M_PROTO = 0x01
+M_BREAK = 0x08
+M_PASSFP = 0x09
+M_EVENT = 0x0a
+M_SIG = 0x0b
+M_DELAY = 0x0c
+M_CTL = 0x0d
+M_IOCTL = 0x0e
+M_SETOPTS = 0x10
+M_RSE = 0x11
+M_VPIXINT = 0x12
+M_IOCACK = 0x81
+M_IOCNAK = 0x82
+M_PCPROTO = 0x83
+M_PCSIG = 0x84
+M_READ = 0x85
+M_FLUSH = 0x86
+M_STOP = 0x87
+M_START = 0x88
+M_HANGUP = 0x89
+M_ERROR = 0x8a
+M_COPYIN = 0x8b
+M_COPYOUT = 0x8c
+M_IOCDATA = 0x8d
+M_PCRSE = 0x8e
+M_STOPI = 0x8f
+M_STARTI = 0x90
+M_PCEVENT = 0x91
+M_UNHANGUP = 0x92
+QNORM = 0x00
+QPCTL = 0x80
+STRCANON = 0x01
+RECOPY = 0x02
+SO_ALL = 0x003f
+SO_READOPT = 0x0001
+SO_WROFF = 0x0002
+SO_MINPSZ = 0x0004
+SO_MAXPSZ = 0x0008
+SO_HIWAT = 0x0010
+SO_LOWAT = 0x0020
+SO_MREADON = 0x0040
+SO_MREADOFF = 0x0080
+SO_NDELON = 0x0100
+SO_NDELOFF = 0x0200
+SO_ISTTY = 0x0400
+SO_ISNTTY = 0x0800
+SO_TOSTOP = 0x1000
+SO_TONSTOP = 0x2000
+SO_BAND = 0x4000
+SO_DELIM = 0x8000
+SO_NODELIM = 0x010000
+SO_STRHOLD = 0x020000
+SO_ERROPT = 0x040000
+DEF_IOV_MAX = 16
+INFOD_FIRSTBYTES = 0x02
+INFOD_BYTES = 0x04
+INFOD_COUNT = 0x08
+INFOD_COPYOUT = 0x10
+MODOPEN = 0x1
+CLONEOPEN = 0x2
+OPENFAIL = -1
+BPRI_LO = 1
+BPRI_MED = 2
+BPRI_HI = 3
+INFPSZ = -1
+FLUSHALL = 1
+FLUSHDATA = 0
+STIPRI = PZERO+3
+STOPRI = PZERO+3
+STRHIGH = 5120
+STRLOW = 1024
+MAXIOCBSZ = 1024
+PERIM_INNER = 1
+PERIM_OUTER = 2
+def datamsg(type): return \
+
+def straln(a): return (caddr_t)((long)(a) & ~(sizeof (int)-1))
+
+
+# Included from sys/byteorder.h
+def ntohl(x): return (x)
+
+def ntohs(x): return (x)
+
+def htonl(x): return (x)
+
+def htons(x): return (x)
+
 IPPROTO_IP = 0
 IPPROTO_ICMP = 1
 IPPROTO_IGMP = 2
@@ -43,20 +1032,34 @@
 IMPLINK_IP = 155
 IMPLINK_LOWEXPER = 156
 IMPLINK_HIGHEXPER = 158
+def IN_CLASSA(i): return (((long)(i) & 0x80000000) == 0)
+
 IN_CLASSA_NET = 0xff000000
 IN_CLASSA_NSHIFT = 24
 IN_CLASSA_HOST = 0x00ffffff
 IN_CLASSA_MAX = 128
+def IN_CLASSB(i): return (((long)(i) & 0xc0000000) == 0x80000000)
+
 IN_CLASSB_NET = 0xffff0000
 IN_CLASSB_NSHIFT = 16
 IN_CLASSB_HOST = 0x0000ffff
 IN_CLASSB_MAX = 65536
+def IN_CLASSC(i): return (((long)(i) & 0xe0000000) == 0xc0000000)
+
 IN_CLASSC_NET = 0xffffff00
 IN_CLASSC_NSHIFT = 8
 IN_CLASSC_HOST = 0x000000ff
+def IN_CLASSD(i): return (((long)(i) & 0xf0000000) == 0xe0000000)
+
 IN_CLASSD_NET = 0xf0000000
 IN_CLASSD_NSHIFT = 28
 IN_CLASSD_HOST = 0x0fffffff
+def IN_MULTICAST(i): return IN_CLASSD(i)
+
+def IN_EXPERIMENTAL(i): return (((long)(i) & 0xe0000000) == 0xe0000000)
+
+def IN_BADCLASS(i): return (((long)(i) & 0xf0000000) == 0xf0000000)
+
 INADDR_ANY = 0x00000000
 INADDR_LOOPBACK = 0x7F000001
 INADDR_BROADCAST = 0xffffffff
@@ -64,6 +1067,8 @@
 INADDR_ALLHOSTS_GROUP = 0xe0000001
 INADDR_MAX_LOCAL_GROUP = 0xe00000ff
 IN_LOOPBACKNET = 127
+def IN_SET_LOOPBACK_ADDR(a): return \
+
 IP_OPTIONS = 1
 IP_HDRINCL = 2
 IP_TOS = 3
diff --git a/Lib/sunos5/SOCKET.py b/Lib/sunos5/SOCKET.py
index 3ac2740..25c10f3 100755
--- a/Lib/sunos5/SOCKET.py
+++ b/Lib/sunos5/SOCKET.py
@@ -1,4 +1,42 @@
 # Generated by h2py from /usr/include/sys/socket.h
+
+# Included from sys/netconfig.h
+NETCONFIG = "/etc/netconfig"
+NETPATH = "NETPATH"
+NC_TPI_CLTS = 1
+NC_TPI_COTS = 2
+NC_TPI_COTS_ORD = 3
+NC_TPI_RAW = 4
+NC_NOFLAG = 00
+NC_VISIBLE = 01
+NC_BROADCAST = 02
+NC_NOPROTOFMLY = "-"
+NC_LOOPBACK = "loopback"
+NC_INET = "inet"
+NC_IMPLINK = "implink"
+NC_PUP = "pup"
+NC_CHAOS = "chaos"
+NC_NS = "ns"
+NC_NBS = "nbs"
+NC_ECMA = "ecma"
+NC_DATAKIT = "datakit"
+NC_CCITT = "ccitt"
+NC_SNA = "sna"
+NC_DECNET = "decnet"
+NC_DLI = "dli"
+NC_LAT = "lat"
+NC_HYLINK = "hylink"
+NC_APPLETALK = "appletalk"
+NC_NIT = "nit"
+NC_IEEE802 = "ieee802"
+NC_OSI = "osi"
+NC_X25 = "x25"
+NC_OSINET = "osinet"
+NC_GOSIP = "gosip"
+NC_NOPROTO = "-"
+NC_TCP = "tcp"
+NC_UDP = "udp"
+NC_ICMP = "icmp"
 NC_TPI_CLTS = 1
 NC_TPI_COTS = 2
 NC_TPI_COTS_ORD = 3
@@ -51,7 +89,8 @@
 AF_X25 = 20
 AF_OSINET = 21
 AF_GOSIP = 22
-AF_MAX = 22
+AF_IPX = 23
+AF_MAX = 23
 PF_UNSPEC = AF_UNSPEC
 PF_UNIX = AF_UNIX
 PF_INET = AF_INET
@@ -75,12 +114,15 @@
 PF_X25 = AF_X25
 PF_OSINET = AF_OSINET
 PF_GOSIP = AF_GOSIP
+PF_IPX = AF_IPX
 PF_MAX = AF_MAX
 SOMAXCONN = 5
 MSG_OOB = 0x1
 MSG_PEEK = 0x2
 MSG_DONTROUTE = 0x4
 MSG_MAXIOVLEN = 16
+def OPTLEN(x): return ((((x) + sizeof (long) - 1) / sizeof (long)) * sizeof (long))
+
 SOCKETSYS = 88
 SOCKETSYS = 83
 SO_ACCEPT = 1
diff --git a/Lib/sunos5/TERMIOS.py b/Lib/sunos5/TERMIOS.py
index 264c884..9a21f1b 100755
--- a/Lib/sunos5/TERMIOS.py
+++ b/Lib/sunos5/TERMIOS.py
@@ -27,9 +27,39 @@
 
 # Included from sys/types.h
 
-# Included from sys/machtypes.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)
@@ -60,9 +90,12 @@
 MILLISEC = 1000
 MICROSEC = 1000000
 NANOSEC = 1000000000
-CLOCK_REALTIME = 0
+__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
 
@@ -83,6 +116,7 @@
 # Included from sys/siginfo.h
 SIGEV_NONE = 1
 SIGEV_SIGNAL = 2
+SIGEV_THREAD = 3
 SI_NOINFO = 32767
 SI_USER = 0
 SI_LWP = (-1)
@@ -139,6 +173,8 @@
 PROF_SIG = 1
 NSIGPROF = 1
 SI_MAXSZ = 128
+def SI_CANQUEUE(c): return ((c) <= SI_QUEUE)
+
 FD_SETSIZE = 1024
 NBBY = 8
 _POSIX_VDISABLE = 0
@@ -252,9 +288,14 @@
 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
@@ -383,3 +424,10 @@
 B9600 = 13
 B19200 = 14
 B38400 = 15
+B57600 = 16
+B76800 = 17
+B115200 = 18
+B153600 = 19
+B230400 = 20
+B307200 = 21
+B460800 = 22
