summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2002-06-11 06:22:31 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2002-06-11 06:22:31 (GMT)
commitf90ae20354ceb501f0ba0b6459df17f1a8005a47 (patch)
treef9aae742cfa33ba10af2ed8152aff802430f626c /Lib
parent7981ce576c719e291dc901a3463e725b6be3c50e (diff)
downloadcpython-f90ae20354ceb501f0ba0b6459df17f1a8005a47.zip
cpython-f90ae20354ceb501f0ba0b6459df17f1a8005a47.tar.gz
cpython-f90ae20354ceb501f0ba0b6459df17f1a8005a47.tar.bz2
Patch #488073: AtheOS port.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/distutils/command/build_ext.py20
-rw-r--r--Lib/plat-atheos/IN.py945
-rw-r--r--Lib/plat-atheos/TYPES.py143
-rw-r--r--Lib/plat-atheos/regen3
-rwxr-xr-xLib/test/regrtest.py28
-rwxr-xr-xLib/test/test_fcntl.py3
-rw-r--r--Lib/test/test_file.py7
-rw-r--r--Lib/test/test_mhlib.py2
-rw-r--r--Lib/test/test_os.py8
-rw-r--r--Lib/test/test_popen2.py5
10 files changed, 1157 insertions, 7 deletions
diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py
index 89ca1dc..d8f3dc8 100644
--- a/Lib/distutils/command/build_ext.py
+++ b/Lib/distutils/command/build_ext.py
@@ -178,9 +178,9 @@ class build_ext (Command):
if os.name == 'os2':
self.library_dirs.append(os.path.join(sys.exec_prefix, 'Config'))
- # for extensions under Cygwin Python's library directory must be
+ # for extensions under Cygwin and AtheOS Python's library directory must be
# appended to library_dirs
- if sys.platform[:6] == 'cygwin':
+ if sys.platform[:6] == 'cygwin' or sys.platform[:6] == 'atheos':
if string.find(sys.executable, sys.exec_prefix) != -1:
# building third party extensions
self.library_dirs.append(os.path.join(sys.prefix, "lib",
@@ -656,6 +656,22 @@ class build_ext (Command):
# don't extend ext.libraries, it may be shared with other
# extensions, it is a reference to the original list
return ext.libraries + [pythonlib]
+ elif sys.platform[:6] == "atheos":
+ from distutils import sysconfig
+
+ template = "python%d.%d"
+ pythonlib = (template %
+ (sys.hexversion >> 24, (sys.hexversion >> 16) & 0xff))
+ # Get SHLIBS from Makefile
+ extra = []
+ for lib in sysconfig.get_config_var('SHLIBS').split():
+ if lib.startswith('-l'):
+ extra.append(lib[2:])
+ else:
+ extra.append(lib)
+ # don't extend ext.libraries, it may be shared with other
+ # extensions, it is a reference to the original list
+ return ext.libraries + [pythonlib, "m"] + extra
else:
return ext.libraries
diff --git a/Lib/plat-atheos/IN.py b/Lib/plat-atheos/IN.py
new file mode 100644
index 0000000..a386a21
--- /dev/null
+++ b/Lib/plat-atheos/IN.py
@@ -0,0 +1,945 @@
+# Generated by h2py from /include/netinet/in.h
+_NETINET_IN_H = 1
+
+# Included from features.h
+_FEATURES_H = 1
+__USE_ANSI = 1
+__FAVOR_BSD = 1
+_ISOC9X_SOURCE = 1
+_POSIX_SOURCE = 1
+_POSIX_C_SOURCE = 199506L
+_XOPEN_SOURCE = 500
+_XOPEN_SOURCE_EXTENDED = 1
+_LARGEFILE64_SOURCE = 1
+_BSD_SOURCE = 1
+_SVID_SOURCE = 1
+_BSD_SOURCE = 1
+_SVID_SOURCE = 1
+__USE_ISOC9X = 1
+_POSIX_SOURCE = 1
+_POSIX_C_SOURCE = 2
+_POSIX_C_SOURCE = 199506L
+__USE_POSIX = 1
+__USE_POSIX2 = 1
+__USE_POSIX199309 = 1
+__USE_POSIX199506 = 1
+__USE_XOPEN = 1
+__USE_XOPEN_EXTENDED = 1
+__USE_UNIX98 = 1
+_LARGEFILE_SOURCE = 1
+__USE_XOPEN_EXTENDED = 1
+__USE_LARGEFILE = 1
+__USE_LARGEFILE64 = 1
+__USE_FILE_OFFSET64 = 1
+__USE_MISC = 1
+__USE_BSD = 1
+__USE_SVID = 1
+__USE_GNU = 1
+__USE_REENTRANT = 1
+__STDC_IEC_559__ = 1
+__STDC_IEC_559_COMPLEX__ = 1
+__GNU_LIBRARY__ = 6
+__GLIBC__ = 2
+__GLIBC_MINOR__ = 1
+
+# Included from sys/cdefs.h
+_SYS_CDEFS_H = 1
+def __PMT(args): return args
+
+def __P(args): return args
+
+def __PMT(args): return args
+
+def __P(args): return ()
+
+def __PMT(args): return ()
+
+def __STRING(x): return #x
+
+def __STRING(x): return "x"
+
+def __ASMNAME(cname): return __ASMNAME2 (__USER_LABEL_PREFIX__, cname)
+
+def __attribute__(xyz): return
+
+__USE_EXTERN_INLINES = 1
+
+# Included from gnu/stubs.h
+
+# Included from limits.h
+_LIBC_LIMITS_H_ = 1
+
+# Included from bits/posix1_lim.h
+_BITS_POSIX1_LIM_H = 1
+_POSIX_AIO_LISTIO_MAX = 2
+_POSIX_AIO_MAX = 1
+_POSIX_ARG_MAX = 4096
+_POSIX_CHILD_MAX = 6
+_POSIX_DELAYTIMER_MAX = 32
+_POSIX_LINK_MAX = 8
+_POSIX_MAX_CANON = 255
+_POSIX_MAX_INPUT = 255
+_POSIX_MQ_OPEN_MAX = 8
+_POSIX_MQ_PRIO_MAX = 32
+_POSIX_NGROUPS_MAX = 0
+_POSIX_OPEN_MAX = 16
+_POSIX_FD_SETSIZE = _POSIX_OPEN_MAX
+_POSIX_NAME_MAX = 14
+_POSIX_PATH_MAX = 255
+_POSIX_PIPE_BUF = 512
+_POSIX_RTSIG_MAX = 8
+_POSIX_SEM_NSEMS_MAX = 256
+_POSIX_SEM_VALUE_MAX = 32767
+_POSIX_SIGQUEUE_MAX = 32
+_POSIX_SSIZE_MAX = 32767
+_POSIX_STREAM_MAX = 8
+_POSIX_TZNAME_MAX = 3
+_POSIX_QLIMIT = 1
+_POSIX_HIWAT = _POSIX_PIPE_BUF
+_POSIX_UIO_MAXIOV = 16
+_POSIX_TTY_NAME_MAX = 9
+_POSIX_TIMER_MAX = 32
+_POSIX_LOGIN_NAME_MAX = 9
+_POSIX_CLOCKRES_MIN = 20000000
+
+# Included from bits/local_lim.h
+
+# Included from posix/limits.h
+CHAR_BIT = 8
+CHAR_MAX = 127
+CHAR_MIN = (-128)
+INT_MAX = 2147483647
+INT_MIN = (-2147483647-1)
+LONG_MAX = 2147483647L
+LONG_MIN = (-2147483647L-1L)
+SCHAR_MAX = 127
+SCHAR_MIN = (-128)
+SHRT_MAX = 32767
+SHRT_MIN = (-32768)
+UCHAR_MAX = 255
+USHRT_MAX = 65535
+_POSIX_ARG_MAX = 131072
+_POSIX_CHILD_MAX = 4096
+_POSIX_LINK_MAX = 1
+_POSIX_MAX_CANON = 126
+_POSIX_MAX_INPUT = 126
+_POSIX_NAME_MAX = 256
+_POSIX_NGROUPS_MAX = 32
+_POSIX_OPEN_MAX = 256
+_POSIX_PATH_MAX = 255
+_POSIX_PIPE_BUF = 512
+_POSIX_SSIZE_MAX = 2147483647
+_POSIX_STREAM_MAX = 256
+_POSIX_TZNAME_MAX = 5
+NGROUPS_MAX = 32
+ARG_MAX = 131072
+CHILD_MAX = 4096
+OPEN_MAX = 256
+LINK_MAX = 1
+MAX_CANON = 126
+MAX_INPUT = 126
+NAME_MAX = 255
+PATH_MAX = 4096
+PIPE_BUF = 4096
+SSIZE_MAX = 2147483647
+MAXSYMLINKS = 16
+AIO_PRIO_DELTA_MAX = 20
+SSIZE_MAX = INT_MAX
+NGROUPS_MAX = _POSIX_NGROUPS_MAX
+
+# Included from bits/posix2_lim.h
+_BITS_POSIX2_LIM_H = 1
+_POSIX2_BC_BASE_MAX = 99
+_POSIX2_BC_DIM_MAX = 2048
+_POSIX2_BC_SCALE_MAX = 99
+_POSIX2_BC_STRING_MAX = 1000
+_POSIX2_COLL_WEIGHTS_MAX = 255
+_POSIX2_EQUIV_CLASS_MAX = 255
+_POSIX2_EXPR_NEST_MAX = 32
+_POSIX2_LINE_MAX = 2048
+_POSIX2_RE_DUP_MAX = 255
+_POSIX2_CHARCLASS_NAME_MAX = 2048
+BC_BASE_MAX = _POSIX2_BC_BASE_MAX
+BC_DIM_MAX = _POSIX2_BC_DIM_MAX
+BC_SCALE_MAX = _POSIX2_BC_SCALE_MAX
+BC_STRING_MAX = _POSIX2_BC_STRING_MAX
+COLL_WEIGHTS_MAX = _POSIX2_COLL_WEIGHTS_MAX
+EQUIV_CLASS_MAX = _POSIX2_EQUIV_CLASS_MAX
+EXPR_NEST_MAX = _POSIX2_EXPR_NEST_MAX
+LINE_MAX = _POSIX2_LINE_MAX
+RE_DUP_MAX = _POSIX2_RE_DUP_MAX
+CHARCLASS_NAME_MAX = _POSIX2_CHARCLASS_NAME_MAX
+
+# Included from bits/xopen_lim.h
+_XOPEN_LIM_H = 1
+
+# Included from bits/stdio_lim.h
+L_tmpnam = 20
+TMP_MAX = 238328
+FILENAME_MAX = 4096
+L_ctermid = 9
+L_cuserid = 9
+FOPEN_MAX = 256
+STREAM_MAX = FOPEN_MAX
+TZNAME_MAX = _POSIX_TZNAME_MAX
+_XOPEN_IOV_MAX = _POSIX_UIO_MAXIOV
+NL_ARGMAX = _POSIX_ARG_MAX
+NL_LANGMAX = _POSIX2_LINE_MAX
+NL_MSGMAX = INT_MAX
+NL_NMAX = INT_MAX
+NL_SETMAX = INT_MAX
+NL_TEXTMAX = INT_MAX
+NZERO = 20
+MB_LEN_MAX = 6
+_LIMITS_H = 1
+CHAR_BIT = 8
+SCHAR_MIN = (-128)
+SCHAR_MAX = 127
+UCHAR_MAX = 255
+CHAR_MIN = 0
+CHAR_MAX = UCHAR_MAX
+CHAR_MIN = SCHAR_MIN
+CHAR_MAX = SCHAR_MAX
+SHRT_MIN = (-32768)
+SHRT_MAX = 32767
+USHRT_MAX = 65535
+INT_MIN = (-INT_MAX - 1)
+INT_MAX = 2147483647
+UINT_MAX = 4294967295
+LONG_MAX = 9223372036854775807L
+LONG_MAX = 2147483647L
+LONG_MIN = (-LONG_MAX - 1L)
+ULONG_MAX = 4294967295L
+
+# Included from stdint.h
+_STDINT_H = 1
+
+# Included from bits/wordsize.h
+__WORDSIZE = 32
+def __INT64_C(c): return c ## L
+
+def __UINT64_C(c): return c ## UL
+
+def __INT64_C(c): return c ## LL
+
+def __UINT64_C(c): return c ## ULL
+
+INT8_MIN = (-128)
+INT16_MIN = (-32767-1)
+INT32_MIN = (-2147483647-1)
+INT64_MIN = (-__INT64_C(9223372036854775807)-1)
+INT8_MAX = (127)
+INT16_MAX = (32767)
+INT32_MAX = (2147483647)
+INT64_MAX = (__INT64_C(9223372036854775807))
+UINT64_MAX = (__UINT64_C(18446744073709551615))
+INT_LEAST8_MIN = (-128)
+INT_LEAST16_MIN = (-32767-1)
+INT_LEAST32_MIN = (-2147483647-1)
+INT_LEAST64_MIN = (-__INT64_C(9223372036854775807)-1)
+INT_LEAST8_MAX = (127)
+INT_LEAST16_MAX = (32767)
+INT_LEAST32_MAX = (2147483647)
+INT_LEAST64_MAX = (__INT64_C(9223372036854775807))
+UINT_LEAST64_MAX = (__UINT64_C(18446744073709551615))
+INT_FAST8_MIN = (-128)
+INT_FAST16_MIN = (-9223372036854775807L-1)
+INT_FAST32_MIN = (-9223372036854775807L-1)
+INT_FAST16_MIN = (-2147483647-1)
+INT_FAST32_MIN = (-2147483647-1)
+INT_FAST64_MIN = (-__INT64_C(9223372036854775807)-1)
+INT_FAST8_MAX = (127)
+INT_FAST16_MAX = (9223372036854775807L)
+INT_FAST32_MAX = (9223372036854775807L)
+INT_FAST16_MAX = (2147483647)
+INT_FAST32_MAX = (2147483647)
+INT_FAST64_MAX = (__INT64_C(9223372036854775807))
+UINT_FAST64_MAX = (__UINT64_C(18446744073709551615))
+INTPTR_MIN = (-9223372036854775807L-1)
+INTPTR_MAX = (9223372036854775807L)
+INTPTR_MIN = (-2147483647-1)
+INTPTR_MAX = (2147483647)
+INTMAX_MIN = (-__INT64_C(9223372036854775807)-1)
+INTMAX_MAX = (__INT64_C(9223372036854775807))
+UINTMAX_MAX = (__UINT64_C(18446744073709551615))
+PTRDIFF_MIN = (-9223372036854775807L-1)
+PTRDIFF_MAX = (9223372036854775807L)
+PTRDIFF_MIN = (-2147483647-1)
+PTRDIFF_MAX = (2147483647)
+SIG_ATOMIC_MIN = (-2147483647-1)
+SIG_ATOMIC_MAX = (2147483647)
+WCHAR_MIN = (-2147483647-1)
+WCHAR_MAX = (2147483647)
+WINT_MIN = (0)
+def INT8_C(c): return c
+
+def INT16_C(c): return c
+
+def INT32_C(c): return c
+
+def INT64_C(c): return c ## L
+
+def INT64_C(c): return c ## LL
+
+def UINT8_C(c): return c ## U
+
+def UINT16_C(c): return c ## U
+
+def UINT32_C(c): return c ## U
+
+def UINT64_C(c): return c ## UL
+
+def UINT64_C(c): return c ## ULL
+
+def INTMAX_C(c): return c ## L
+
+def UINTMAX_C(c): return c ## UL
+
+def INTMAX_C(c): return c ## LL
+
+def UINTMAX_C(c): return c ## ULL
+
+
+# Included from sys/types.h
+_SYS_TYPES_H = 1
+
+# Included from bits/types.h
+_BITS_TYPES_H = 1
+__FD_SETSIZE = 1024
+def __FDELT(d): return ((d) / __NFDBITS)
+
+
+# Included from bits/pthreadtypes.h
+
+# Included from time.h
+_TIME_H = 1
+
+# Included from bits/time.h
+
+# Included from posix/time.h
+
+# Included from posix/types.h
+MAXHOSTNAMELEN = 64
+FD_SETSIZE = 1024
+CLOCKS_PER_SEC = 1000000
+_BITS_TIME_H = 1
+CLOCKS_PER_SEC = 1000000
+CLK_TCK = 100
+_STRUCT_TIMEVAL = 1
+CLK_TCK = CLOCKS_PER_SEC
+__clock_t_defined = 1
+__time_t_defined = 1
+__timespec_defined = 1
+def __isleap(year): return \
+
+__BIT_TYPES_DEFINED__ = 1
+
+# Included from endian.h
+_ENDIAN_H = 1
+__LITTLE_ENDIAN = 1234
+__BIG_ENDIAN = 4321
+__PDP_ENDIAN = 3412
+
+# Included from bits/endian.h
+__BYTE_ORDER = __LITTLE_ENDIAN
+__FLOAT_WORD_ORDER = __BYTE_ORDER
+LITTLE_ENDIAN = __LITTLE_ENDIAN
+BIG_ENDIAN = __BIG_ENDIAN
+PDP_ENDIAN = __PDP_ENDIAN
+BYTE_ORDER = __BYTE_ORDER
+
+# Included from sys/select.h
+_SYS_SELECT_H = 1
+
+# Included from bits/select.h
+def __FD_ZERO(fdsp): return \
+
+def __FD_ZERO(set): return \
+
+
+# Included from bits/sigset.h
+_SIGSET_H_types = 1
+_SIGSET_H_fns = 1
+def __sigmask(sig): return \
+
+def __sigemptyset(set): return \
+
+def __sigfillset(set): return \
+
+def __sigisemptyset(set): return \
+
+FD_SETSIZE = __FD_SETSIZE
+def FD_ZERO(fdsetp): return __FD_ZERO (fdsetp)
+
+
+# Included from sys/sysmacros.h
+_SYS_SYSMACROS_H = 1
+def major(dev): return ( (( (dev) >> 8) & 0xff))
+
+def minor(dev): return ( ((dev) & 0xff))
+
+
+# Included from bits/socket.h
+PF_UNSPEC = 0
+PF_LOCAL = 1
+PF_UNIX = PF_LOCAL
+PF_FILE = PF_LOCAL
+PF_INET = 2
+PF_AX25 = 3
+PF_IPX = 4
+PF_APPLETALK = 5
+PF_NETROM = 6
+PF_BRIDGE = 7
+PF_ATMPVC = 8
+PF_X25 = 9
+PF_INET6 = 10
+PF_ROSE = 11
+PF_DECnet = 12
+PF_NETBEUI = 13
+PF_SECURITY = 14
+PF_KEY = 15
+PF_NETLINK = 16
+PF_ROUTE = PF_NETLINK
+PF_PACKET = 17
+PF_ASH = 18
+PF_ECONET = 19
+PF_ATMSVC = 20
+PF_SNA = 22
+PF_IRDA = 23
+PF_MAX = 32
+AF_UNSPEC = PF_UNSPEC
+AF_LOCAL = PF_LOCAL
+AF_UNIX = PF_UNIX
+AF_FILE = PF_FILE
+AF_INET = PF_INET
+AF_AX25 = PF_AX25
+AF_IPX = PF_IPX
+AF_APPLETALK = PF_APPLETALK
+AF_NETROM = PF_NETROM
+AF_BRIDGE = PF_BRIDGE
+AF_ATMPVC = PF_ATMPVC
+AF_X25 = PF_X25
+AF_INET6 = PF_INET6
+AF_ROSE = PF_ROSE
+AF_DECnet = PF_DECnet
+AF_NETBEUI = PF_NETBEUI
+AF_SECURITY = PF_SECURITY
+AF_KEY = PF_KEY
+AF_NETLINK = PF_NETLINK
+AF_ROUTE = PF_ROUTE
+AF_PACKET = PF_PACKET
+AF_ASH = PF_ASH
+AF_ECONET = PF_ECONET
+AF_ATMSVC = PF_ATMSVC
+AF_SNA = PF_SNA
+AF_IRDA = PF_IRDA
+AF_MAX = PF_MAX
+SOL_RAW = 255
+SOL_DECNET = 261
+SOL_X25 = 262
+SOL_PACKET = 263
+SOL_ATM = 264
+SOL_AAL = 265
+SOL_IRDA = 266
+SOMAXCONN = 128
+
+# Included from bits/sockaddr.h
+_BITS_SOCKADDR_H = 1
+def __SOCKADDR_COMMON(sa_prefix): return \
+
+_SS_SIZE = 128
+def CMSG_FIRSTHDR(mhdr): return \
+
+
+# Included from atheos/socket.h
+
+# Included from atheos/types.h
+OS_NAME_LENGTH = 64
+TRUE = 1
+FALSE = 0
+
+# Included from atheos/filesystem.h
+
+# Included from atheos/atomic.h
+
+# Included from atheos/typedefs.h
+
+# Included from atheos/fs_attribs.h
+
+# Included from atheos/kernel.h
+
+# Included from atheos/kdebug.h
+
+# Included from atheos/threads.h
+TF_DEADLOCK = 0x0001
+DB_PACKET_SIZE = 128
+DB_PORT_COUNT = 16
+DBP_PRINTK = 0
+DBP_DEBUGGER = 2
+
+# Included from atheos/stdlib.h
+
+# Included from atheos/string.h
+def COMMON(x): return \
+
+def COMMON(x): return \
+
+
+# Included from atheos/schedule.h
+
+# Included from atheos/timer.h
+
+# Included from posix/resource.h
+RUSAGE_SELF = 0
+RUSAGE_CHILDREN = -1
+RLIMIT_CPU = 0
+RLIMIT_FSIZE = 1
+RLIMIT_DATA = 2
+RLIMIT_STACK = 3
+RLIMIT_CORE = 4
+RLIMIT_RSS = 5
+RLIMIT_MEMLOCK = 6
+RLIMIT_NPROC = 7
+RLIMIT_NOFILE = 8
+RLIMIT_AS = 9
+RLIM_NLIMITS = 10
+
+# Included from atheos/v86.h
+
+# Included from atheos/areas.h
+MEMF_REAL = 0x00000002
+MEMF_USER = 0x00000004
+MEMF_BUFFER = 0x00000008
+MEMF_KERNEL = 0x00000010
+MEMF_OKTOFAILHACK = 0x00000020
+MEMF_PRI_MASK = 0x000000ff
+MEMF_NOBLOCK = 0x00000100
+MEMF_CLEAR = 0x00010000
+MEMF_LOCKED = 0x10000000
+PAGE_SHIFT = 12
+PGDIR_SHIFT = 22
+def PAGE_ALIGN(addr): return (((addr)+PAGE_SIZE-1)&PAGE_MASK)
+
+AREA_NO_LOCK = 0
+AREA_LAZY_LOCK = 1
+AREA_FULL_LOCK = 2
+AREA_CONTIGUOUS = 3
+AREA_READ = 0x00000001
+AREA_WRITE = 0x00000002
+AREA_EXEC = 0x00000004
+AREA_FULL_ACCESS = (AREA_READ | AREA_WRITE | AREA_EXEC)
+AREA_KERNEL = 0x00000008
+AREA_UNMAP_PHYS = 0x00000010
+AREA_ANY_ADDRESS = 0x00000000
+AREA_EXACT_ADDRESS = 0x00000100
+AREA_BASE_ADDRESS = 0x00000200
+AREA_CLONE_ADDRESS = 0x00000300
+AREA_ADDR_SPEC_MASK = 0x00000f00
+AREA_TOP_DOWN = 0x00001000
+AREA_REMAPPED = 0x0020
+AREA_SHARED = 0x0040
+AREA_GROWSDOWN = 0x0080
+AREA_FIRST_KERNEL_ADDRESS = 0x00100000
+AREA_LAST_KERNEL_ADDRESS = 0x7fffffff
+AREA_FIRST_USER_ADDRESS = 0x80000000
+AREA_LAST_USER_ADDRESS = 0xffffffff
+MAX_CPU_COUNT = 16
+def kfree(p): return kassertw( __kfree(p) == 0 )
+
+
+# Included from posix/dirent.h
+MAXNAMLEN = NAME_MAX
+MAXNAMLEN = 255
+
+# Included from dirent.h
+_DIRENT_H = 1
+
+# Included from bits/dirent.h
+def _D_ALLOC_NAMLEN(d): return (_D_EXACT_NAMLEN (d) + 1)
+
+def IFTODT(mode): return (((mode) & 0170000) >> 12)
+
+def DTTOIF(dirtype): return ((dirtype) << 12)
+
+def dirfd(dirp): return _DIR_dirfd (dirp)
+
+MAXNAMLEN = NAME_MAX
+MAXNAMLEN = 255
+
+# Included from posix/stat.h
+S_IFMT = 00170000
+S_IFSOCK = 0140000
+S_IFLNK = 0120000
+S_IFREG = 0100000
+S_IFBLK = 0060000
+S_IFDIR = 0040000
+S_IFCHR = 0020000
+S_IFIFO = 0010000
+S_ISUID = 0004000
+S_ISGID = 0002000
+S_ISVTX = 0001000
+def S_ISLNK(m): return (((m) & S_IFMT) == S_IFLNK)
+
+def S_ISREG(m): return (((m) & S_IFMT) == S_IFREG)
+
+def S_ISDIR(m): return (((m) & S_IFMT) == S_IFDIR)
+
+def S_ISCHR(m): return (((m) & S_IFMT) == S_IFCHR)
+
+def S_ISBLK(m): return (((m) & S_IFMT) == S_IFBLK)
+
+def S_ISFIFO(m): return (((m) & S_IFMT) == S_IFIFO)
+
+def S_ISSOCK(m): return (((m) & S_IFMT) == S_IFSOCK)
+
+S_IRWXU = 00700
+S_IRUSR = 00400
+S_IWUSR = 00200
+S_IXUSR = 00100
+S_IRWXG = 00070
+S_IRGRP = 00040
+S_IWGRP = 00020
+S_IXGRP = 00010
+S_IRWXO = 00007
+S_IROTH = 00004
+S_IWOTH = 00002
+S_IXOTH = 00001
+S_IRWXUGO = (S_IRWXU|S_IRWXG|S_IRWXO)
+S_IALLUGO = (S_ISUID|S_ISGID|S_ISVTX|S_IRWXUGO)
+S_IRUGO = (S_IRUSR|S_IRGRP|S_IROTH)
+S_IWUGO = (S_IWUSR|S_IWGRP|S_IWOTH)
+S_IXUGO = (S_IXUSR|S_IXGRP|S_IXOTH)
+_STAT_VER_KERNEL = 0
+
+# Included from posix/fcntl.h
+O_ACCMODE = 0003
+O_RWMASK = O_ACCMODE
+O_RDONLY = 00
+O_WRONLY = 01
+O_RDWR = 02
+O_CREAT = 0100
+O_EXCL = 0200
+O_NOCTTY = 0400
+O_TRUNC = 01000
+O_APPEND = 02000
+O_NONBLOCK = 04000
+O_NDELAY = O_NONBLOCK
+O_SYNC = 010000
+O_FSYNC = O_SYNC
+O_ASYNC = 020000
+FASYNC = O_ASYNC
+O_DIRECTORY = 040000
+O_NOTRAVERSE = 0100000
+O_NOFOLLOW = O_NOTRAVERSE
+F_DUPFD = 0
+F_GETFD = 1
+F_SETFD = 2
+F_GETFL = 3
+F_SETFL = 4
+F_GETLK = 5
+F_SETLK = 6
+F_SETLKW = 7
+F_SETOWN = 8
+F_GETOWN = 9
+F_SETSIG = 10
+F_GETSIG = 11
+F_COPYFD = 12
+FD_CLOEXEC = 1
+F_RDLCK = 0
+F_WRLCK = 1
+F_UNLCK = 2
+F_EXLCK = 4
+F_SHLCK = 8
+LOCK_SH = 1
+LOCK_EX = 2
+LOCK_NB = 4
+LOCK_UN = 8
+
+# Included from posix/uio.h
+UIO_FASTIOV = 8
+UIO_MAXIOV = 1024
+MNTF_READONLY = 0x0001
+FS_IS_READONLY = 0x00000001
+FS_IS_REMOVABLE = 0x00000002
+FS_IS_PERSISTENT = 0x00000004
+FS_IS_SHARED = 0x00000008
+FS_IS_BLOCKBASED = 0x00000010
+FS_CAN_MOUNT = 0x00000020
+FS_HAS_MIME = 0x00010000
+FS_HAS_ATTR = 0x00020000
+FS_HAS_QUERY = 0x00040000
+FSINFO_VERSION = 1
+WSTAT_MODE = 0x0001
+WSTAT_UID = 0x0002
+WSTAT_GID = 0x0004
+WSTAT_SIZE = 0x0008
+WSTAT_ATIME = 0x0010
+WSTAT_MTIME = 0x0020
+WSTAT_CTIME = 0x0040
+WFSSTAT_NAME = 0x0001
+FSDRIVER_API_VERSION = 1
+
+# Included from net/nettypes.h
+IP_ADR_LEN = 4
+INADDR_ANY = 0x00000000
+INADDR_BROADCAST = 0xffffffff
+INADDR_LOOPBACK = 0x7f000001
+def CMSG_ALIGN(len): return ( ((len)+sizeof(long)-1) & ~(sizeof(long)-1) )
+
+PROT_SOCK = 1024
+SHUTDOWN_MASK = 3
+RCV_SHUTDOWN = 1
+SEND_SHUTDOWN = 2
+SOCK_STREAM = 1
+SOCK_DGRAM = 2
+SOCK_RAW = 3
+SOCK_RDM = 4
+SOCK_SEQPACKET = 5
+SOCK_PACKET = 10
+PF_UNSPEC = 0
+PF_LOCAL = 1
+PF_UNIX = PF_LOCAL
+PF_FILE = PF_LOCAL
+PF_INET = 2
+PF_AX25 = 3
+PF_IPX = 4
+PF_APPLETALK = 5
+PF_NETROM = 6
+PF_BRIDGE = 7
+PF_ATMPVC = 8
+PF_X25 = 9
+PF_INET6 = 10
+PF_ROSE = 11
+PF_DECnet = 12
+PF_NETBEUI = 13
+PF_SECURITY = 14
+PF_KEY = 15
+PF_NETLINK = 16
+PF_ROUTE = PF_NETLINK
+PF_PACKET = 17
+PF_ASH = 18
+PF_ECONET = 19
+PF_ATMSVC = 20
+PF_SNA = 22
+PF_IRDA = 23
+PF_MAX = 32
+AF_UNSPEC = PF_UNSPEC
+AF_LOCAL = PF_LOCAL
+AF_UNIX = PF_UNIX
+AF_FILE = PF_FILE
+AF_INET = PF_INET
+AF_AX25 = PF_AX25
+AF_IPX = PF_IPX
+AF_APPLETALK = PF_APPLETALK
+AF_NETROM = PF_NETROM
+AF_BRIDGE = PF_BRIDGE
+AF_ATMPVC = PF_ATMPVC
+AF_X25 = PF_X25
+AF_INET6 = PF_INET6
+AF_ROSE = PF_ROSE
+AF_DECnet = PF_DECnet
+AF_NETBEUI = PF_NETBEUI
+AF_SECURITY = PF_SECURITY
+AF_KEY = PF_KEY
+AF_NETLINK = PF_NETLINK
+AF_ROUTE = PF_ROUTE
+AF_PACKET = PF_PACKET
+AF_ASH = PF_ASH
+AF_ECONET = PF_ECONET
+AF_ATMSVC = PF_ATMSVC
+AF_SNA = PF_SNA
+AF_IRDA = PF_IRDA
+AF_MAX = PF_MAX
+PF_UNIX = 1
+AF_UNIX = PF_UNIX
+PF_INET = 2
+AF_INET = PF_INET
+SOMAXCONN = 128
+MSG_OOB = 1
+MSG_PEEK = 2
+MSG_DONTROUTE = 4
+MSG_PROXY = 16
+SOL_SOCKET = 1
+SO_DEBUG = 1
+SO_REUSEADDR = 2
+SO_TYPE = 3
+SO_ERROR = 4
+SO_DONTROUTE = 5
+SO_BROADCAST = 6
+SO_SNDBUF = 7
+SO_RCVBUF = 8
+SO_KEEPALIVE = 9
+SO_OOBINLINE = 10
+SO_NO_CHECK = 11
+SO_PRIORITY = 12
+SO_LINGER = 13
+SO_BSDCOMPAT = 14
+SOL_IP = 0
+SOL_IPX = 256
+SOL_AX25 = 257
+SOL_ATALK = 258
+SOL_NETROM = 259
+SOL_TCP = 6
+SOL_UDP = 17
+IP_TOS = 1
+IPTOS_LOWDELAY = 0x10
+IPTOS_THROUGHPUT = 0x08
+IPTOS_RELIABILITY = 0x04
+IPTOS_MINCOST = 0x02
+IP_TTL = 2
+IP_HDRINCL = 3
+IP_OPTIONS = 4
+IP_MULTICAST_IF = 32
+IP_MULTICAST_TTL = 33
+IP_MULTICAST_LOOP = 34
+IP_ADD_MEMBERSHIP = 35
+IP_DROP_MEMBERSHIP = 36
+TCP_NODELAY = 0x01
+TCP_MAXSEG = 0x02
+def IN_CLASSA(a): return ((( (a)) & 0x80000000) == 0)
+
+IN_CLASSA_NET = 0xff000000
+IN_CLASSA_NSHIFT = 24
+IN_CLASSA_HOST = (0xffffffff & ~IN_CLASSA_NET)
+IN_CLASSA_MAX = 128
+def IN_CLASSB(a): return ((( (a)) & 0xc0000000) == 0x80000000)
+
+IN_CLASSB_NET = 0xffff0000
+IN_CLASSB_NSHIFT = 16
+IN_CLASSB_HOST = (0xffffffff & ~IN_CLASSB_NET)
+IN_CLASSB_MAX = 65536
+def IN_CLASSC(a): return ((( (a)) & 0xe0000000) == 0xc0000000)
+
+IN_CLASSC_NET = 0xffffff00
+IN_CLASSC_NSHIFT = 8
+IN_CLASSC_HOST = (0xffffffff & ~IN_CLASSC_NET)
+def IN_CLASSD(a): return ((( (a)) & 0xf0000000) == 0xe0000000)
+
+def IN_MULTICAST(a): return IN_CLASSD(a)
+
+def IN_EXPERIMENTAL(a): return ((( (a)) & 0xe0000000) == 0xe0000000)
+
+def IN_BADCLASS(a): return ((( (a)) & 0xf0000000) == 0xf0000000)
+
+INADDR_ANY = ( 0x00000000)
+INADDR_BROADCAST = ( 0xffffffff)
+INADDR_NONE = ( 0xffffffff)
+IN_LOOPBACKNET = 127
+INADDR_LOOPBACK = ( 0x7f000001)
+INADDR_UNSPEC_GROUP = ( 0xe0000000)
+INADDR_ALLHOSTS_GROUP = ( 0xe0000001)
+INADDR_ALLRTRS_GROUP = ( 0xe0000002)
+INADDR_MAX_LOCAL_GROUP = ( 0xe00000ff)
+INET_ADDRSTRLEN = 16
+INET6_ADDRSTRLEN = 46
+
+# Included from bits/in.h
+IP_TOS = 1
+IP_TTL = 2
+IP_HDRINCL = 3
+IP_OPTIONS = 4
+IP_ROUTER_ALERT = 5
+IP_RECVOPTS = 6
+IP_RETOPTS = 7
+IP_PKTINFO = 8
+IP_PKTOPTIONS = 9
+IP_PMTUDISC = 10
+IP_MTU_DISCOVER = 10
+IP_RECVERR = 11
+IP_RECVTTL = 12
+IP_RECVTOS = 13
+IP_MULTICAST_IF = 32
+IP_MULTICAST_TTL = 33
+IP_MULTICAST_LOOP = 34
+IP_ADD_MEMBERSHIP = 35
+IP_DROP_MEMBERSHIP = 36
+IP_RECVRETOPTS = IP_RETOPTS
+IP_PMTUDISC_DONT = 0
+IP_PMTUDISC_WANT = 1
+IP_PMTUDISC_DO = 2
+SOL_IP = 0
+SOL_SOCKET = 1
+IP_DEFAULT_MULTICAST_TTL = 1
+IP_DEFAULT_MULTICAST_LOOP = 1
+IP_MAX_MEMBERSHIPS = 20
+IPV6_ADDRFORM = 1
+IPV6_PKTINFO = 2
+IPV6_HOPOPTS = 3
+IPV6_DSTOPTS = 4
+IPV6_RXSRCRT = 5
+IPV6_PKTOPTIONS = 6
+IPV6_CHECKSUM = 7
+IPV6_HOPLIMIT = 8
+IPV6_NEXTHOP = 9
+IPV6_AUTHHDR = 10
+IPV6_UNICAST_HOPS = 16
+IPV6_MULTICAST_IF = 17
+IPV6_MULTICAST_HOPS = 18
+IPV6_MULTICAST_LOOP = 19
+IPV6_ADD_MEMBERSHIP = 20
+IPV6_DROP_MEMBERSHIP = 21
+IPV6_ROUTER_ALERT = 22
+SCM_SRCRT = IPV6_RXSRCRT
+IPV6_RXHOPOPTS = IPV6_HOPOPTS
+IPV6_RXDSTOPTS = IPV6_DSTOPTS
+IPV6_PMTUDISC_DONT = 0
+IPV6_PMTUDISC_WANT = 1
+IPV6_PMTUDISC_DO = 2
+SOL_IPV6 = 41
+SOL_ICMPV6 = 58
+
+# Included from bits/byteswap.h
+def __bswap_constant_16(x): return \
+
+def __bswap_16(x): return \
+
+def __bswap_16(x): return __bswap_constant_16 (x)
+
+def __bswap_constant_32(x): return \
+
+def __bswap_32(x): return \
+
+def __bswap_32(x): return \
+
+def __bswap_32(x): return __bswap_constant_32 (x)
+
+def __bswap_64(x): return \
+
+def ntohl(x): return (x)
+
+def ntohs(x): return (x)
+
+def htonl(x): return (x)
+
+def htons(x): return (x)
+
+def ntohl(x): return __bswap_32 (x)
+
+def ntohs(x): return __bswap_16 (x)
+
+def htonl(x): return __bswap_32 (x)
+
+def htons(x): return __bswap_16 (x)
+
+def IN6_IS_ADDR_UNSPECIFIED(a): return \
+
+def IN6_IS_ADDR_LOOPBACK(a): return \
+
+def IN6_IS_ADDR_LINKLOCAL(a): return \
+
+def IN6_IS_ADDR_SITELOCAL(a): return \
+
+def IN6_IS_ADDR_V4MAPPED(a): return \
+
+def IN6_IS_ADDR_V4COMPAT(a): return \
+
+def IN6_IS_ADDR_MC_NODELOCAL(a): return \
+
+def IN6_IS_ADDR_MC_LINKLOCAL(a): return \
+
+def IN6_IS_ADDR_MC_SITELOCAL(a): return \
+
+def IN6_IS_ADDR_MC_ORGLOCAL(a): return \
+
+def IN6_IS_ADDR_MC_GLOBAL(a): return \
+
diff --git a/Lib/plat-atheos/TYPES.py b/Lib/plat-atheos/TYPES.py
new file mode 100644
index 0000000..8166108
--- /dev/null
+++ b/Lib/plat-atheos/TYPES.py
@@ -0,0 +1,143 @@
+# Generated by h2py from /include/sys/types.h
+_SYS_TYPES_H = 1
+
+# Included from features.h
+_FEATURES_H = 1
+__USE_ANSI = 1
+__FAVOR_BSD = 1
+_ISOC9X_SOURCE = 1
+_POSIX_SOURCE = 1
+_POSIX_C_SOURCE = 199506L
+_XOPEN_SOURCE = 500
+_XOPEN_SOURCE_EXTENDED = 1
+_LARGEFILE64_SOURCE = 1
+_BSD_SOURCE = 1
+_SVID_SOURCE = 1
+_BSD_SOURCE = 1
+_SVID_SOURCE = 1
+__USE_ISOC9X = 1
+_POSIX_SOURCE = 1
+_POSIX_C_SOURCE = 2
+_POSIX_C_SOURCE = 199506L
+__USE_POSIX = 1
+__USE_POSIX2 = 1
+__USE_POSIX199309 = 1
+__USE_POSIX199506 = 1
+__USE_XOPEN = 1
+__USE_XOPEN_EXTENDED = 1
+__USE_UNIX98 = 1
+_LARGEFILE_SOURCE = 1
+__USE_XOPEN_EXTENDED = 1
+__USE_LARGEFILE = 1
+__USE_LARGEFILE64 = 1
+__USE_FILE_OFFSET64 = 1
+__USE_MISC = 1
+__USE_BSD = 1
+__USE_SVID = 1
+__USE_GNU = 1
+__USE_REENTRANT = 1
+__STDC_IEC_559__ = 1
+__STDC_IEC_559_COMPLEX__ = 1
+__GNU_LIBRARY__ = 6
+__GLIBC__ = 2
+__GLIBC_MINOR__ = 1
+
+# Included from sys/cdefs.h
+_SYS_CDEFS_H = 1
+def __PMT(args): return args
+
+def __P(args): return args
+
+def __PMT(args): return args
+
+def __P(args): return ()
+
+def __PMT(args): return ()
+
+def __STRING(x): return #x
+
+def __STRING(x): return "x"
+
+def __ASMNAME(cname): return __ASMNAME2 (__USER_LABEL_PREFIX__, cname)
+
+def __attribute__(xyz): return
+
+__USE_EXTERN_INLINES = 1
+
+# Included from gnu/stubs.h
+
+# Included from bits/types.h
+_BITS_TYPES_H = 1
+__FD_SETSIZE = 1024
+def __FDELT(d): return ((d) / __NFDBITS)
+
+
+# Included from bits/pthreadtypes.h
+
+# Included from time.h
+_TIME_H = 1
+
+# Included from bits/time.h
+
+# Included from posix/time.h
+
+# Included from posix/types.h
+MAXHOSTNAMELEN = 64
+FD_SETSIZE = 1024
+CLOCKS_PER_SEC = 1000000
+_BITS_TIME_H = 1
+CLOCKS_PER_SEC = 1000000
+CLK_TCK = 100
+_STRUCT_TIMEVAL = 1
+CLK_TCK = CLOCKS_PER_SEC
+__clock_t_defined = 1
+__time_t_defined = 1
+__timespec_defined = 1
+def __isleap(year): return \
+
+__BIT_TYPES_DEFINED__ = 1
+
+# Included from endian.h
+_ENDIAN_H = 1
+__LITTLE_ENDIAN = 1234
+__BIG_ENDIAN = 4321
+__PDP_ENDIAN = 3412
+
+# Included from bits/endian.h
+__BYTE_ORDER = __LITTLE_ENDIAN
+__FLOAT_WORD_ORDER = __BYTE_ORDER
+LITTLE_ENDIAN = __LITTLE_ENDIAN
+BIG_ENDIAN = __BIG_ENDIAN
+PDP_ENDIAN = __PDP_ENDIAN
+BYTE_ORDER = __BYTE_ORDER
+
+# Included from sys/select.h
+_SYS_SELECT_H = 1
+
+# Included from bits/select.h
+def __FD_ZERO(fdsp): return \
+
+def __FD_ZERO(set): return \
+
+
+# Included from bits/sigset.h
+_SIGSET_H_types = 1
+_SIGSET_H_fns = 1
+def __sigmask(sig): return \
+
+def __sigemptyset(set): return \
+
+def __sigfillset(set): return \
+
+def __sigisemptyset(set): return \
+
+FD_SETSIZE = __FD_SETSIZE
+def FD_ZERO(fdsetp): return __FD_ZERO (fdsetp)
+
+
+# Included from sys/sysmacros.h
+_SYS_SYSMACROS_H = 1
+def major(dev): return ( (( (dev) >> 8) & 0xff))
+
+def minor(dev): return ( ((dev) & 0xff))
+
diff --git a/Lib/plat-atheos/regen b/Lib/plat-atheos/regen
new file mode 100644
index 0000000..7c002c3
--- /dev/null
+++ b/Lib/plat-atheos/regen
@@ -0,0 +1,3 @@
+#! /bin/sh
+set -v
+python$EXE ../../Tools/scripts/h2py.py -i '\(u_long\)' -i '\(uint32_t\)' -i '\(int\)' -i '\(unsigned int\)' /include/netinet/in.h /include/sys/types.h
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index ec72557..77ae9c5 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -721,6 +721,34 @@ _expectations = {
test_zipfile
test_zlib
""",
+ 'atheos':
+ """
+ test_al
+ test_cd
+ test_cl
+ test_curses
+ test_dl
+ test_email_codecs
+ test_gdbm
+ test_gl
+ test_imgfile
+ test_largefile
+ test_linuxaudiodev
+ test_locale
+ test_mhlib
+ test_mmap
+ test_mpz
+ test_nis
+ test_poll
+ test_popen2
+ test_resource
+ test_socket_ssl
+ test_socketserver
+ test_sunaudiodev
+ test_unicode_file
+ test_winreg
+ test_winsound
+ """,
}
class _ExpectedSkips:
diff --git a/Lib/test/test_fcntl.py b/Lib/test/test_fcntl.py
index c4e47ad..cc4f213 100755
--- a/Lib/test/test_fcntl.py
+++ b/Lib/test/test_fcntl.py
@@ -17,6 +17,9 @@ except AttributeError:
else:
start_len = "qq"
+if sys.platform.startswith('atheos'):
+ start_len = "qq"
+
if sys.platform in ('netbsd1', 'Darwin1.2', 'darwin',
'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5',
'bsdos2', 'bsdos3', 'bsdos4',
diff --git a/Lib/test/test_file.py b/Lib/test/test_file.py
index 71222c1..261db2c 100644
--- a/Lib/test/test_file.py
+++ b/Lib/test/test_file.py
@@ -1,3 +1,4 @@
+import sys
import os
from array import array
@@ -88,7 +89,11 @@ f.close()
if not f.closed:
raise TestFailed, 'file.closed should be true'
-for methodname in ['fileno', 'flush', 'isatty', 'read', 'readinto', 'readline', 'readlines', 'seek', 'tell', 'truncate', 'write', 'xreadlines' ]:
+methods = ['fileno', 'flush', 'isatty', 'read', 'readinto', 'readline', 'readlines', 'seek', 'tell', 'truncate', 'write', 'xreadlines' ]
+if sys.platform.startswith('atheos'):
+ methods.remove('truncate')
+
+for methodname in methods:
method = getattr(f, methodname)
try:
method()
diff --git a/Lib/test/test_mhlib.py b/Lib/test/test_mhlib.py
index 91c1a1a..ef5877d 100644
--- a/Lib/test/test_mhlib.py
+++ b/Lib/test/test_mhlib.py
@@ -12,7 +12,7 @@ import os, StringIO
import sys
import mhlib
-if sys.platform.startswith("win") or sys.platform=="riscos":
+if sys.platform.startswith("win") or sys.platform=="riscos" or sys.platform.startswith("atheos"):
raise TestSkipped("test_mhlib skipped on %s -- "%sys.platform +
"too many Unix assumptions")
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index 12c016b..735d4cb 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -139,7 +139,13 @@ class StatAttributeTests(unittest.TestCase):
return
import statvfs
- result = os.statvfs(self.fname)
+ try:
+ result = os.statvfs(self.fname)
+ except OSError, e:
+ # On AtheOS, glibc always returns ENOSYS
+ import errno
+ if e.errno == errno.ENOSYS:
+ return
# Make sure direct access works
self.assertEquals(result.f_bfree, result[statvfs.F_BFREE])
diff --git a/Lib/test/test_popen2.py b/Lib/test/test_popen2.py
index 799df4a..c67dd71 100644
--- a/Lib/test/test_popen2.py
+++ b/Lib/test/test_popen2.py
@@ -14,11 +14,12 @@ from test_support import TestSkipped
def main():
print "Test popen2 module:"
- if sys.platform[:4] == 'beos' and __name__ != '__main__':
+ if (sys.platform[:4] == 'beos' or sys.platform[:6] == 'atheos') \
+ and __name__ != '__main__':
# Locks get messed up or something. Generally we're supposed
# to avoid mixing "posix" fork & exec with native threads, and
# they may be right about that after all.
- raise TestSkipped, "popen2() doesn't work during import on BeOS"
+ raise TestSkipped, "popen2() doesn't work during import on " + sys.platform
try:
from os import popen
except ImportError: