diff --git a/Lib/plat-irix6/ERRNO.py b/Lib/plat-irix6/ERRNO.py
index d975ce6..1836fa0 100644
--- a/Lib/plat-irix6/ERRNO.py
+++ b/Lib/plat-irix6/ERRNO.py
@@ -1,8 +1,12 @@
-# Generated by h2py from /usr/include/sys/errno.h
+# Generated by h2py from /usr/include/errno.h
+
+# Included from sys/errno.h
 
 # Included from standards.h
 __KBASE = 1000
 __IRIXBASE = 1000
+__FTNBASE = 4000
+__FTNLAST = 5999
 EPERM = 1
 ENOENT = 2
 ESRCH = 3
@@ -49,6 +53,7 @@
 EL2HLT = 44
 EDEADLK = 45
 ENOLCK = 46
+ECKPT = 47
 EBADE = 50
 EBADR = 51
 EXFULL = 52
@@ -138,7 +143,9 @@
 ENOATTACH = 1007
 ENOTSUP = 1008
 ENOATTR = 1009
+EFSCORRUPTED = 1010
 EDIRCORRUPTED = 1010
+EWRONGFS = 1011
 EDQUOT = 1133
 ENFSREMOTE = 1135
 ECONTROLLER = 1300
@@ -161,3 +168,13 @@
 ECANTEXTENT = 1317
 EINVALTIME = 1318
 EDESTROYED = 1319
+EBDHDL = 1400
+EDELAY = 1401
+ENOBWD = 1402
+EBADRSPEC = 1403
+EBADTSPEC = 1404
+EBADFILT = 1405
+EMIGRATED = 1500
+EMIGRATING = 1501
+ECELLDOWN = 1502
+EMEMRETRY = 1600
diff --git a/Lib/plat-irix6/FILE.py b/Lib/plat-irix6/FILE.py
index e3393b6..087d2ec 100644
--- a/Lib/plat-irix6/FILE.py
+++ b/Lib/plat-irix6/FILE.py
@@ -12,6 +12,8 @@
 _MIPS_SIM_ABI32 = 1
 _MIPS_SIM_NABI32 = 2
 _MIPS_SIM_ABI64 = 3
+
+# Included from sys/pthread.h
 P_MYID = (-1)
 P_MYHOSTID = (-1)
 
@@ -29,6 +31,8 @@
 OLDDEV = 0
 NEWDEV = 1
 MKDEV_VER = NEWDEV
+def IS_STRING_SPEC_DEV(x): return ((dev_t)(x)==__makedev(MKDEV_VER, 0, 0))
+
 def major(dev): return __major(MKDEV_VER, dev)
 
 def minor(dev): return __minor(MKDEV_VER, dev)
@@ -42,60 +46,471 @@
 NULL = 0L
 NBBY = 8
 
+# Included from sys/cpumask.h
+MAXCPU = 128
+def CPUMASK_INDEX(bit): return ((bit) >> 6)
+
+def CPUMASK_SHFT(bit): return ((bit) & 0x3f)
+
+def CPUMASK_IS_ZERO(p): return ((p) == 0)
+
+def CPUMASK_IS_NONZERO(p): return ((p) != 0)
+
+
+# Included from sys/nodemask.h
+def CNODEMASK_IS_ZERO(p): return ((p) == 0)
+
+def CNODEMASK_IS_NONZERO(p): return ((p) != 0)
+
+
 # Included from sys/sema.h
+
+# Included from sys/timespec.h
+
+# Included from sys/param.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 = 22
+SIGSTOP = 23
+SIGTSTP = 24
+SIGCONT = 25
+SIGTTIN = 26
+SIGTTOU = 27
+SIGVTALRM = 28
+SIGPROF = 29
+SIGXCPU = 30
+SIGXFSZ = 31
+SIGK32 = 32
+SIGCKPT = 33
+SIGRESTART = 34
+SIGUME = 35
+SIGPTINTR = 47
+SIGPTRESCHED = 48
+SIGRTMIN = 49
+SIGRTMAX = 64
+__sigargs = int
+
+# Included from sys/sigevent.h
+SIGEV_NONE = 128
+SIGEV_SIGNAL = 129
+SIGEV_CALLBACK = 130
+SIGEV_THREAD = 131
+
+# Included from sys/siginfo.h
+SI_MAXSZ = 128
+SI_USER = 0
+SI_KILL = SI_USER
+SI_QUEUE = -1
+SI_ASYNCIO = -2
+SI_TIMER = -3
+SI_MESGQ = -4
+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
+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
+UME_ECCERR = 1
+NSIGUME = 1
+SIG_NOP = 0
+SIG_BLOCK = 1
+SIG_UNBLOCK = 2
+SIG_SETMASK = 3
+SIG_SETMASK32 = 256
+SA_ONSTACK = 0x00000001
+SA_RESETHAND = 0x00000002
+SA_RESTART = 0x00000004
+SA_SIGINFO = 0x00000008
+SA_NODEFER = 0x00000010
+SA_NOCLDWAIT = 0x00010000
+SA_NOCLDSTOP = 0x00020000
+_SA_BSDCALL = 0x10000000
+MINSIGSTKSZ = 512
+SIGSTKSZ = 8192
+SS_ONSTACK = 0x00000001
+SS_DISABLE = 0x00000002
+
+# Included from sys/ucontext.h
+NGREG = 36
+NGREG = 37
+GETCONTEXT = 0
+SETCONTEXT = 1
+UC_SIGMASK = 001
+UC_STACK = 002
+UC_CPU = 004
+UC_MAU = 010
+UC_MCONTEXT = (UC_CPU|UC_MAU)
+UC_ALL = (UC_SIGMASK|UC_STACK|UC_MCONTEXT)
+CTX_R0 = 0
+CTX_AT = 1
+CTX_V0 = 2
+CTX_V1 = 3
+CTX_A0 = 4
+CTX_A1 = 5
+CTX_A2 = 6
+CTX_A3 = 7
+CTX_T0 = 8
+CTX_T1 = 9
+CTX_T2 = 10
+CTX_T3 = 11
+CTX_T4 = 12
+CTX_T5 = 13
+CTX_T6 = 14
+CTX_T7 = 15
+CTX_A4 = 8
+CTX_A5 = 9
+CTX_A6 = 10
+CTX_A7 = 11
+CTX_T0 = 12
+CTX_T1 = 13
+CTX_T2 = 14
+CTX_T3 = 15
+CTX_S0 = 16
+CTX_S1 = 17
+CTX_S2 = 18
+CTX_S3 = 19
+CTX_S4 = 20
+CTX_S5 = 21
+CTX_S6 = 22
+CTX_S7 = 23
+CTX_T8 = 24
+CTX_T9 = 25
+CTX_K0 = 26
+CTX_K1 = 27
+CTX_GP = 28
+CTX_SP = 29
+CTX_S8 = 30
+CTX_RA = 31
+CTX_MDLO = 32
+CTX_MDHI = 33
+CTX_CAUSE = 34
+CTX_EPC = 35
+CTX_SR = 36
+CXT_R0 = CTX_R0
+CXT_AT = CTX_AT
+CXT_V0 = CTX_V0
+CXT_V1 = CTX_V1
+CXT_A0 = CTX_A0
+CXT_A1 = CTX_A1
+CXT_A2 = CTX_A2
+CXT_A3 = CTX_A3
+CXT_T0 = CTX_T0
+CXT_T1 = CTX_T1
+CXT_T2 = CTX_T2
+CXT_T3 = CTX_T3
+CXT_T4 = CTX_T4
+CXT_T5 = CTX_T5
+CXT_T6 = CTX_T6
+CXT_T7 = CTX_T7
+CXT_S0 = CTX_S0
+CXT_S1 = CTX_S1
+CXT_S2 = CTX_S2
+CXT_S3 = CTX_S3
+CXT_S4 = CTX_S4
+CXT_S5 = CTX_S5
+CXT_S6 = CTX_S6
+CXT_S7 = CTX_S7
+CXT_T8 = CTX_T8
+CXT_T9 = CTX_T9
+CXT_K0 = CTX_K0
+CXT_K1 = CTX_K1
+CXT_GP = CTX_GP
+CXT_SP = CTX_SP
+CXT_S8 = CTX_S8
+CXT_RA = CTX_RA
+CXT_MDLO = CTX_MDLO
+CXT_MDHI = CTX_MDHI
+CXT_CAUSE = CTX_CAUSE
+CXT_EPC = CTX_EPC
+CXT_SR = CTX_SR
+CTX_FV0 = 0
+CTX_FV1 = 2
+CTX_FA0 = 12
+CTX_FA1 = 13
+CTX_FA2 = 14
+CTX_FA3 = 15
+CTX_FA4 = 16
+CTX_FA5 = 17
+CTX_FA6 = 18
+CTX_FA7 = 19
+CTX_FT0 = 4
+CTX_FT1 = 5
+CTX_FT2 = 6
+CTX_FT3 = 7
+CTX_FT4 = 8
+CTX_FT5 = 9
+CTX_FT6 = 10
+CTX_FT7 = 11
+CTX_FT8 = 20
+CTX_FT9 = 21
+CTX_FT10 = 22
+CTX_FT11 = 23
+CTX_FT12 = 1
+CTX_FT13 = 3
+CTX_FS0 = 24
+CTX_FS1 = 25
+CTX_FS2 = 26
+CTX_FS3 = 27
+CTX_FS4 = 28
+CTX_FS5 = 29
+CTX_FS6 = 30
+CTX_FS7 = 31
+CTX_FT8 = 21
+CTX_FT9 = 23
+CTX_FT10 = 25
+CTX_FT11 = 27
+CTX_FT12 = 29
+CTX_FT13 = 31
+CTX_FT14 = 1
+CTX_FT15 = 3
+CTX_FS0 = 20
+CTX_FS1 = 22
+CTX_FS2 = 24
+CTX_FS3 = 26
+CTX_FS4 = 28
+CTX_FS5 = 30
+SV_ONSTACK = 0x0001
+SV_INTERRUPT = 0x0002
+NUMBSDSIGS = (32)
+def sigmask(sig): return (1L << ((sig)-1))
+
+def sigmask(sig): return (1L << ((sig)-1))
+
+SIG_ERR = (-1)
+SIG_IGN = (1)
+SIG_HOLD = (2)
+SIG_DFL = (0)
+NSIG = 65
+MAXSIG = (NSIG-1)
+NUMSIGS = (NSIG-1)
+BRK_USERBP = 0
+BRK_KERNELBP = 1
+BRK_ABORT = 2
+BRK_BD_TAKEN = 3
+BRK_BD_NOTTAKEN = 4
+BRK_SSTEPBP = 5
+BRK_OVERFLOW = 6
+BRK_DIVZERO = 7
+BRK_RANGE = 8
+BRK_PSEUDO_OP_BIT = 0x80
+BRK_PSEUDO_OP_MAX = 0x3
+BRK_CACHE_SYNC = 0x80
+BRK_MULOVF = 1023
+_POSIX_VERSION = 199506L
+_POSIX_VERSION = 199506
+_POSIX_VDISABLE = 0
+MAX_INPUT = 512
+MAX_CANON = 256
+UID_NOBODY = 60001
+GID_NOBODY = UID_NOBODY
+UID_NOACCESS = 60002
+MAXPID = 0x7ffffff0
+MAXUID = 0x7fffffff
+MAXLINK = 30000
+SSIZE = 1
+SINCR = 1
+KSTKSIZE = 1
+EXTKSTKSIZE = 1
+KSTKIDX = 0
+KSTEIDX = 1
+EXTKSTKSIZE = 0
+KSTKIDX = 0
+CANBSIZ = 256
+HZ = 100
+TICK = 10000000
+NOFILE = 20
+NGROUPS_UMIN = 0
+NGROUPS_UMAX = 32
+NGROUPS = 16
+PMASK = 0177
+PCATCH = 0400
+PLTWAIT = 01000
+PRECALC = 01000
+PSWP = 0
+PINOD = 10
+PSNDD = PINOD
+PRIBIO = 20
+PZERO = 25
+PMEM = 0
+NZERO = 20
+PPIPE = 26
+PVFS = 27
+PWAIT = 30
+PSLEP = 39
+PUSER = 60
+PBATCH_CRITICAL = -1
+PTIME_SHARE = -2
+PTIME_SHARE_OVER = -3
+PBATCH = -4
+PWEIGHTLESS = -5
+IO_NBPC = 4096
+IO_BPCSHIFT = 12
+MIN_NBPC = 4096
+MIN_BPCSHIFT = 12
+MIN_CPSSHIFT = 10
+BPCSHIFT = 12
+CPSSHIFT = 10
+BPCSHIFT = 14
+CPSSHIFT = 12
+CPSSHIFT = 11
+BPSSHIFT = (BPCSHIFT+CPSSHIFT)
+NULL = 0L
+CMASK = 022
+NODEV = (-1)
+NOPAGE = (-1)
+NBPSCTR = 512
+SCTRSHFT = 9
+def BASEPRI(psw): return (((psw) & SR_IMASK) == SR_IMASK0)
+
+def BASEPRI(psw): return (((psw) & SR_IMASK) == SR_IMASK)
+
+def USERMODE(psw): return (((psw) & SR_KSU_MSK) == SR_KSU_USR)
+
+MAXPATHLEN = 1024
+MAXSYMLINKS = 30
+MAXNAMELEN = 256
+PIPE_BUF = 10240
+PIPE_MAX = 10240
+NBBY = 8
+BBSHIFT = 9
+BBSIZE = (1<<BBSHIFT)
+BBMASK = (BBSIZE-1)
+def BBTOB(bbs): return ((bbs) << BBSHIFT)
+
+def OFFTOBB(bytes): return (((__uint64_t)(bytes) + BBSIZE - 1) >> BBSHIFT)
+
+def OFFTOBBT(bytes): return ((off_t)(bytes) >> BBSHIFT)
+
+def BBTOOFF(bbs): return ((off_t)(bbs) << BBSHIFT)     
+
+SEEKLIMIT32 = 0x7fffffff
+MAXBSIZE = 8192
+DEV_BSIZE = BBSIZE
+DEV_BSHIFT = BBSHIFT
+def btodb(bytes): return   \
+
+def dbtob(db): return   \
+
+BLKDEV_IOSHIFT = BPCSHIFT
+BLKDEV_IOSIZE = (1<<BLKDEV_IOSHIFT)
+def BLKDEV_OFF(off): return ((off) & (BLKDEV_IOSIZE - 1))
+
+def BLKDEV_LBN(off): return ((off) >> BLKDEV_IOSHIFT)
+
+def BLKDEV_LTOP(bn): return ((bn) * BLKDEV_BB)
+
+MAXHOSTNAMELEN = 256
+def DELAY(n): return us_delay(n)
+
+def DELAYBUS(n): return us_delaybus(n)
+
+TIMEPOKE_NOW = -100L
 MUTEX_DEFAULT = 0x0
-METER_NAMSZ = 8
+METER_NAMSZ = 16
+METER_NO_SEQ = -1
 def mutex_spinlock(l): return splhi()
 
 def mutex_spintrylock(l): return splhi()
 
-def spinlock_islocked(l): return issplhi(getsr())
-
 def spinlock_initialized(l): return 1
 
 SV_FIFO = 0x0
 SV_LIFO = 0x2
 SV_PRIO = 0x4
+SV_KEYED = 0x6
 SV_DEFAULT = SV_FIFO
 SEMA_NOHIST = 0x0001
 SEMA_LOCK = 0x0004
-SEMA_METER = 0x0008
-SEMA_NAMSZ = METER_NAMSZ
-MR_ACCESS = 0x1
-MR_UPDATE = 0x2
+NSCHEDCLASS = (-(PWEIGHTLESS)+1)
+MR_ACCESS = 1
+MR_UPDATE = 2
+MRLOCK_BARRIER = 0x1
+MRLOCK_BEHAVIOR = 0x2
+MRLOCK_DBLTRIPPABLE = 0x4
+MRLOCK_ALLOW_EQUAL_PRI = 0x8
+MRLOCK_DEFAULT = MRLOCK_BARRIER
+def mraccess(mrp): return mraccessf(mrp, 0)	 
+
+def mrupdate(mrp): return mrupdatef(mrp, 0)	 
+
 def mp_mutex_unlock(m): return mutex_unlock(m)
 
 def mp_mutex_trylock(m): return mutex_trylock(m)
 
 def mp_mutex_spinlock(m): return mutex_spinlock(m)
 
-def mp_mutex_trylock(m): return 1
 
-def mp_mutex_spinlock(m): return 1
-
-def nested_spintrylock(m): return 1
-
-def mp_mrunlock(a): return mrunlock(a)
-
-def mp_cpsema(x): return cpsema(x)
-
-def mp_cvsema(x): return cvsema(x)
-
-def mp_cpsema(x): return 1
-
-def mp_cvsema(x): return 0
-
+# Included from sys/mon.h
 MON_LOCKED = 0x01
 MON_WAITING = 0x02
 MON_TIMEOUT = 0x04
+MON_DOSRV = 0x08
+MON_RUN = 0x10
+MR_READER_BUCKETS = 13
 def initlock(l): return spinlock_init(l,0)
 
 def ownlock(x): return 1
 
-def splock(x): return 1
-
-def io_splock(x): return 1
-
 def mutex_enter(m): return mutex_lock(m, PZERO)
 
 def mutex_tryenter(m): return mutex_trylock(m)
@@ -112,7 +527,7 @@
 RW_WRITER = MR_UPDATE
 def rw_exit(r): return mrunlock(r)
 
-def rw_tryupgrade(r): return cmrpromote(r)
+def rw_tryupgrade(r): return mrtrypromote(r)
 
 def rw_downgrade(r): return mrdemote(r)
 
@@ -122,6 +537,10 @@
 
 def RW_READ_HELD(r): return ismrlocked(r, MR_ACCESS)
 
+MS_FREE = 0
+MS_UPD = 1
+MS_ACC = 2
+MS_WAITERS = 4
 
 # Included from sys/fcntl.h
 FNDELAY = 0x04
@@ -134,6 +553,7 @@
 FLARGEFILE = 0x2000
 FNONBLK = FNONBLOCK
 FDIRECT = 0x8000
+FBULK = 0x10000
 FDIRENT64 = 0x8000
 FCREAT = 0x0100
 FTRUNC = 0x0200
@@ -150,6 +570,7 @@
 O_NONBLOCK = 0x80
 O_LARGEFILE = 0x2000
 O_DIRECT = 0x8000
+O_BULK = 0x10000
 O_CREAT = 0x100
 O_TRUNC = 0x200
 O_EXCL = 0x400
@@ -159,7 +580,6 @@
 F_SETFD = 2
 F_GETFL = 3
 F_SETFL = 4
-F_GETLK = 14
 F_SETLK = 6
 F_SETLKW = 7
 F_CHKFL = 8
@@ -167,6 +587,15 @@
 F_FREESP = 11
 F_SETBSDLK = 12
 F_SETBSDLKW = 13
+F_GETLK = 14
+F_CHKLK = 15
+F_CHKLKW = 16
+F_CLNLK = 17
+F_RSETLK = 20
+F_RGETLK = 21
+F_RSETLKW = 22
+F_GETOWN = 23
+F_SETOWN = 24
 F_DIOINFO = 30
 F_FSGETXATTR = 31
 F_FSSETXATTR = 32
@@ -183,19 +612,30 @@
 F_UNRESVSP64 = 43
 F_GETBMAPA = 44
 F_FSGETXATTRA = 45
-F_GETALLLK = 46
-F_RSETLK = 20
-F_RGETLK = 21
-F_RSETLKW = 22
-F_GETOWN = 23
-F_SETOWN = 24
+F_SETBIOSIZE = 46
+F_GETBIOSIZE = 47
+F_GETOPS = 50
+F_DMAPI = 51
+F_FSYNC = 52
+F_FSYNC64 = 53
+F_GETBDSATTR = 54
+F_SETBDSATTR = 55
+F_GETBMAPX = 56
+F_SETPRIO = 57
+F_GETPRIO = 58
 F_RDLCK = 01
 F_WRLCK = 02
 F_UNLCK = 03
 O_ACCMODE = 3
 FD_CLOEXEC = 1
 FD_NODUP_FORK = 4
-FMASK = 0x90FF
+BMV_IF_ATTRFORK = 0x1
+BMV_IF_NO_DMAPI_READ = 0x2
+BMV_IF_PREALLOC = 0x4
+BMV_IF_VALID = (BMV_IF_ATTRFORK|BMV_IF_NO_DMAPI_READ|BMV_IF_PREALLOC)
+BMV_OF_PREALLOC = 0x1
+BMV_IF_EXTENDED = 0x40000000
+FMASK = 0x190FF
 FOPEN = 0xFFFFFFFF
 FREAD = 0x01
 FWRITE = 0x02
@@ -209,28 +649,26 @@
 FNONBLK = FNONBLOCK
 FLARGEFILE = 0x2000
 FDIRECT = 0x8000
+FBULK = 0x10000
 FCREAT = 0x0100
 FTRUNC = 0x0200
 FEXCL = 0x0400
 FNOCTTY = 0x0800
-FMARK = 0x4000
-FDEFER = 0x2000
-FINPROGRESS = 0x0400
 FINVIS = 0x0100
-FNMFS = 0x2000
+FSOCKET = 0x0200
+FINPROGRESS = 0x0400
+FPRIORITY = 0x0800
+FPRIO = 0x4000
 FDIRENT64 = 0x8000
-FCLOSEXEC = 001
-FDSHD = 0x0001
-FDNOMARK = 0x0002
-FDIGNPROGRESS = 0x0004
+FCLOSEXEC = 0x01
 LOCK_SH = 1
 LOCK_EX = 2
 LOCK_NB = 4
 LOCK_UN = 8
+L_SET = 0
+L_INCR = 1
+L_XTND = 2
 F_OK = 0
 X_OK = 1
 W_OK = 2
 R_OK = 4
-L_SET = 0
-L_INCR = 1
-L_XTND = 2
diff --git a/Lib/plat-irix6/IN.py b/Lib/plat-irix6/IN.py
index 7340878..9385bb0 100644
--- a/Lib/plat-irix6/IN.py
+++ b/Lib/plat-irix6/IN.py
@@ -1,5 +1,7 @@
 # Generated by h2py from /usr/include/netinet/in.h
 
+# Included from standards.h
+
 # Included from sgidefs.h
 _MIPS_ISA_MIPS1 = 1
 _MIPS_ISA_MIPS2 = 2
@@ -9,25 +11,6 @@
 _MIPS_SIM_NABI32 = 2
 _MIPS_SIM_ABI64 = 3
 
-# Included from sys/endian.h
-LITTLE_ENDIAN = 1234
-BIG_ENDIAN = 4321
-PDP_ENDIAN = 3412
-BYTE_ORDER = BIG_ENDIAN
-BYTE_ORDER = LITTLE_ENDIAN
-def ntohl(x): return (x)
-
-def ntohs(x): return (x)
-
-def htonl(x): return (x)
-
-def htons(x): return (x)
-
-def htonl(x): return ntohl(x)
-
-def htons(x): return ntohs(x)
-
-
 # Included from sys/bsd_types.h
 
 # Included from sys/mkdev.h
@@ -42,21 +25,67 @@
 OLDDEV = 0
 NEWDEV = 1
 MKDEV_VER = NEWDEV
+def IS_STRING_SPEC_DEV(x): return ((dev_t)(x)==__makedev(MKDEV_VER, 0, 0))
+
 def major(dev): return __major(MKDEV_VER, dev)
 
 def minor(dev): return __minor(MKDEV_VER, dev)
 
 
 # Included from sys/select.h
-
-# Included from standards.h
 FD_SETSIZE = 1024
 __NBBY = 8
 
 # Included from string.h
 NULL = 0L
 NBBY = 8
+
+# Included from sys/endian.h
+LITTLE_ENDIAN = 1234
+BIG_ENDIAN = 4321
+PDP_ENDIAN = 3412
+_LITTLE_ENDIAN = 1234
+_BIG_ENDIAN = 4321
+_PDP_ENDIAN = 3412
+_BYTE_ORDER = _BIG_ENDIAN
+_BYTE_ORDER = _LITTLE_ENDIAN
+def ntohl(x): return (x)
+
+def ntohs(x): return (x)
+
+def htonl(x): return (x)
+
+def htons(x): return (x)
+
+def htonl(x): return ntohl(x)
+
+def htons(x): return ntohs(x)
+
+
+# Included from sys/types.h
+
+# Included from sys/pthread.h
+P_MYID = (-1)
+P_MYHOSTID = (-1)
+
+# Included from sys/cpumask.h
+MAXCPU = 128
+def CPUMASK_INDEX(bit): return ((bit) >> 6)
+
+def CPUMASK_SHFT(bit): return ((bit) & 0x3f)
+
+def CPUMASK_IS_ZERO(p): return ((p) == 0)
+
+def CPUMASK_IS_NONZERO(p): return ((p) != 0)
+
+
+# Included from sys/nodemask.h
+def CNODEMASK_IS_ZERO(p): return ((p) == 0)
+
+def CNODEMASK_IS_NONZERO(p): return ((p) != 0)
+
 IPPROTO_IP = 0
+IPPROTO_HOPOPTS = 0
 IPPROTO_ICMP = 1
 IPPROTO_IGMP = 2
 IPPROTO_GGP = 3
@@ -64,22 +93,92 @@
 IPPROTO_ENCAP = IPPROTO_IPIP
 IPPROTO_ST = 5
 IPPROTO_TCP = 6
+IPPROTO_UCL = 7
 IPPROTO_EGP = 8
+IPPROTO_IGP = 9
+IPPROTO_BBN_RCC_MON = 10
+IPPROTO_NVP_II = 11
 IPPROTO_PUP = 12
+IPPROTO_ARGUS = 13
+IPPROTO_EMCON = 14
+IPPROTO_XNET = 15
+IPPROTO_CHAOS = 16
 IPPROTO_UDP = 17
+IPPROTO_MUX = 18
+IPPROTO_DCN_MEAS = 19
+IPPROTO_HMP = 20
+IPPROTO_PRM = 21
 IPPROTO_IDP = 22
+IPPROTO_TRUNK_1 = 23
+IPPROTO_TRUNK_2 = 24
+IPPROTO_LEAF_1 = 25
+IPPROTO_LEAF_2 = 26
+IPPROTO_RDP = 27
+IPPROTO_IRTP = 28
 IPPROTO_TP = 29
+IPPROTO_NETBLT = 30
+IPPROTO_MFE_NSP = 31
+IPPROTO_MERIT_INP = 32
+IPPROTO_SEP = 33
+IPPROTO_3PC = 34
+IPPROTO_IDPR = 35
 IPPROTO_XTP = 36
+IPPROTO_DDP = 37
+IPPROTO_IDPR_CMTP = 38
+IPPROTO_TPPP = 39
+IPPROTO_IL = 40
+IPPROTO_IPV6 = 41
+IPPROTO_ROUTING = 43
+IPPROTO_FRAGMENT = 44
 IPPROTO_RSVP = 46
+IPPROTO_ESP = 50
+IPPROTO_AH = 51
+IPPROTO_ICMPV6 = 58
+IPPROTO_NONE = 59
+IPPROTO_DSTOPTS = 60
+IPPROTO_CFTP = 62
 IPPROTO_HELLO = 63
+IPPROTO_SAT_EXPAK = 64
+IPPROTO_KRYPTOLAN = 65
+IPPROTO_RVD = 66
+IPPROTO_IPPC = 67
+IPPROTO_SAT_MON = 69
+IPPROTO_VISA = 70
+IPPROTO_IPCV = 71
+IPPROTO_CPNX = 72
+IPPROTO_CPHB = 73
+IPPROTO_WSN = 74
+IPPROTO_PVP = 75
+IPPROTO_BR_SAT_MON = 76
 IPPROTO_ND = 77
+IPPROTO_WB_MON = 78
+IPPROTO_WB_EXPAK = 79
 IPPROTO_EON = 80
+IPPROTO_VMTP = 81
+IPPROTO_SECURE_VMTP = 82
+IPPROTO_VINES = 83
+IPPROTO_TTP = 84
+IPPROTO_NSFNET_IGP = 85
+IPPROTO_DGP = 86
+IPPROTO_TCF = 87
+IPPROTO_IGRP = 88
 IPPROTO_OSPF = 89
+IPPROTO_SPRITE_RPC = 90
+IPPROTO_LARP = 91
+IPPROTO_MTP = 92
+IPPROTO_AX25 = 93
 IPPROTO_SWIPE = 94
+IPPROTO_MICP = 95
+IPPROTO_AES_SP3_D = 96
+IPPROTO_ETHERIP = 97
+IPPROTO_ENCAPHDR = 98
 IPPROTO_RAW = 255
 IPPROTO_MAX = 256
+IPPROTO_STP = 257
 IPPORT_RESERVED = 1024
 IPPORT_MAXPORT = 65535
+INET_ADDRSTRLEN = 16
+INET6_ADDRSTRLEN = 46
 def IN_CLASSA(i): return (((__int32_t)(i) & 0x80000000) == 0)
 
 IN_CLASSA_NET = 0xff000000
@@ -110,6 +209,137 @@
 
 INADDR_NONE = 0xffffffff
 IN_LOOPBACKNET = 127
+IPNGVERSION = 6
+IPV6_FLOWINFO_FLOWLABEL = 0x00ffffff
+IPV6_FLOWINFO_PRIORITY = 0x0f000000
+IPV6_FLOWINFO_PRIFLOW = 0x0fffffff
+IPV6_FLOWINFO_SRFLAG = 0x10000000
+IPV6_FLOWINFO_VERSION = 0xf0000000
+IPV6_PRIORITY_UNCHARACTERIZED = 0x00000000
+IPV6_PRIORITY_FILLER = 0x01000000
+IPV6_PRIORITY_UNATTENDED = 0x02000000
+IPV6_PRIORITY_RESERVED1 = 0x03000000
+IPV6_PRIORITY_BULK = 0x04000000
+IPV6_PRIORITY_RESERVED2 = 0x05000000
+IPV6_PRIORITY_INTERACTIVE = 0x06000000
+IPV6_PRIORITY_CONTROL = 0x07000000
+IPV6_PRIORITY_8 = 0x08000000
+IPV6_PRIORITY_9 = 0x09000000
+IPV6_PRIORITY_10 = 0x0a000000
+IPV6_PRIORITY_11 = 0x0b000000
+IPV6_PRIORITY_12 = 0x0c000000
+IPV6_PRIORITY_13 = 0x0d000000
+IPV6_PRIORITY_14 = 0x0e000000
+IPV6_PRIORITY_15 = 0x0f000000
+IPV6_SRFLAG_STRICT = 0x10000000
+IPV6_SRFLAG_LOOSE = 0x00000000
+IPV6_VERSION = 0x60000000
+IPV6_FLOWINFO_FLOWLABEL = 0xffffff00
+IPV6_FLOWINFO_PRIORITY = 0x0000000f
+IPV6_FLOWINFO_PRIFLOW = 0xffffff0f
+IPV6_FLOWINFO_SRFLAG = 0x00000010
+IPV6_FLOWINFO_VERSION = 0x000000f0
+IPV6_PRIORITY_UNCHARACTERIZED = 0x00000000
+IPV6_PRIORITY_FILLER = 0x00000001
+IPV6_PRIORITY_UNATTENDED = 0x00000002
+IPV6_PRIORITY_RESERVED1 = 0x00000003
+IPV6_PRIORITY_BULK = 0x00000004
+IPV6_PRIORITY_RESERVED2 = 0x00000005
+IPV6_PRIORITY_INTERACTIVE = 0x00000006
+IPV6_PRIORITY_CONTROL = 0x00000007
+IPV6_PRIORITY_8 = 0x00000008
+IPV6_PRIORITY_9 = 0x00000009
+IPV6_PRIORITY_10 = 0x0000000a
+IPV6_PRIORITY_11 = 0x0000000b
+IPV6_PRIORITY_12 = 0x0000000c
+IPV6_PRIORITY_13 = 0x0000000d
+IPV6_PRIORITY_14 = 0x0000000e
+IPV6_PRIORITY_15 = 0x0000000f
+IPV6_SRFLAG_STRICT = 0x00000010
+IPV6_SRFLAG_LOOSE = 0x00000000
+IPV6_VERSION = 0x00000060
+def IPV6_GET_FLOWLABEL(x): return (ntohl(x) & 0x00ffffff)
+
+def IPV6_GET_PRIORITY(x): return ((ntohl(x) >> 24) & 0xf)
+
+def IPV6_GET_VERSION(x): return ((ntohl(x) >> 28) & 0xf)
+
+def IPV6_SET_FLOWLABEL(x): return (htonl(x) & IPV6_FLOWINFO_FLOWLABEL)
+
+def IPV6_SET_PRIORITY(x): return (htonl((x & 0xf) << 24))
+
+def CLR_ADDR6(a): return \
+
+def IS_ANYSOCKADDR(a): return \
+
+def IS_ANYADDR6(a): return \
+
+def IS_COMPATSOCKADDR(a): return \
+
+def IS_COMPATADDR6(a): return \
+
+def IS_LOOPSOCKADDR(a): return \
+
+def IS_LOOPADDR6(a): return \
+
+def IS_IPV4SOCKADDR(a): return \
+
+def IS_IPV4ADDR6(a): return \
+
+def IS_LOOPSOCKADDR(a): return \
+
+def IS_LOOPADDR6(a): return \
+
+def IS_IPV4SOCKADDR(a): return \
+
+def IS_IPV4ADDR6(a): return \
+
+def IS_LOCALADDR6(a): return ((a).s6_addr8[0] == 0xfe)
+
+def IS_LINKLADDR6(a): return \
+
+def IS_SITELADDR6(a): return \
+
+def IS_MULTIADDR6(a): return ((a).s6_addr8[0] == 0xff)
+
+def MADDR6_FLAGS(a): return ((a).s6_addr8[1] >> 4)
+
+MADDR6_FLG_WK = 0
+MADDR6_FLG_TS = 1
+def MADDR6_SCOPE(a): return ((a).s6_addr8[1] & 0x0f)
+
+MADDR6_SCP_NODE = 0x1
+MADDR6_SCP_LINK = 0x2
+MADDR6_SCP_SITE = 0x5
+MADDR6_SCP_ORG = 0x8
+MADDR6_SCP_GLO = 0xe
+MADDR6_ALLNODES = 1
+MADDR6_ALLROUTERS = 2
+MADDR6_ALLHOSTS = 3
+def IN6_IS_ADDR_UNSPECIFIED(p): return IS_ANYADDR6(*p)
+
+def IN6_IS_ADDR_LOOPBACK(p): return IS_LOOPADDR6(*p)
+
+def IN6_IS_ADDR_MULTICAST(p): return IS_MULTIADDR6(*p)
+
+def IN6_IS_ADDR_LINKLOCAL(p): return IS_LINKLADDR6(*p)
+
+def IN6_IS_ADDR_SITELOCAL(p): return IS_SITELADDR6(*p)
+
+def IN6_IS_ADDR_V4MAPPED(p): return IS_IPV4ADDR6(*p)
+
+def IN6_IS_ADDR_V4COMPAT(p): return IS_COMPATADDR6(*p)
+
+def IN6_IS_ADDR_MC_NODELOCAL(p): return \
+
+def IN6_IS_ADDR_MC_LINKLOCAL(p): return \
+
+def IN6_IS_ADDR_MC_SITELOCAL(p): return \
+
+def IN6_IS_ADDR_MC_ORGLOCAL(p): return \
+
+def IN6_IS_ADDR_MC_GLOBAL(p): return \
+
 IP_OPTIONS = 1
 IP_HDRINCL = 2
 IP_TOS = 3
@@ -128,6 +358,28 @@
 IP_RSVP_VIF_OFF = 27
 IP_RSVP_ON = 28
 IP_SENDSRCADDR = 36
+IPV6_UNICAST_HOPS = IP_TTL
+IPV6_MULTICAST_IF = IP_MULTICAST_IF
+IPV6_MULTICAST_HOPS = IP_MULTICAST_TTL
+IPV6_MULTICAST_LOOP = IP_MULTICAST_LOOP
+IPV6_ADD_MEMBERSHIP = IP_ADD_MEMBERSHIP
+IPV6_DROP_MEMBERSHIP = IP_DROP_MEMBERSHIP
+IPV6_SENDIF = 40
+IPV6_NOPROBE = 42
+IPV6_RECVPKTINFO = 43
+IPV6_PKTINFO = 44
+IP_RECVTTL = 45
+IPV6_RECVHOPS = IP_RECVTTL
+IPV6_CHECKSUM = 46
+ICMP6_FILTER = 47
+IPV6_HOPLIMIT = 48
+IPV6_HOPOPTS = 49
+IPV6_DSTOPTS = 50
+IPV6_RTHDR = 51
+IPV6_PKTOPTIONS = 52
+IPV6_NEXTHOP = 53
 IP_DEFAULT_MULTICAST_TTL = 1
 IP_DEFAULT_MULTICAST_LOOP = 1
-IP_MAX_MEMBERSHIPS = 20
+IPV6_RTHDR_LOOSE = 0
+IPV6_RTHDR_STRICT = 1
+IPV6_RTHDR_TYPE_0 = 0
