diff options
Diffstat (limited to 'ports/sysdeps/unix/sysv')
42 files changed, 0 insertions, 1035 deletions
diff --git a/ports/sysdeps/unix/sysv/linux/am33/Makefile b/ports/sysdeps/unix/sysv/linux/am33/Makefile deleted file mode 100644 index ece39e8a4c..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -ifeq ($(subdir),misc) -sysdep_routines += setfsgid setfsuid -endif diff --git a/ports/sysdeps/unix/sysv/linux/am33/bits/fcntl.h b/ports/sysdeps/unix/sysv/linux/am33/bits/fcntl.h deleted file mode 100644 index 37ccaddc2d..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/bits/fcntl.h +++ /dev/null @@ -1,180 +0,0 @@ -/* O_*, F_*, FD_* bit values for Linux. - Copyright (C) 1995-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef _FCNTL_H -# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead." -#endif - - -#include <sys/types.h> - -/* open/fcntl - O_SYNC is only implemented on blocks devices and on files - located on an ext2 file system */ -#define O_ACCMODE 0003 -#define O_RDONLY 00 -#define O_WRONLY 01 -#define O_RDWR 02 -#define O_CREAT 0100 /* not fcntl */ -#define O_EXCL 0200 /* not fcntl */ -#define O_NOCTTY 0400 /* not fcntl */ -#define O_TRUNC 01000 /* not fcntl */ -#define O_APPEND 02000 -#define O_NONBLOCK 04000 -#define O_NDELAY O_NONBLOCK -#define O_SYNC 010000 -#define O_FSYNC O_SYNC -#define O_ASYNC 020000 - -#ifdef __USE_GNU -# define O_DIRECT 040000 /* Direct disk access. */ -# define O_DIRECTORY 0200000 /* Must be a directory. */ -# define O_NOFOLLOW 0400000 /* Do not follow links. */ -#endif - -/* For now Linux has synchronisity options for data and read operations. - We define the symbols here but let them do the same as O_SYNC since - this is a superset. */ -#if defined __USE_POSIX199309 || defined __USE_UNIX98 -# define O_DSYNC O_SYNC /* Synchronize data. */ -# define O_RSYNC O_SYNC /* Synchronize read operations. */ -#endif - -#ifdef __USE_LARGEFILE64 -# define O_LARGEFILE 0100000 -#endif - -/* Values for the second argument to `fcntl'. */ -#define F_DUPFD 0 /* Duplicate file descriptor. */ -#define F_GETFD 1 /* Get file descriptor flags. */ -#define F_SETFD 2 /* Set file descriptor flags. */ -#define F_GETFL 3 /* Get file status flags. */ -#define F_SETFL 4 /* Set file status flags. */ -#ifndef __USE_FILE_OFFSET64 -# define F_GETLK 5 /* Get record locking info. */ -# define F_SETLK 6 /* Set record locking info (non-blocking). */ -# define F_SETLKW 7 /* Set record locking info (blocking). */ -#else -# define F_GETLK F_GETLK64 /* Get record locking info. */ -# define F_SETLK F_SETLK64 /* Set record locking info (non-blocking).*/ -# define F_SETLKW F_SETLKW64 /* Set record locking info (blocking). */ -#endif -#define F_GETLK64 12 /* Get record locking info. */ -#define F_SETLK64 13 /* Set record locking info (non-blocking). */ -#define F_SETLKW64 14 /* Set record locking info (blocking). */ - -#if defined __USE_BSD || defined __USE_XOPEN2K -# define F_SETOWN 8 /* Get owner of socket (receiver of SIGIO). */ -# define F_GETOWN 9 /* Set owner of socket (receiver of SIGIO). */ -#endif - -#ifdef __USE_GNU -# define F_SETSIG 10 /* Set number of signal to be sent. */ -# define F_GETSIG 11 /* Get number of signal to be sent. */ -#endif - -#ifdef __USE_GNU -# define F_SETLEASE 1024 /* Set a lease. */ -# define F_GETLEASE 1025 /* Enquire what lease is active. */ -# define F_NOTIFY 1026 /* Request notfications on a directory. */ -# define F_DUPFD_CLOEXEC 1030 /* Duplicate file descriptor with - close-on-exit set. */ -#endif - -/* For F_[GET|SET]FD. */ -#define FD_CLOEXEC 1 /* actually anything with low bit set goes */ - -/* For posix fcntl() and `l_type' field of a `struct flock' for lockf(). */ -#define F_RDLCK 0 /* Read lock. */ -#define F_WRLCK 1 /* Write lock. */ -#define F_UNLCK 2 /* Remove lock. */ - -/* For old implementation of bsd flock(). */ -#define F_EXLCK 4 /* or 3 */ -#define F_SHLCK 8 /* or 4 */ - -#ifdef __USE_BSD -/* Operations for bsd flock(), also used by the kernel implementation. */ -# define LOCK_SH 1 /* shared lock */ -# define LOCK_EX 2 /* exclusive lock */ -# define LOCK_NB 4 /* or'd with one of the above to prevent - blocking */ -# define LOCK_UN 8 /* remove lock */ -#endif - -#ifdef __USE_GNU -# define LOCK_MAND 32 /* This is a mandatory flock: */ -# define LOCK_READ 64 /* ... which allows concurrent read operations. */ -# define LOCK_WRITE 128 /* ... which allows concurrent write operations. */ -# define LOCK_RW 192 /* ... Which allows concurrent read & write operations. */ -#endif - -#ifdef __USE_GNU -/* Types of directory notifications that may be requested with F_NOTIFY. */ -# define DN_ACCESS 0x00000001 /* File accessed. */ -# define DN_MODIFY 0x00000002 /* File modified. */ -# define DN_CREATE 0x00000004 /* File created. */ -# define DN_DELETE 0x00000008 /* File removed. */ -# define DN_RENAME 0x00000010 /* File renamed. */ -# define DN_ATTRIB 0x00000020 /* File changed attributes. */ -# define DN_MULTISHOT 0x80000000 /* Don't remove notifier. */ -#endif - -struct flock - { - short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */ - short int l_whence; /* Where `l_start' is relative to (like `lseek'). */ -#ifndef __USE_FILE_OFFSET64 - __off_t l_start; /* Offset where the lock begins. */ - __off_t l_len; /* Size of the locked area; zero means until EOF. */ -#else - __off64_t l_start; /* Offset where the lock begins. */ - __off64_t l_len; /* Size of the locked area; zero means until EOF. */ -#endif - __pid_t l_pid; /* Process holding the lock. */ - }; - -#ifdef __USE_LARGEFILE64 -struct flock64 - { - short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */ - short int l_whence; /* Where `l_start' is relative to (like `lseek'). */ - __off64_t l_start; /* Offset where the lock begins. */ - __off64_t l_len; /* Size of the locked area; zero means until EOF. */ - __pid_t l_pid; /* Process holding the lock. */ - }; -#endif - -/* Define some more compatibility macros to be backward compatible with - BSD systems which did not managed to hide these kernel macros. */ -#ifdef __USE_BSD -# define FAPPEND O_APPEND -# define FFSYNC O_FSYNC -# define FASYNC O_ASYNC -# define FNONBLOCK O_NONBLOCK -# define FNDELAY O_NDELAY -#endif /* Use BSD. */ - -/* Advise to `posix_fadvise'. */ -#ifdef __USE_XOPEN2K -# define POSIX_FADV_NORMAL 0 /* No further special treatment. */ -# define POSIX_FADV_RANDOM 1 /* Expect random page references. */ -# define POSIX_FADV_SEQUENTIAL 2 /* Expect sequential page references. */ -# define POSIX_FADV_WILLNEED 3 /* Will need these pages. */ -# define POSIX_FADV_DONTNEED 4 /* Don't need these pages. */ -# define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */ -#endif diff --git a/ports/sysdeps/unix/sysv/linux/am33/bits/mman.h b/ports/sysdeps/unix/sysv/linux/am33/bits/mman.h deleted file mode 100644 index 697fea7919..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/bits/mman.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Definitions for POSIX memory map interface. Linux/AM33 version. - Copyright (C) 1997-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef _SYS_MMAN_H -# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead." -#endif - -/* The following definitions basically come from the kernel headers. - But the kernel header is not namespace clean. */ - - -/* These are Linux-specific. */ -#ifdef __USE_MISC -# define MAP_GROWSDOWN 0x0100 /* Stack-like segment. */ -# define MAP_DENYWRITE 0x0800 /* ETXTBSY */ -# define MAP_EXECUTABLE 0x1000 /* Mark it as an executable. */ -# define MAP_LOCKED 0x2000 /* Lock the mapping. */ -# define MAP_NORESERVE 0x4000 /* Don't check for reservations. */ -#endif - -/* Include generic Linux declarations. */ -#include <bits/mman-linux.h> diff --git a/ports/sysdeps/unix/sysv/linux/am33/brk.c b/ports/sysdeps/unix/sysv/linux/am33/brk.c deleted file mode 100644 index f913fc6f88..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/brk.c +++ /dev/null @@ -1,45 +0,0 @@ -/* brk system call for Linux/am33. - Copyright (C) 1995-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com>. - Based on ../i386/brk.c. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <errno.h> -#include <unistd.h> -#include <sysdep.h> - -/* This must be initialized data because commons can't have aliases. */ -void *__curbrk = 0; - -int -__brk (void *addr) -{ - void *newbrk; - - newbrk = INLINE_SYSCALL (brk, 1, addr); - - __curbrk = newbrk; - - if (newbrk < addr) - { - __set_errno (ENOMEM); - return -1; - } - - return 0; -} -weak_alias (__brk, brk) diff --git a/ports/sysdeps/unix/sysv/linux/am33/chown.c b/ports/sysdeps/unix/sysv/linux/am33/chown.c deleted file mode 100644 index 819923eb49..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/chown.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/chown.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/clone.S b/ports/sysdeps/unix/sysv/linux/am33/clone.S deleted file mode 100644 index 81eeac05d6..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/clone.S +++ /dev/null @@ -1,79 +0,0 @@ -/* Copyright 2001-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com>. - Based on ../i386/clone.S. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -/* clone() is even more special than fork() as it mucks with stacks - and invokes a function in the right context after its all over. */ - -#include <sysdep.h> -#define _ERRNO_H 1 -#include <bits/errno.h> -#include <asm-syntax.h> - -/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg); */ - - .text -ENTRY (__clone) - /* Sanity check arguments. */ - cmp 0,d0 /* no NULL function pointers */ - beq L(error_inval) - cmp 0,d1 /* no NULL stack pointers */ - beq L(error_inval) - - /* Allocate room for a function call in the new stack, and - store fn and arg in it. They will be read back in - thread_start. */ - mov d1,a0 - sub 12,a0 - mov d0,(a0) - mov (16,sp),d1 - mov d1,(4,a0) - - /* Do the system call */ - mov a0,d1 - mov (12,sp),a0 - mov SYS_ify(clone),d0 - syscall 0 - - cmp 0,d0 - beq thread_start - blt L(to_SYSCALL_ERROR_LABEL) - -L(pseudo_end): - ret - -L(error_inval): - mov -EINVAL,d0 -L(to_SYSCALL_ERROR_LABEL): - jmp SYSCALL_ERROR_LABEL - -thread_start: - mov 0,a3 /* terminate the stack frame */ - mov (4,sp),d0 - mov (sp),a0 - calls (a0) -#ifdef PIC -L(here): - mov pc,a2 - add _GLOBAL_OFFSET_TABLE_-(L(here) - .),a2 -#endif - call JUMPTARGET (_exit),[],0 - -PSEUDO_END (__clone) - -weak_alias (__clone, clone) diff --git a/ports/sysdeps/unix/sysv/linux/am33/configure b/ports/sysdeps/unix/sysv/linux/am33/configure deleted file mode 100644 index c916a321ca..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/configure +++ /dev/null @@ -1,4 +0,0 @@ -# This file is generated from configure.ac by Autoconf. DO NOT EDIT! - # Local configure fragment for am33/sysdeps/unix/sysv/linux/am33 - -arch_minimum_kernel=2.6.25 diff --git a/ports/sysdeps/unix/sysv/linux/am33/configure.ac b/ports/sysdeps/unix/sysv/linux/am33/configure.ac deleted file mode 100644 index 43e33f74ca..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/configure.ac +++ /dev/null @@ -1,4 +0,0 @@ -GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. -# Local configure fragment for am33/sysdeps/unix/sysv/linux/am33 - -arch_minimum_kernel=2.6.25 diff --git a/ports/sysdeps/unix/sysv/linux/am33/fchown.c b/ports/sysdeps/unix/sysv/linux/am33/fchown.c deleted file mode 100644 index 3a69ecc9e7..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/fchown.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/fchown.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/fcntl.c b/ports/sysdeps/unix/sysv/linux/am33/fcntl.c deleted file mode 100644 index ea951bc4f9..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/fcntl.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/fcntl.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/fxstat.c b/ports/sysdeps/unix/sysv/linux/am33/fxstat.c deleted file mode 100644 index 4f219f0b9d..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/fxstat.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/fxstat.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/getegid.c b/ports/sysdeps/unix/sysv/linux/am33/getegid.c deleted file mode 100644 index 37b4b4a530..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/getegid.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/getegid.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/geteuid.c b/ports/sysdeps/unix/sysv/linux/am33/geteuid.c deleted file mode 100644 index ebcb555b5e..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/geteuid.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/geteuid.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/getgid.c b/ports/sysdeps/unix/sysv/linux/am33/getgid.c deleted file mode 100644 index 0a4d6061f0..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/getgid.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/getgid.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/getgroups.c b/ports/sysdeps/unix/sysv/linux/am33/getgroups.c deleted file mode 100644 index 20a7166103..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/getgroups.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/getgroups.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/getmsg.c b/ports/sysdeps/unix/sysv/linux/am33/getmsg.c deleted file mode 100644 index 3a1fa08525..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/getmsg.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/getmsg.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/getresgid.c b/ports/sysdeps/unix/sysv/linux/am33/getresgid.c deleted file mode 100644 index b703a414cc..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/getresgid.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/getresgid.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/getresuid.c b/ports/sysdeps/unix/sysv/linux/am33/getresuid.c deleted file mode 100644 index 0b14cefe34..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/getresuid.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/getresuid.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/getuid.c b/ports/sysdeps/unix/sysv/linux/am33/getuid.c deleted file mode 100644 index d682c79a49..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/getuid.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/getuid.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/lchown.c b/ports/sysdeps/unix/sysv/linux/am33/lchown.c deleted file mode 100644 index c89de99ba2..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/lchown.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/lchown.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/linuxthreads/sysdep-cancel.h b/ports/sysdeps/unix/sysv/linux/am33/linuxthreads/sysdep-cancel.h deleted file mode 100644 index 60b4fe03fc..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/linuxthreads/sysdep-cancel.h +++ /dev/null @@ -1,158 +0,0 @@ -/* Copyright (C) 2002-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com> - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <sysdep.h> -#include <tls.h> -#include <pt-machine.h> -#ifndef __ASSEMBLER__ -# include <linuxthreads/internals.h> -#endif - -#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt - -# undef PSEUDO -# define PSEUDO(name, syscall_name, args) \ - .text ; \ - ENTRY (name) \ - PUSHARGS_##args \ - DOARGS_##args \ - SINGLE_THREAD_P; \ - bne L(pseudo_cancel); \ - mov SYS_ify (syscall_name),d0; \ - syscall 0 \ - POPARGS_##args ; \ - cmp -126,d0; \ - bls L(pseudo_end); \ - jmp SYSCALL_ERROR_LABEL; \ - L(pseudo_cancel): \ - add -(16+STACK_SPACE (args)),sp; \ - SAVE_ARGS_##args \ - CENABLE \ - mov d0,r0; \ - LOAD_ARGS_##args \ - mov SYS_ify (syscall_name),d0; \ - syscall 0; \ - mov d0,(12,sp); \ - mov r0,d0; \ - CDISABLE \ - mov (12,sp),d0; \ - add +16+STACK_SPACE (args),sp \ - POPARGS_##args ; \ - cmp -126,d0; \ - bls L(pseudo_end); \ - jmp SYSCALL_ERROR_LABEL; \ - L(pseudo_end): \ - mov d0,a0 - -/* Reserve up to 2 stack slots for a0 and d1, but fewer than that if - we don't have that many arguments. */ -# define STACK_SPACE(n) (((((n) < 3) * (2 - (n))) + 2) * 4) - -# define SAVE_ARGS_0 -# define SAVE_ARGS_1 mov a0,(20,sp) ; -# define SAVE_ARGS_2 SAVE_ARGS_1 mov d1,(24,sp) ; -# define SAVE_ARGS_3 SAVE_ARGS_2 -# define SAVE_ARGS_4 SAVE_ARGS_3 -# define SAVE_ARGS_5 SAVE_ARGS_4 -# define SAVE_ARGS_6 SAVE_ARGS_5 - -# define LOAD_ARGS_0 -# define LOAD_ARGS_1 mov (20,sp),a0 ; -# define LOAD_ARGS_2 LOAD_ARGS_1 mov (24,sp),d1 ; -# define LOAD_ARGS_3 LOAD_ARGS_2 -# define LOAD_ARGS_4 LOAD_ARGS_3 -# define LOAD_ARGS_5 LOAD_ARGS_4 -# define LOAD_ARGS_6 LOAD_ARGS_5 - -# ifdef IS_IN_libpthread -# define CENABLE call __pthread_enable_asynccancel,[],0; -# define CDISABLE call __pthread_disable_asynccancel,[],0; -# elif defined IS_IN_librt -# ifdef PIC -# define CENABLE movm [a2],(sp); \ - 1: mov pc,a2; \ - add _GLOBAL_OFFSET_TABLE_-(1b-.),a2; \ - call +__librt_enable_asynccancel@PLT,[],0; \ - movm (sp),[a2]; -# define CENABLE movm [a2],(sp); \ - 1: mov pc,a2; \ - add _GLOBAL_OFFSET_TABLE_-(1b-.),a2; \ - call +__librt_disable_asynccancel@PLT,[],0; \ - movm (sp),[a2]; -# else -# define CENABLE call +__librt_enable_asynccancel,[],0; -# define CDISABLE call +__librt_disable_asynccancel,[],0; -# endif -# else -# define CENABLE call +__libc_enable_asynccancel,[],0; -# define CDISABLE call +__libc_disable_asynccancel,[],0; -# endif - -#if !defined NOT_IN_libc -# define __local_multiple_threads __libc_multiple_threads -#elif defined IS_IN_libpthread -# define __local_multiple_threads __pthread_multiple_threads -#else -# define __local_multiple_threads __librt_multiple_threads -#endif - -# ifndef __ASSEMBLER__ -# if defined FLOATING_STACKS && USE___THREAD && defined PIC -# define SINGLE_THREAD_P \ - __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ - p_header.data.multiple_threads) == 0, 1) -# else -extern int __local_multiple_threads -# if !defined NOT_IN_libc || defined IS_IN_libpthread - attribute_hidden; -# else - ; -# endif -# define SINGLE_THREAD_P __builtin_expect (__local_multiple_threads == 0, 1) -# endif -# else -# if !defined PIC -# define SINGLE_THREAD_P \ - mov (+__local_multiple_threads),d0; \ - cmp 0,d0 -# elif !defined NOT_IN_libc || defined IS_IN_libpthread -# define SINGLE_THREAD_P \ - movm [a2],(sp); \ - 1: mov pc,a2; \ - add _GLOBAL_OFFSET_TABLE_-(1b-.),a2; \ - mov (+__local_multiple_threads@GOTOFF,a2),d0; \ - movm (sp),[a2]; \ - cmp 0,d0 -# else -# define SINGLE_THREAD_P \ - movm [a2],(sp); \ - 1: mov pc,a2; \ - add _GLOBAL_OFFSET_TABLE_-(1b-.),a2; \ - mov (+__local_multiple_threads@GOT,a2),a2; \ - mov (a2),d0; \ - movm (sp),[a2]; \ - cmp 0,d0 -# endif -# endif - -#elif !defined __ASSEMBLER__ - -/* This code should never be used but we define it anyhow. */ -# define SINGLE_THREAD_P (1) - -#endif diff --git a/ports/sysdeps/unix/sysv/linux/am33/lockf64.c b/ports/sysdeps/unix/sysv/linux/am33/lockf64.c deleted file mode 100644 index a88f5a784a..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/lockf64.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/lockf64.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/lxstat.c b/ports/sysdeps/unix/sysv/linux/am33/lxstat.c deleted file mode 100644 index 0efa0aea49..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/lxstat.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/lxstat.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/profil-counter.h b/ports/sysdeps/unix/sysv/linux/am33/profil-counter.h deleted file mode 100644 index 888b5c3037..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/profil-counter.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Low-level statistical profiling support function. Linux/am33 version. - Copyright (C) 1996-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <signal.h> -#include <sigcontextinfo.h> - -static void -profil_counter (int signo, SIGCONTEXT scp) -{ - profil_count ((void *) GET_PC (scp)); -} diff --git a/ports/sysdeps/unix/sysv/linux/am33/putmsg.c b/ports/sysdeps/unix/sysv/linux/am33/putmsg.c deleted file mode 100644 index ebc1680ca7..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/putmsg.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/putmsg.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/setegid.c b/ports/sysdeps/unix/sysv/linux/am33/setegid.c deleted file mode 100644 index 2e3a54c893..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/setegid.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/setegid.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/seteuid.c b/ports/sysdeps/unix/sysv/linux/am33/seteuid.c deleted file mode 100644 index 18e41d08c1..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/seteuid.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/seteuid.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/setfsgid.c b/ports/sysdeps/unix/sysv/linux/am33/setfsgid.c deleted file mode 100644 index 0886712569..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/setfsgid.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/setfsgid.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/setfsuid.c b/ports/sysdeps/unix/sysv/linux/am33/setfsuid.c deleted file mode 100644 index a9f22eb8ab..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/setfsuid.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/setfsuid.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/setgid.c b/ports/sysdeps/unix/sysv/linux/am33/setgid.c deleted file mode 100644 index 377021d9ec..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/setgid.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/setgid.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/setgroups.c b/ports/sysdeps/unix/sysv/linux/am33/setgroups.c deleted file mode 100644 index cb9a7708e3..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/setgroups.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/setgroups.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/setregid.c b/ports/sysdeps/unix/sysv/linux/am33/setregid.c deleted file mode 100644 index 99c57ad20f..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/setregid.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/setregid.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/setresgid.c b/ports/sysdeps/unix/sysv/linux/am33/setresgid.c deleted file mode 100644 index daca1a4833..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/setresgid.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/setresgid.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/setresuid.c b/ports/sysdeps/unix/sysv/linux/am33/setresuid.c deleted file mode 100644 index 3aeabe9ad7..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/setresuid.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/setresuid.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/setreuid.c b/ports/sysdeps/unix/sysv/linux/am33/setreuid.c deleted file mode 100644 index 8ad61226e9..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/setreuid.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/setreuid.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/setrlimit.c b/ports/sysdeps/unix/sysv/linux/am33/setrlimit.c deleted file mode 100644 index bfaef74c38..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/setrlimit.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/setrlimit.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/setuid.c b/ports/sysdeps/unix/sysv/linux/am33/setuid.c deleted file mode 100644 index de394379be..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/setuid.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/setuid.c> diff --git a/ports/sysdeps/unix/sysv/linux/am33/socket.S b/ports/sysdeps/unix/sysv/linux/am33/socket.S deleted file mode 100644 index a6839123a1..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/socket.S +++ /dev/null @@ -1,72 +0,0 @@ -/* Copyright 2001-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com>. - Based on ../i386/socket.S. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <sysdep.h> -#include <socketcall.h> - -#define P(a, b) P2(a, b) -#define P2(a, b) a##b - - .text -/* The socket-oriented system calls are handled unusally in Linux. - They are all gated through the single `socketcall' system call number. - `socketcall' takes two arguments: the first is the subcode, specifying - which socket function is being called; and the second is a pointer to - the arguments to the specific function. - - The .S files for the other calls just #define socket and #include this. */ - -#ifndef __socket -#ifndef NO_WEAK_ALIAS -#define __socket P(__,socket) -#else -#define __socket socket -#endif -#endif - -.globl __socket -ENTRY (__socket) - - mov d0,(4,sp) - mov d1,(8,sp) - - mov SYS_ify(socketcall),d0 /* System call number in d0. */ - - /* Use ## so `socket' is a separate token that might be #define'd. */ - mov P(SOCKOP_,socket),a0 /* Subcode is first arg to syscall. */ - mov sp,d1 - add 4,d1 /* Address of args is 2nd arg. */ - - /* Do the system call trap. */ - syscall 0 - - /* d0 is < 0 if there was an error. */ - cmp -126,d0 - bls L(pseudo_end) - jmp SYSCALL_ERROR_LABEL - - /* Successful; return the syscall's value. */ -L(pseudo_end): - ret - -PSEUDO_END (__socket) - -#ifndef NO_WEAK_ALIAS -weak_alias (__socket, socket) -#endif diff --git a/ports/sysdeps/unix/sysv/linux/am33/syscall.S b/ports/sysdeps/unix/sysv/linux/am33/syscall.S deleted file mode 100644 index 6ab91b0fc2..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/syscall.S +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright (C) 1995-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com>. - Based on ../i386/syscall.S. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <sysdep.h> - -/* Please consult the file sysdeps/unix/sysv/linux/am33/sysdep.h for - more information about the value -126 used below.*/ - - .text -ENTRY (syscall) - movm [d2,d3,a2,a3],(sp) /* Save register contents. */ - mov d1,a0 - mov (28,sp),d1 - mov (32,sp),a3 - mov (36,sp),a2 - mov (40,sp),d3 - mov (44,sp),d2 - syscall 0 /* Do the system call. */ - movm (sp),[d2,d3,a2,a3] /* Restore register contents. */ - cmp -126,d0 /* Check for error. */ - bls L(pseudo_end) - jmp SYSCALL_ERROR_LABEL /* Jump to error handler if error. */ -L(pseudo_end): - ret /* Return to caller. */ - -PSEUDO_END (syscall) diff --git a/ports/sysdeps/unix/sysv/linux/am33/sysdep.S b/ports/sysdeps/unix/sysv/linux/am33/sysdep.S deleted file mode 100644 index 81ad03f700..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/sysdep.S +++ /dev/null @@ -1,40 +0,0 @@ -/* Copyright (C) 1995-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com>. - Based on ../i386/sysdep.S. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <sysdep.h> - -/* The following code is only used in the shared library when we - compile the reentrant version. Otherwise each system call defines - each own version. */ - -#ifndef PIC - -#undef CALL_MCOUNT -#define CALL_MCOUNT /* Don't insert the profiling call, it clobbers %eax. */ - - .text -ENTRY (__syscall_error) - mov d0,d1 - clr d0 - sub d1,d0 - -#define __syscall_error __syscall_error_1 -#include <../../../am33/sysdep.S> - -#endif /* !PIC */ diff --git a/ports/sysdeps/unix/sysv/linux/am33/sysdep.h b/ports/sysdeps/unix/sysv/linux/am33/sysdep.h deleted file mode 100644 index 63fe716594..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/sysdep.h +++ /dev/null @@ -1,316 +0,0 @@ -/* Copyright 2001-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com>. - Based on ../i386/sysdep.h. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef _LINUX_AM33_SYSDEP_H -#define _LINUX_AM33_SYSDEP_H 1 - -/* There is some commonality. */ -#include "../../../am33/sysdep.h" - -/* For Linux we can use the system call table in the header file - /usr/include/asm/unistd.h - of the kernel. But these symbols do not follow the SYS_* syntax - so we have to redefine the `SYS_ify' macro here. */ -#undef SYS_ify -#define SYS_ify(syscall_name) __NR_##syscall_name - -/* ELF-like local names start with `.L'. */ -#undef L -#define L(name) .L##name - -#ifdef __ASSEMBLER__ - -/* Linux uses a negative return value to indicate syscall errors, - unlike most Unices, which use the condition codes' carry flag. - - Since version 2.1 the return value of a system call might be - negative even if the call succeeded. E.g., the `lseek' system call - might return a large offset. Therefore we must not anymore test - for < 0, but test for a real error by making sure the value in %eax - is a real error number. Linus said he will make sure the no syscall - returns a value in -1 .. -4095 as a valid result so we can savely - test with -4095. */ - -/* We don't want the label for the error handle to be global when we define - it here. */ -#ifdef PIC -# define SYSCALL_ERROR_LABEL 0f -#else -# define SYSCALL_ERROR_LABEL syscall_error -#endif - -#undef PSEUDO -#define PSEUDO(name, syscall_name, args) \ - .text; \ - ENTRY (name) \ - DO_CALL (syscall_name, args); \ - cmp -126,d0; \ - bls L(pseudo_end); \ - jmp SYSCALL_ERROR_LABEL; \ - L(pseudo_end): \ - mov d0,a0; - -#undef PSEUDO_END -#define PSEUDO_END(name) \ - SYSCALL_ERROR_HANDLER \ - END (name) - -#undef PSEUDO_NOERROR -#define PSEUDO_NOERRNO(name, syscall_name, args) \ - .text; \ - ENTRY (name) \ - DO_CALL (syscall_name, args) - -#undef PSEUDO_END_NOERRNO -#define PSEUDO_END_NOERRNO(name) \ - END (name) - -#define ret_NOERRNO ret - -/* The function has to return the error code. */ -#undef PSEUDO_ERRVAL -#define PSEUDO_ERRVAL(name, syscall_name, args) \ - .text; \ - ENTRY (name) \ - DO_CALL (syscall_name, args); \ - clr d1; \ - sub d0,d1,d0 - -#undef PSEUDO_END_ERRVAL -#define PSEUDO_END_ERRVAL(name) \ - END (name) - -#define ret_ERRVAL ret - -#ifndef PIC -#define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */ -#else -/* Store (- d0) into errno through the GOT. */ -#ifdef _LIBC_REENTRANT -#define SYSCALL_ERROR_HANDLER \ -0:movm [d2,a2],(sp); \ - add -12,sp; \ -1:mov pc,a2; \ - add _GLOBAL_OFFSET_TABLE_-(1b-.),a2; \ - clr d2; \ - sub d0,d2; \ - call __errno_location@PLT,[],0; \ - mov d2,(a0); \ - add 12,sp; \ - movm (sp),[d2,a2]; \ - mov -1,d0; \ - mov d0,a0; \ - jmp L(pseudo_end); -/* A quick note: it is assumed that the call to `__errno_location' does - not modify the stack! */ -#else -#define SYSCALL_ERROR_HANDLER \ -0:mov pc,a0; \ - add _GLOBAL_OFFSET_TABLE_-(0b-.),a0; \ - clr d1; \ - sub d0,d1; \ - mov (errno@GOT,a0),a1; \ - mov d1,(a0); \ - mov -1,d0; \ - mov d0,a0; \ - jmp L(pseudo_end); -#endif /* _LIBC_REENTRANT */ -#endif /* PIC */ - -/* Linux takes system call arguments in registers: - - syscall number d0 call-clobbered - arg 1 a0 call-clobbered - arg 2 d1 call-clobbered - arg 3 a3 call-saved - arg 4 a2 call-saved - arg 5 d3 call-saved - arg 6 d2 call-saved - - The stack layout upon entering the function is: - - (24,sp) Arg# 6 - (20,sp) Arg# 5 - (16,sp) Arg# 4 - (12,sp) Arg# 3 - d1 Arg# 2 - d0 Arg# 1 - (sp) Return address - - (Of course a function with say 3 arguments does not have entries for - arguments 4, 5 and 6.) */ - -#undef DO_CALL -#define DO_CALL(syscall_name, args) \ - PUSHARGS_##args \ - DOARGS_##args \ - mov SYS_ify (syscall_name),d0; \ - syscall 0 \ - POPARGS_##args - -#define PUSHARGS_0 /* No arguments to push. */ -#define _DOARGS_0(N) /* No arguments to frob. */ -#define DOARGS_0 /* No arguments to frob. */ -#define POPARGS_0 /* No arguments to pop. */ - -#define PUSHARGS_1 /* No arguments to push. */ -#define _DOARGS_1(N) _DOARGS_0 (N-4) mov d0,a0; -#define DOARGS_1 _DOARGS_1 (4) -#define POPARGS_1 /* No arguments to pop. */ - -#define PUSHARGS_2 /* No arguments to push. */ -#define _DOARGS_2(N) _DOARGS_1 (N-4) /* Argument already in d1. */ -#define DOARGS_2 _DOARGS_2 (8) -#define POPARGS_2 /* No arguments to pop. */ - -#define PUSHARGS_3 movm [a3],(sp); -#define _DOARGS_3(N) _DOARGS_2 (N-4) mov (N,sp),a3; -#define DOARGS_3 _DOARGS_3 (16) -#define POPARGS_3 ; movm (sp),[a3] - -#define PUSHARGS_4 movm [a2,a3],(sp); -#define _DOARGS_4(N) _DOARGS_3 (N-4) mov (N,sp),a2; -#define DOARGS_4 _DOARGS_4 (24) -#define POPARGS_4 ; movm (sp),[a2,a3] - -#define PUSHARGS_5 movm [d3,a2,a3],(sp); -#define _DOARGS_5(N) _DOARGS_4 (N-4) mov (N,sp),d3; -#define DOARGS_5 _DOARGS_5 (32) -#define POPARGS_5 ; movm (sp),[d3,a2,a3] - -#define PUSHARGS_6 movm [d2,d3,a2,a3],(sp); -#define _DOARGS_6(N) _DOARGS_5 (N-4) mov (N,sp),d2; -#define DOARGS_6 _DOARGS_6 (40) -#define POPARGS_6 ; movm (sp),[d2,d3,a2,a3] - -#else /* !__ASSEMBLER__ */ - -/* Define a macro which expands inline into the wrapper code for a system - call. */ -#undef INLINE_SYSCALL -#define INLINE_SYSCALL(name, nr, args...) \ - ({ \ - unsigned int resultvar = INTERNAL_SYSCALL (name, , nr, args); \ - if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (resultvar, ), 0)) \ - { \ - __set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, )); \ - resultvar = 0xffffffff; \ - } \ - (int) resultvar; }) - -#define INTERNAL_SYSCALL(name, err, nr, args...) \ -({ \ - register long __sc0 asm ("d0") = __NR_##name; \ - inline_syscall##nr(name, ## args); \ - __sc0; \ -}) - -#undef INTERNAL_SYSCALL_DECL -#define INTERNAL_SYSCALL_DECL(err) do { } while (0) - -#undef INTERNAL_SYSCALL_ERROR_P -#define INTERNAL_SYSCALL_ERROR_P(val, err) \ - ((unsigned int) (val) >= (unsigned long)-125) - -#undef INTERNAL_SYSCALL_ERRNO -#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val)) - -#define inline_syscall0(name,dummy...) \ -__asm__ __volatile__ ("syscall 0" \ - : "+d" (__sc0) \ - : : "memory") - -#define inline_syscall1(name,arg1) \ -register long __sc1 asm ("a0") = (long) (arg1); \ -inline_syscall0 (name); \ -__asm__ __volatile__ ("" : : "r" (__sc1)) - -#define inline_syscall2(name,arg1,arg2) \ -register long __sc2 asm ("d1") = (long) (arg2); \ -inline_syscall1 (name,(arg1)); \ -__asm__ __volatile__ ("" : : "r" (__sc2)) - -/* We can't tell whether a3 is going to be eliminated in the enclosing - function, so we have to assume it isn't. We first load the value - of any arguments into their registers, except for a3 itself, that - may be needed to load the value of the other arguments. Then, we - save a3's value in some other register, and load the argument value - into a3. We have to force both a3 and its copy to be live in - different registers at the same time, to avoid having the copy - spilled and the value reloaded into the same register, in which - case we'd be unable to get the value of a3 back, should the stack - slot reference be (offset,a3). */ -#define inline_syscall3(name,arg1,arg2,arg3) \ -long __sc3v = (long) (arg3); \ -register long __sc1 asm ("a0") = (long) (arg1); \ -register long __sc2 asm ("d1") = (long) (arg2); \ -register long __sc3 asm ("a3") = __sc3; \ -register long __sc3c; \ -__asm__ __volatile__ ("mov %1,%0" : "=&r" (__sc3c) : "r" (__sc3)); \ -__sc3 = __sc3v; \ -__asm__ __volatile__ ("" : : "r" (__sc3c), "r" (__sc3)); \ -inline_syscall0 (name); \ -__sc3 = __sc3c; \ -__asm__ __volatile__ ("" : : "r" (__sc3), "r" (__sc2), "r" (__sc1)) - -#ifdef PIC -/* Since a2 is the PIC register, it requires similar handling as a3 - when we're generating PIC, as a2's value may be needed to load - arguments whose values live in global variables. The difference is - that we don't need to require its value to be live in a register; - it may well be in a stack slot, as long as we save it before - clobbering a3 and restore it after restoring a3. */ -#define inline_syscall4(name,arg1,arg2,arg3,arg4) \ -long __sc4v = (long) (arg4); \ -long __sc3v = (long) (arg3); \ -register long __sc1 asm ("a0") = (long) (arg1); \ -register long __sc2 asm ("d1") = (long) (arg2); \ -register long __sc3 asm ("a3") = __sc3; \ -register long __sc3c; \ -register long __sc4 asm ("a2") = __sc4; \ -long __sc4c = __sc4; \ -__sc4 = __sc4v; \ -__asm__ __volatile__ ("mov %1,%0" : "=&r" (__sc3c) : "r" (__sc3)); \ -__sc3 = __sc3v; \ -__asm__ __volatile__ ("" : : "r" (__sc3c), "r" (__sc3), "r" (__sc4)); \ -inline_syscall0 (name); \ -__sc3 = __sc3c; \ -__sc4 = __sc4c; \ -__asm__ __volatile__ ("" : : "r" (__sc4), "r" (__sc3), \ - "r" (__sc2), "r" (__sc1)) -#else -#define inline_syscall4(name,arg1,arg2,arg3,arg4) \ -register long __sc4 asm ("a2") = (long) (arg4); \ -inline_syscall3 (name,(arg1),(arg2),(arg3)); \ -__asm__ __volatile__ ("" : : "r" (__sc4)) -#endif - -#define inline_syscall5(name,arg1,arg2,arg3,arg4,arg5) \ -register long __sc5 asm ("d3") = (long) (arg5); \ -inline_syscall4 (name,(arg1),(arg2),(arg3),(arg4)); \ -__asm__ __volatile__ ("" : : "r" (__sc5)) - -#define inline_syscall6(name,arg1,arg2,arg3,arg4,arg5,arg6) \ -register long __sc6 asm ("d2") = (long) (arg6); \ -inline_syscall5 (name,(arg1),(arg2),(arg3),(arg4),(arg5)); \ -__asm__ __volatile__ ("" : : "r" (__sc6)) - -#endif /* __ASSEMBLER__ */ - -#endif /* linux/am33/sysdep.h */ diff --git a/ports/sysdeps/unix/sysv/linux/am33/xstat.c b/ports/sysdeps/unix/sysv/linux/am33/xstat.c deleted file mode 100644 index e9869f5508..0000000000 --- a/ports/sysdeps/unix/sysv/linux/am33/xstat.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/xstat.c> |