diff options
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/distutils/command/build_ext.py | 20 | ||||
-rw-r--r-- | Lib/plat-atheos/IN.py | 945 | ||||
-rw-r--r-- | Lib/plat-atheos/TYPES.py | 143 | ||||
-rw-r--r-- | Lib/plat-atheos/regen | 3 | ||||
-rwxr-xr-x | Lib/test/regrtest.py | 28 | ||||
-rwxr-xr-x | Lib/test/test_fcntl.py | 3 | ||||
-rw-r--r-- | Lib/test/test_file.py | 7 | ||||
-rw-r--r-- | Lib/test/test_mhlib.py | 2 | ||||
-rw-r--r-- | Lib/test/test_os.py | 8 | ||||
-rw-r--r-- | Lib/test/test_popen2.py | 5 |
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: |