FreeBSD platform specific modules
diff --git a/Lib/plat-freebsd2/FCNTL.py b/Lib/plat-freebsd2/FCNTL.py
new file mode 100755
index 0000000..8862073
--- /dev/null
+++ b/Lib/plat-freebsd2/FCNTL.py
@@ -0,0 +1,62 @@
+# Generated by h2py from /usr/include/sys/fcntl.h
+
+
+# Included from machine/endian.h
+_MACHINE_ENDIAN_H_ = 1
+_QUAD_HIGHWORD = 1
+_QUAD_LOWWORD = 0
+LITTLE_ENDIAN = 1234
+BIG_ENDIAN = 4321
+PDP_ENDIAN = 3412
+BYTE_ORDER = LITTLE_ENDIAN
+
+# Included from machine/types.h
+NBBY = 8
+FD_SETSIZE = 256
+O_RDONLY = 0x0000
+O_WRONLY = 0x0001
+O_RDWR = 0x0002
+O_ACCMODE = 0x0003
+FREAD = 0x0001
+FWRITE = 0x0002
+O_NONBLOCK = 0x0004
+O_APPEND = 0x0008
+O_SHLOCK = 0x0010
+O_EXLOCK = 0x0020
+O_ASYNC = 0x0040
+O_FSYNC = 0x0080
+O_CREAT = 0x0200
+O_TRUNC = 0x0400
+O_EXCL = 0x0800
+FMARK = 0x1000
+FDEFER = 0x2000
+FHASLOCK = 0x4000
+O_NOCTTY = 0
+
+FAPPEND = O_APPEND
+FASYNC = O_ASYNC
+FFSYNC = O_FSYNC
+FNONBLOCK = O_NONBLOCK
+FNDELAY = O_NONBLOCK
+O_NDELAY = O_NONBLOCK
+F_DUPFD = 0
+F_GETFD = 1
+F_SETFD = 2
+F_GETFL = 3
+F_SETFL = 4
+F_GETOWN = 5
+F_SETOWN = 6
+F_GETLK = 7
+F_SETLK = 8
+F_SETLKW = 9
+FD_CLOEXEC = 1
+F_RDLCK = 1
+F_UNLCK = 2
+F_WRLCK = 3
+F_WAIT = 0x010
+F_FLOCK = 0x020
+F_POSIX = 0x040
+LOCK_SH = 0x01
+LOCK_EX = 0x02
+LOCK_NB = 0x04
+LOCK_UN = 0x08
diff --git a/Lib/plat-freebsd2/regen b/Lib/plat-freebsd2/regen
new file mode 100755
index 0000000..1516e60
--- /dev/null
+++ b/Lib/plat-freebsd2/regen
@@ -0,0 +1,6 @@
+#! /bin/sh
+set -v
+#h2py /usr/include/sys/fcntl.h
+h2py /usr/include/sys/socket.h
+h2py -i '(u_long)' /usr/include/netinet/in.h
+h2py /usr/include/termios.h