diff options
author | Ulrich Drepper <drepper@gmail.com> | 2012-01-07 11:19:05 -0500 |
---|---|---|
committer | Ulrich Drepper <drepper@gmail.com> | 2012-01-07 11:19:05 -0500 |
commit | d75a0a62b12c35ee85f786d5f8d155ab39909411 (patch) | |
tree | c3479d23878ef4ab05629d4a60f4f7623269c1dd /sysdeps/unix/sysv/linux/ia64 | |
parent | dcc9756b5bfbb2b97f73bad863d7e1c4002bea98 (diff) | |
download | glibc-d75a0a62b12c35ee85f786d5f8d155ab39909411.tar.gz glibc-d75a0a62b12c35ee85f786d5f8d155ab39909411.tar.xz glibc-d75a0a62b12c35ee85f786d5f8d155ab39909411.zip |
Remove IA-64 support
Diffstat (limited to 'sysdeps/unix/sysv/linux/ia64')
70 files changed, 0 insertions, 5116 deletions
diff --git a/sysdeps/unix/sysv/linux/ia64/Implies b/sysdeps/unix/sysv/linux/ia64/Implies deleted file mode 100644 index 8d91c80097..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/Implies +++ /dev/null @@ -1 +0,0 @@ -unix/sysv/linux/wordsize-64 diff --git a/sysdeps/unix/sysv/linux/ia64/Makefile b/sysdeps/unix/sysv/linux/ia64/Makefile deleted file mode 100644 index d9a35a7c67..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -ifeq ($(subdir),misc) -sysdep_headers += sys/rse.h -endif - -ifeq ($(subdir),stdlib) -sysdep_routines += __start_context -gen-as-const-headers += sigcontext-offsets.sym -endif - -ifeq ($(subdir),misc) -sysdep_headers += sys/io.h -sysdep_routines += ioperm clone2 -endif - -ifeq ($(subdir),elf) -sysdep-dl-routines += dl-static -sysdep_routines += $(sysdep-dl-routines) -sysdep-rtld-routines += $(sysdep-dl-routines) -endif - -ifeq ($(subdir),rt) -librt-routines += rt-sysdep -endif - -# This is a crude attempt to silence the compiler which complains about -# then 'current' definition in the kernel headers. -CPPFLAGS += -D_ASM_IA64_CURRENT_H diff --git a/sysdeps/unix/sysv/linux/ia64/Versions b/sysdeps/unix/sysv/linux/ia64/Versions deleted file mode 100644 index 13d710a078..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/Versions +++ /dev/null @@ -1,25 +0,0 @@ -ld { - GLIBC_PRIVATE { - _dl_var_init; - } -} -libc { - GLIBC_2.2 { - ioperm; iopl; - inb; inw; inl; - _inb; _inw; _inl; - outb; outw; _outl; - _outb; _outw; _outl; - pciconfig_read; pciconfig_write; - - # linuxthreads - __clone2; - } - GLIBC_2.2.2 { - # w* - wordexp; - } - GLIBC_2.2.6 { - getunwind; - } -} diff --git a/sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S deleted file mode 100644 index fa87f67ebc..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright (C) 2009 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - - .section .rodata.str1.8,"aMS",@progbits,1 - .align 8 -.LC0: - .string "longjmp causes uninitialized stack frame" - - .section .sdata,"aws",@progbits - .align 8 - .type longjmp_msg,@object -longjmp_msg: - data8 .LC0 - .size longjmp_msg, .-longjmp_msg - -#define __longjmp ____longjmp_chk - -#define CHECK_RSP(reg) \ - cmp.ltu p0, p8 = reg, r12; \ -(p8) br.cond.dpnt .Lok;; \ - addl r28 = @ltoffx(longjmp_msg#), r1;; \ - ld8.mov r28 = [r28], longjmp_msg#;; \ - ld8 out0 = [r28]; \ - br.call.sptk.many b0 = HIDDEN_JUMPTARGET(__fortify_fail)#;; \ -.Lok: - -#include "__longjmp.S" diff --git a/sysdeps/unix/sysv/linux/ia64/__longjmp.S b/sysdeps/unix/sysv/linux/ia64/__longjmp.S deleted file mode 100644 index 2e74904385..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/__longjmp.S +++ /dev/null @@ -1,171 +0,0 @@ -/* Copyright (C) 1999, 2000, 2001, 2005 Free Software Foundation, Inc. - Contributed by David Mosberger-Tang <davidm@hpl.hp.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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. - - Note that __sigsetjmp() did NOT flush the register stack. Instead, - we do it here since __longjmp() is usually much less frequently - invoked than __sigsetjmp(). The only difficulty is that __sigsetjmp() - didn't (and wouldn't be able to) save ar.rnat either. This is a problem - because if we're not careful, we could end up loading random NaT bits. - There are two cases: - - (i) ar.bsp < ia64_rse_rnat_addr(jmpbuf.ar_bsp) - ar.rnat contains the desired bits---preserve ar.rnat - across loadrs and write to ar.bspstore - - (ii) ar.bsp >= ia64_rse_rnat_addr(jmpbuf.ar_bsp) - The desired ar.rnat is stored in - ia64_rse_rnat_addr(jmpbuf.ar_bsp). Load those - bits into ar.rnat after setting ar.bspstore. */ - -#include <sysdep.h> -#include <features.h> - -# define pPos p6 /* is rotate count positive? */ -# define pNeg p7 /* is rotate count negative? */ - - - /* __longjmp(__jmp_buf buf, int val) */ - -LEAF(__longjmp) -#ifdef CHECK_RSP - alloc r8=ar.pfs,2,1,1,0 -#else - alloc r8=ar.pfs,2,1,0,0 -#endif - mov r27=ar.rsc - add r2=0x98,in0 // r2 <- &jmpbuf.orig_jmp_buf_addr - ;; - ld8 r8=[r2],-16 // r8 <- orig_jmp_buf_addr - mov r10=ar.bsp - and r11=~0x3,r27 // clear ar.rsc.mode - ;; - flushrs // flush dirty regs to backing store (must be first in insn grp) - ld8 r23=[r2],8 // r23 <- jmpbuf.ar_bsp - sub r8=r8,in0 // r8 <- &orig_jmpbuf - &jmpbuf - ;; - ld8 r25=[r2] // r25 <- jmpbuf.ar_unat - extr.u r8=r8,3,6 // r8 <- (&orig_jmpbuf - &jmpbuf)/8 & 0x3f - ;; - cmp.lt pNeg,pPos=r8,r0 - mov r2=in0 - ;; -(pPos) mov r16=r8 -(pNeg) add r16=64,r8 -(pPos) sub r17=64,r8 -(pNeg) sub r17=r0,r8 - ;; - mov ar.rsc=r11 // put RSE in enforced lazy mode - shr.u r8=r25,r16 - add r3=8,in0 // r3 <- &jmpbuf.r1 - shl r9=r25,r17 - ;; - ld8.fill.nta r28=[r2],16 // r28 <- jmpbuf.sp - or r25=r8,r9 - ;; - mov r26=ar.rnat - mov ar.unat=r25 // setup ar.unat (NaT bits for r1, r4-r7, and r12) - ;; -#ifdef CHECK_RSP - CHECK_RSP (r28) -#endif - ld8.fill.nta gp=[r3],16 // r1 (gp) - dep r11=-1,r23,3,6 // r11 <- ia64_rse_rnat_addr(jmpbuf.ar_bsp) - mov sp=r28 // r12 (sp) - ;; - ld8.nta r16=[r2],16 // caller's unat - ld8.nta r17=[r3],16 // fpsr - ;; - ld8.fill.nta r4=[r2],16 // r4 - ld8.fill.nta r5=[r3],16 // r5 (gp) - cmp.geu p8,p0=r10,r11 // p8 <- (ar.bsp >= jmpbuf.ar_bsp) - ;; - ld8.fill.nta r6=[r2],16 // r6 - ld8.fill.nta r7=[r3],16 // r7 - ;; - mov ar.unat=r16 // restore caller's unat - mov ar.fpsr=r17 // restore fpsr - ;; - ld8.nta r16=[r2],16 // b0 - ld8.nta r17=[r3],16 // b1 - ;; -(p8) ld8 r26=[r11] // r26 <- *ia64_rse_rnat_addr(jmpbuf.ar_bsp) - mov ar.bspstore=r23 // restore ar.bspstore - ;; - ld8.nta r18=[r2],16 // b2 - ld8.nta r19=[r3],16 // b3 - ;; -#ifdef PTR_DEMANGLE - PTR_DEMANGLE (r16, r24) -#endif - ld8.nta r20=[r2],16 // b4 - ld8.nta r21=[r3],16 // b5 - ;; - ld8.nta r11=[r2],16 // ar.pfs - ld8.nta r22=[r3],56 // ar.lc - ;; - ld8.nta r24=[r2],32 // pr - mov b0=r16 - ;; - ldf.fill.nta f2=[r2],32 - ldf.fill.nta f3=[r3],32 - mov b1=r17 - ;; - ldf.fill.nta f4=[r2],32 - ldf.fill.nta f5=[r3],32 - mov b2=r18 - ;; - ldf.fill.nta f16=[r2],32 - ldf.fill.nta f17=[r3],32 - mov b3=r19 - ;; - ldf.fill.nta f18=[r2],32 - ldf.fill.nta f19=[r3],32 - mov b4=r20 - ;; - ldf.fill.nta f20=[r2],32 - ldf.fill.nta f21=[r3],32 - mov b5=r21 - ;; - ldf.fill.nta f22=[r2],32 - ldf.fill.nta f23=[r3],32 - mov ar.lc=r22 - ;; - ldf.fill.nta f24=[r2],32 - ldf.fill.nta f25=[r3],32 - cmp.eq p8,p9=0,in1 - ;; - ldf.fill.nta f26=[r2],32 - ldf.fill.nta f27=[r3],32 - mov ar.pfs=r11 - ;; - ldf.fill.nta f28=[r2],32 - ldf.fill.nta f29=[r3],32 - ;; - ldf.fill.nta f30=[r2] - ldf.fill.nta f31=[r3] -(p8) mov r8=1 - - mov ar.rnat=r26 // restore ar.rnat - ;; - mov ar.rsc=r27 // restore ar.rsc -(p9) mov r8=in1 - - invala // virt. -> phys. regnum mapping may change - mov pr=r24,-1 - ret -END(__longjmp) diff --git a/sysdeps/unix/sysv/linux/ia64/__start_context.S b/sysdeps/unix/sysv/linux/ia64/__start_context.S deleted file mode 100644 index 519bd252b1..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/__start_context.S +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright (C) 2001, 2004 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by David Mosberger-Tang <davidm@hpl.hp.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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <sysdep.h> -#include <features.h> - -/* When a context set up by __makecontext() is activated, control - transfers to __start_context. When we get here: - - b1 = entry point of function to call - in0 = address of UCP to resume after function returns - in1 = global pointer for __start_context - out0 .. outN = arguments for function */ - -ENTRY(__start_context) - .prologue - alloc r2 = ar.pfs, 2, 0, 8, 0 - - .save rp, r4 // terminate call chain with a NULL rp - mov r4 = r0 - ;; - - .body - br.call.sptk rp = b1 -1: - mov gp = in1 // restore gp - cmp.ne p6,p0 = in0, r0 // uc_link != 0 ? - ;; -(p6) mov out0 = in0 -(p6) br.call.sptk rp = __setcontext -.Lexit: - mov out0 = 0 - br.call.sptk rp = HIDDEN_JUMPTARGET(exit) - -1: br.cond.sptk .Lexit -END(__start_context) diff --git a/sysdeps/unix/sysv/linux/ia64/bits/endian.h b/sysdeps/unix/sysv/linux/ia64/bits/endian.h deleted file mode 100644 index 98a5e23991..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/bits/endian.h +++ /dev/null @@ -1,7 +0,0 @@ -/* Linux/ia64 is little-endian. */ - -#ifndef _ENDIAN_H -# error "Never use <bits/endian.h> directly; include <endian.h> instead." -#endif - -#define __BYTE_ORDER __LITTLE_ENDIAN diff --git a/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h b/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h deleted file mode 100644 index 72f4b6ceab..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h +++ /dev/null @@ -1,320 +0,0 @@ -/* O_*, F_*, FD_* bit values for Linux/IA64. - Copyright (C) 1999, 2000, 2004, 2006, 2007, 2009, 2010, 2011 - 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#ifndef _FCNTL_H -# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead." -#endif - - -#include <sys/types.h> -#ifdef __USE_GNU -# include <bits/uio.h> -#endif - -/* open/fcntl - O_SYNC is only implemented on blocks devices and on files - located on a few file systems. */ -#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 04010000 -#define O_FSYNC O_SYNC -#define O_ASYNC 020000 - -#ifdef __USE_XOPEN2K8 -# define O_DIRECTORY 0200000 /* must be a directory */ -# define O_NOFOLLOW 0400000 /* don't follow links */ -# define O_CLOEXEC 02000000 /* Set close_on_exec. */ -#endif -#ifdef __USE_GNU -# define O_DIRECT 040000 -# define O_NOATIME 01000000 /* Do not set atime. */ -# define O_PATH 010000000 /* Resolve pathname but do not open file. */ -#endif - -#ifdef __USE_LARGEFILE64 -/* Not necessary, files are always with 64bit off_t. */ -# define O_LARGEFILE 0 -#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 010000 /* Synchronize data. */ -# define O_RSYNC O_SYNC /* Synchronize read operations. */ -#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. */ -#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). */ - -/* Not necessary, we always have 64-bit offsets. */ -#define F_GETLK64 5 /* Get record locking info. */ -#define F_SETLK64 6 /* Set record locking info (non-blocking). */ -#define F_SETLKW64 7 /* Set record locking info (blocking). */ - -#if defined __USE_BSD || defined __USE_UNIX98 || defined __USE_XOPEN2K8 -# define F_SETOWN 8 /* Get owner (process receiving SIGIO). */ -# define F_GETOWN 9 /* Set owner (process receiving 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. */ -# define F_SETOWN_EX 15 /* Get owner (thread receiving SIGIO). */ -# define F_GETOWN_EX 16 /* Set owner (thread receiving SIGIO). */ -#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_SETPIPE_SZ 1031 /* Set pipe page size array. */ -# define F_GETPIPE_SZ 1032 /* Set pipe page size array. */ -#endif -#ifdef __USE_XOPEN2K8 -# 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 attibutes. */ -# define DN_MULTISHOT 0x80000000 /* Don't remove notifier. */ -#endif - -/* We don't need to support __USE_FILE_OFFSET64. */ -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'). */ - __off_t l_start; /* Offset where the lock begins. */ - __off_t l_len; /* Size of the locked area; zero means until EOF. */ - __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 - -#ifdef __USE_GNU -/* Owner types. */ -enum __pid_type - { - F_OWNER_TID = 0, /* Kernel thread. */ - F_OWNER_PID, /* Process. */ - F_OWNER_PGRP, /* Process group. */ - F_OWNER_GID = F_OWNER_PGRP /* Alternative, obsolete name. */ - }; - -/* Structure to use with F_GETOWN_EX and F_SETOWN_EX. */ -struct f_owner_ex - { - enum __pid_type type; /* Owner type of ID. */ - __pid_t pid; /* ID of owner. */ - }; -#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 - - -#ifdef __USE_GNU -/* Flags for SYNC_FILE_RANGE. */ -# define SYNC_FILE_RANGE_WAIT_BEFORE 1 /* Wait upon writeout of all pages - in the range before performing the - write. */ -# define SYNC_FILE_RANGE_WRITE 2 /* Initiate writeout of all those - dirty pages in the range which are - not presently under writeback. */ -# define SYNC_FILE_RANGE_WAIT_AFTER 4 /* Wait upon writeout of all pages in - the range after performing the - write. */ - -/* Flags for SPLICE and VMSPLICE. */ -# define SPLICE_F_MOVE 1 /* Move pages instead of copying. */ -# define SPLICE_F_NONBLOCK 2 /* Don't block on the pipe splicing - (but we may still block on the fd - we splice from/to). */ -# define SPLICE_F_MORE 4 /* Expect more data. */ -# define SPLICE_F_GIFT 8 /* Pages passed in are a gift. */ - - -/* File handle structure. */ -struct file_handle -{ - unsigned int handle_bytes; - int handle_type; - /* File identifier. */ - unsigned char f_handle[0]; -}; - -/* Maximum handle size (for now). */ -# define MAX_HANDLE_SZ 128 -#endif - -__BEGIN_DECLS - -#ifdef __USE_GNU - -/* Provide kernel hint to read ahead. */ -extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count) - __THROW; - - -/* Selective file content synch'ing. - - This function is a possible cancellation point and therefore not - marked with __THROW. */ -extern int sync_file_range (int __fd, __off64_t __offset, __off64_t __count, - unsigned int __flags); - - -/* Splice address range into a pipe. - - This function is a possible cancellation point and therefore not - marked with __THROW. */ -extern ssize_t vmsplice (int __fdout, const struct iovec *__iov, - size_t __count, unsigned int __flags); - -/* Splice two files together. - - This function is a possible cancellation point and therefore not - marked with __THROW. */ -extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout, - __off64_t *__offout, size_t __len, - unsigned int __flags); - -/* In-kernel implementation of tee for pipe buffers. - - This function is a possible cancellation point and therefore not - marked with __THROW. */ -extern ssize_t tee (int __fdin, int __fdout, size_t __len, - unsigned int __flags); - -/* Reserve storage for the data of the file associated with FD. - - This function is a possible cancellation point and therefore not - marked with __THROW. */ -# ifndef __USE_FILE_OFFSET64 -extern int fallocate (int __fd, int __mode, __off_t __offset, __off_t __len); -# else -# ifdef __REDIRECT -extern int __REDIRECT (fallocate, (int __fd, int __mode, __off64_t __offset, - __off64_t __len), - fallocate64); -# else -# define fallocate fallocate64 -# endif -# endif -# ifdef __USE_LARGEFILE64 -extern int fallocate64 (int __fd, int __mode, __off64_t __offset, - __off64_t __len); -# endif - - -/* Map file name to file handle. */ -extern int name_to_handle_at (int __dfd, const char *__name, - struct file_handle *__handle, int *__mnt_id, - int __flags) __THROW; - -/* Open file using the file handle. - - This function is a possible cancellation point and therefore not - marked with __THROW. */ -extern int open_by_handle_at (int __mountdirfd, struct file_handle *__handle, - int __flags); - -#endif - -__END_DECLS diff --git a/sysdeps/unix/sysv/linux/ia64/bits/ipc.h b/sysdeps/unix/sysv/linux/ia64/bits/ipc.h deleted file mode 100644 index 858c332f1e..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/bits/ipc.h +++ /dev/null @@ -1,54 +0,0 @@ -/* Copyright (C) 2000 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by David Mosberger-Tang <davidm@hpl.hp.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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#ifndef _SYS_IPC_H -# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead." -#endif - -#include <sys/types.h> - -/* Mode bits for `msgget', `semget', and `shmget'. */ -#define IPC_CREAT 01000 /* Create key if key does not exist. */ -#define IPC_EXCL 02000 /* Fail if key exists. */ -#define IPC_NOWAIT 04000 /* Return error on wait. */ - -/* Control commands for `msgctl', `semctl', and `shmctl'. */ -#define IPC_RMID 0 /* Remove identifier. */ -#define IPC_SET 1 /* Set `ipc_perm' options. */ -#define IPC_STAT 2 /* Get `ipc_perm' options. */ -#define IPC_INFO 3 /* See ipcs. */ - -/* Special key values. */ -#define IPC_PRIVATE ((__key_t) 0) /* Private key. */ - - -/* Data structure used to pass permission information to IPC operations. */ -struct ipc_perm - { - __key_t __key; /* Key. */ - __uid_t uid; /* Owner's user ID. */ - __gid_t gid; /* Owner's group ID. */ - __uid_t cuid; /* Creator's user ID. */ - __gid_t cgid; /* Creator's group ID. */ - __mode_t mode; /* Read/write permission. */ - unsigned short int __seq; /* Sequence number. */ - unsigned short int __pad1; - unsigned long int __unused1; - unsigned long int __unused2; - }; diff --git a/sysdeps/unix/sysv/linux/ia64/bits/mman.h b/sysdeps/unix/sysv/linux/ia64/bits/mman.h deleted file mode 100644 index 8b1398907f..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/bits/mman.h +++ /dev/null @@ -1,110 +0,0 @@ -/* Definitions for POSIX memory map interface. Linux/ia64 version. - Copyright (C) 1997,1998,2000,2003,2005,2006,2009,2011 - 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#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. */ - - -/* Protections are chosen from these bits, OR'd together. The - implementation does not necessarily support PROT_EXEC or PROT_WRITE - without PROT_READ. The only guarantees are that no writing will be - allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */ - -#define PROT_READ 0x1 /* Page can be read. */ -#define PROT_WRITE 0x2 /* Page can be written. */ -#define PROT_EXEC 0x4 /* Page can be executed. */ -#define PROT_NONE 0x0 /* Page can not be accessed. */ -#define PROT_GROWSDOWN 0x01000000 /* Extend change to start of - growsdown vma (mprotect only). */ -#define PROT_GROWSUP 0x02000000 /* Extend change to start of - growsup vma (mprotect only). */ - -/* Sharing types (must choose one and only one of these). */ -#define MAP_SHARED 0x01 /* Share changes. */ -#define MAP_PRIVATE 0x02 /* Changes are private. */ -#ifdef __USE_MISC -# define MAP_TYPE 0x0f /* Mask for type of mapping. */ -#endif - -/* Other flags. */ -#define MAP_FIXED 0x10 /* Interpret addr exactly. */ -#ifdef __USE_MISC -# define MAP_FILE 0 -# define MAP_ANONYMOUS 0x20 /* Don't use a file. */ -# define MAP_ANON MAP_ANONYMOUS -#endif - -/* These are Linux-specific. */ -#ifdef __USE_MISC -# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */ -# define MAP_GROWSUP 0x00200 /* Register stack-like segment */ -# define MAP_DENYWRITE 0x00800 /* ETXTBSY */ -# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */ -# define MAP_LOCKED 0x02000 /* Lock the mapping. */ -# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */ -# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */ -# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */ -#endif - -/* Flags to `msync'. */ -#define MS_ASYNC 0x1 /* Sync memory asynchronously. */ -#define MS_INVALIDATE 0x2 /* Invalidate the caches. */ -#define MS_SYNC 0x4 /* Synchronous memory sync. */ - -/* Flags for `mlockall'. */ -#define MCL_CURRENT 0x1 /* Lock all currently mapped pages. */ -#define MCL_FUTURE 0x2 /* Lock all additions to address - space. */ - -/* Flags for `mremap'. */ -#ifdef __USE_GNU -# define MREMAP_MAYMOVE 1 -# define MREMAP_FIXED 2 -#endif - -/* Advice to `madvise'. */ -#ifdef __USE_BSD -# define MADV_NORMAL 0 /* No further special treatment. */ -# define MADV_RANDOM 1 /* Expect random page references. */ -# define MADV_SEQUENTIAL 2 /* Expect sequential page references. */ -# define MADV_WILLNEED 3 /* Will need these pages. */ -# define MADV_DONTNEED 4 /* Don't need these pages. */ -# define MADV_REMOVE 9 /* Remove these pages and resources. */ -# define MADV_DONTFORK 10 /* Do not inherit across fork. */ -# define MADV_DOFORK 11 /* Do inherit across fork. */ -# define MADV_MERGEABLE 12 /* KSM may merge identical pages. */ -# define MADV_UNMERGEABLE 13 /* KSM may not merge identical pages. */ -# define MADV_HUGEPAGE 14 /* Worth backing with hugepages. */ -# define MADV_NOHUGEPAGE 15 /* Not worth backing with hugepages. */ -# define MADV_HWPOISON 100 /* Poison a page for testing. */ -#endif - -/* The POSIX people had to invent similar names for the same things. */ -#ifdef __USE_XOPEN2K -# define POSIX_MADV_NORMAL 0 /* No further special treatment. */ -# define POSIX_MADV_RANDOM 1 /* Expect random page references. */ -# define POSIX_MADV_SEQUENTIAL 2 /* Expect sequential page references. */ -# define POSIX_MADV_WILLNEED 3 /* Will need these pages. */ -# define POSIX_MADV_DONTNEED 4 /* Don't need these pages. */ -#endif diff --git a/sysdeps/unix/sysv/linux/ia64/bits/msq.h b/sysdeps/unix/sysv/linux/ia64/bits/msq.h deleted file mode 100644 index cd268eea30..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/bits/msq.h +++ /dev/null @@ -1,69 +0,0 @@ -/* Copyright (C) 2000 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contribute by David Mosberger-Tang <davidm@hpl.hp.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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#ifndef _SYS_MSG_H -#error "Never use <bits/msq.h> directly; include <sys/msg.h> instead." -#endif - -#include <sys/types.h> - -/* Define options for message queue functions. */ -#define MSG_NOERROR 010000 /* no error if message is too big */ -#define MSG_EXCEPT 020000 /* recv any msg except of specified type */ - - -/* Structure of record for one message inside the kernel. - The type `struct __msg' is opaque. */ -struct msqid_ds -{ - struct ipc_perm msg_perm; /* structure describing operation permission */ - __time_t msg_stime; /* time of last msgsnd command */ - __time_t msg_rtime; /* time of last msgrcv command */ - __time_t msg_ctime; /* time of last change */ - unsigned long int __msg_cbytes; /* current number of bytes on queue */ - unsigned long int msg_qnum; /* number of messages currently on queue */ - unsigned long int msg_qbytes; /* max number of bytes allowed on queue */ - __pid_t msg_lspid; /* pid of last msgsnd() */ - __pid_t msg_lrpid; /* pid of last msgrcv() */ - unsigned long int __unused1; - unsigned long int __unused2; -}; - -#ifdef __USE_MISC - -# define msg_cbytes __msg_cbytes - -/* ipcs ctl commands */ -# define MSG_STAT 11 -# define MSG_INFO 12 - -/* buffer for msgctl calls IPC_INFO, MSG_INFO */ -struct msginfo - { - int msgpool; - int msgmap; - int msgmax; - int msgmnb; - int msgmni; - int msgssz; - int msgtql; - unsigned short int msgseg; - }; - -#endif /* __USE_MISC */ diff --git a/sysdeps/unix/sysv/linux/ia64/bits/sem.h b/sysdeps/unix/sysv/linux/ia64/bits/sem.h deleted file mode 100644 index 449f1ecc45..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/bits/sem.h +++ /dev/null @@ -1,87 +0,0 @@ -/* Copyright (C) 2000 - Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by David Mosberger-Tang <davidm@hpl.hp.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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#ifndef _SYS_SEM_H -# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead." -#endif - -#include <sys/types.h> - -/* Flags for `semop'. */ -#define SEM_UNDO 0x1000 /* undo the operation on exit */ - -/* Commands for `semctl'. */ -#define GETPID 11 /* get sempid */ -#define GETVAL 12 /* get semval */ -#define GETALL 13 /* get all semval's */ -#define GETNCNT 14 /* get semncnt */ -#define GETZCNT 15 /* get semzcnt */ -#define SETVAL 16 /* set semval */ -#define SETALL 17 /* set all semval's */ - - -/* Data structure describing a set of semaphores. */ -struct semid_ds -{ - struct ipc_perm sem_perm; /* operation permission struct */ - __time_t sem_otime; /* last semop() time */ - __time_t sem_ctime; /* last time changed by semctl() */ - unsigned long int sem_nsems; /* number of semaphores in set */ - unsigned long int __unused1; - unsigned long int __unused2; -}; - -/* The user should define a union like the following to use it for arguments - for `semctl'. - - union semun - { - int val; <= value for SETVAL - struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET - unsigned short int *array; <= array for GETALL & SETALL - struct seminfo *__buf; <= buffer for IPC_INFO - }; - - Previous versions of this file used to define this union but this is - incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether - one must define the union or not. */ -#define _SEM_SEMUN_UNDEFINED 1 - -#ifdef __USE_MISC - -/* ipcs ctl cmds */ -# define SEM_STAT 18 -# define SEM_INFO 19 - -struct seminfo -{ - int semmap; - int semmni; - int semmns; - int semmnu; - int semmsl; - int semopm; - int semume; - int semusz; - int semvmx; - int semaem; -}; - -#endif /* __USE_MISC */ diff --git a/sysdeps/unix/sysv/linux/ia64/bits/setjmp.h b/sysdeps/unix/sysv/linux/ia64/bits/setjmp.h deleted file mode 100644 index 8bd675e4ec..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/bits/setjmp.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Define the machine-dependent type `jmp_buf'. Linux/IA-64 version. - Copyright (C) 1999,2000,2003,2005,2006 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by David Mosberger-Tang <davidm@hpl.hp.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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#ifndef _BITS_SETJMP_H -#define _BITS_SETJMP_H 1 - -#if !defined _SETJMP_H && !defined _PTHREAD_H -# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead." -#endif - -/* User code must not depend on the internal representation of jmp_buf. */ - -#define _JBLEN 70 - -/* the __jmp_buf element type should be __float80 per ABI... */ -typedef long __jmp_buf[_JBLEN] __attribute__ ((aligned (16))); /* guarantees 128-bit alignment! */ - -#endif /* bits/setjmp.h */ diff --git a/sysdeps/unix/sysv/linux/ia64/bits/shm.h b/sysdeps/unix/sysv/linux/ia64/bits/shm.h deleted file mode 100644 index 71b85295c5..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/bits/shm.h +++ /dev/null @@ -1,95 +0,0 @@ -/* Copyright (C) 2000, 2002, 2005, 2009 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#ifndef _SYS_SHM_H -# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead." -#endif - -#include <sys/types.h> - -/* Permission flag for shmget. */ -#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */ -#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */ - -/* Flags for `shmat'. */ -#define SHM_RDONLY 010000 /* attach read-only else read-write */ -#define SHM_RND 020000 /* round attach address to SHMLBA */ -#define SHM_REMAP 040000 /* take-over region on attach */ -#define SHM_EXEC 0100000 /* execution access */ - -/* Commands for `shmctl'. */ -#define SHM_LOCK 11 /* lock segment (root only) */ -#define SHM_UNLOCK 12 /* unlock segment (root only) */ - -/* Segment low boundary address multiple. */ -#define SHMLBA (1024 * 1024) - -/* Type to count number of attaches. */ -typedef unsigned long int shmatt_t; - -/* Data structure describing a shared memory segment. */ -struct shmid_ds - { - struct ipc_perm shm_perm; /* operation permission struct */ - size_t shm_segsz; /* size of segment in bytes */ - __time_t shm_atime; /* time of last shmat() */ - __time_t shm_dtime; /* time of last shmdt() */ - __time_t shm_ctime; /* time of last change by shmctl() */ - __pid_t shm_cpid; /* pid of creator */ - __pid_t shm_lpid; /* pid of last shmop */ - shmatt_t shm_nattch; /* number of current attaches */ - unsigned long int __unused1; - unsigned long int __unused2; - }; - -#ifdef __USE_MISC - -/* ipcs ctl commands */ -# define SHM_STAT 13 -# define SHM_INFO 14 - -/* shm_mode upper byte flags */ -# define SHM_DEST 01000 /* segment will be destroyed on last detach */ -# define SHM_LOCKED 02000 /* segment will not be swapped */ -# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */ -# define SHM_NORESERVE 010000 /* don't check for reservations */ - -struct shminfo - { - unsigned long int shmmax; - unsigned long int shmmin; - unsigned long int shmmni; - unsigned long int shmseg; - unsigned long int shmall; - unsigned long int __unused1; - unsigned long int __unused2; - unsigned long int __unused3; - unsigned long int __unused4; - }; - -struct shm_info - { - int used_ids; - unsigned long int shm_tot; /* total allocated shm */ - unsigned long int shm_rss; /* total resident shm */ - unsigned long int shm_swp; /* total swapped shm */ - unsigned long int swap_attempts; - unsigned long int swap_successes; - }; - -#endif /* __USE_MISC */ diff --git a/sysdeps/unix/sysv/linux/ia64/bits/sigaction.h b/sysdeps/unix/sysv/linux/ia64/bits/sigaction.h deleted file mode 100644 index b557eaa3e0..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/bits/sigaction.h +++ /dev/null @@ -1,75 +0,0 @@ -/* Definitions for Linux/ia64 sigaction. - Copyright (C) 1996, 1997, 2000, 2003, 2010 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#ifndef _SIGNAL_H -# error "Never include <bits/sigaction.h> directly; use <signal.h> instead." -#endif - -/* Structure describing the action to be taken when a signal arrives. */ -struct sigaction - { - /* Signal handler. */ -#ifdef __USE_POSIX199309 - union - { - /* Used if SA_SIGINFO is not set. */ - __sighandler_t sa_handler; - /* Used if SA_SIGINFO is set. */ - void (*sa_sigaction) (int, siginfo_t *, void *); - } - __sigaction_handler; -# define sa_handler __sigaction_handler.sa_handler -# define sa_sigaction __sigaction_handler.sa_sigaction -#else - __sighandler_t sa_handler; -#endif - - /* Special flags. */ - unsigned long int sa_flags; - - /* Additional set of signals to be blocked. */ - __sigset_t sa_mask; - }; - -/* Bits in `sa_flags'. */ -#define SA_NOCLDSTOP 0x00000001 /* Don't send SIGCHLD when children stop. */ -#define SA_NOCLDWAIT 0x00000002 /* Don't create zombie on child death. */ -#define SA_SIGINFO 0x00000004 -#if defined __USE_UNIX98 || defined __USE_MISC -# define SA_ONSTACK 0x08000000 /* Use signal stack by using `sa_restorer'. */ -#endif -#if defined __USE_UNIX98 || defined __USE_MISC || defined __USE_XOPEN2K8 -# define SA_RESTART 0x10000000 /* Restart syscall on signal return. */ -# define SA_NODEFER 0x40000000 /* Don't automatically block the signal - when its handler is being executed. */ -# define SA_RESETHAND 0x80000000 /* Reset to SIG_DFL on entry to handler. */ -#endif -#ifdef __USE_MISC -# define SA_INTERRUPT 0x20000000 /* Historic no-op. */ - -/* Some aliases for the SA_ constants. */ -# define SA_NOMASK SA_NODEFER -# define SA_ONESHOT SA_RESETHAND -# define SA_STACK SA_ONSTACK -#endif - -/* Values for the HOW argument to `sigprocmask'. */ -#define SIG_BLOCK 0 /* for blocking signals */ -#define SIG_UNBLOCK 1 /* for unblocking signals */ -#define SIG_SETMASK 2 /* for setting the signal mask */ diff --git a/sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h b/sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h deleted file mode 100644 index 34bc3c26ab..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h +++ /dev/null @@ -1,81 +0,0 @@ -/* Copyright (C) 1996, 1997, 1998, 2000, 2001, 2003, 2004, 2007 - Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Jes Sorensen <jes@linuxcare.com>, July 2000 - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H -# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead." -#endif - -#ifndef _BITS_SIGCONTEXT_H -#define _BITS_SIGCONTEXT_H 1 - -#define __need_size_t -#include <stddef.h> -#include <bits/sigstack.h> - -struct ia64_fpreg - { - union - { - unsigned long bits[2]; - } u; - } __attribute__ ((aligned (16))); - -struct sigcontext -{ - unsigned long int sc_flags; /* see manifest constants below */ - unsigned long int sc_nat; /* bit i == 1 iff scratch reg gr[i] is a NaT */ - stack_t sc_stack; /* previously active stack */ - - unsigned long int sc_ip; /* instruction pointer */ - unsigned long int sc_cfm; /* current frame marker */ - unsigned long int sc_um; /* user mask bits */ - unsigned long int sc_ar_rsc; /* register stack configuration register */ - unsigned long int sc_ar_bsp; /* backing store pointer */ - unsigned long int sc_ar_rnat; /* RSE NaT collection register */ - unsigned long int sc_ar_ccv; /* compare & exchange compare value register */ - unsigned long int sc_ar_unat; /* ar.unat of interrupted context */ - unsigned long int sc_ar_fpsr; /* floating-point status register */ - unsigned long int sc_ar_pfs; /* previous function state */ - unsigned long int sc_ar_lc; /* loop count register */ - unsigned long int sc_pr; /* predicate registers */ - unsigned long int sc_br[8]; /* branch registers */ - unsigned long int sc_gr[32]; /* general registers (static partition) */ - struct ia64_fpreg sc_fr[128]; /* floating-point registers */ - unsigned long int sc_rbs_base;/* NULL or new base of sighandler's rbs */ - unsigned long int sc_loadrs; /* see description above */ - unsigned long int sc_ar25; /* cmp8xchg16 uses this */ - unsigned long int sc_ar26; /* rsvd for scratch use */ - unsigned long int sc_rsvd[12];/* reserved for future use */ - - /* sc_mask is actually an sigset_t but we don't want to - * include the kernel headers here. */ - unsigned long int sc_mask; /* signal mask to restore after handler returns */ -}; - -/* sc_flag bit definitions. */ -#define IA64_SC_FLAG_ONSTACK_BIT 0 /* is handler running on signal stack? */ -#define IA64_SC_FLAG_IN_SYSCALL_BIT 1 /* did signal interrupt a syscall? */ -#define IA64_SC_FLAG_FPH_VALID_BIT 2 /* is state in f[32]-f[127] valid? */ - -#define IA64_SC_FLAG_ONSTACK (1 << IA64_SC_FLAG_ONSTACK_BIT) -#define IA64_SC_FLAG_IN_SYSCALL (1 << IA64_SC_FLAG_IN_SYSCALL_BIT) -#define IA64_SC_FLAG_FPH_VALID (1 << IA64_SC_FLAG_FPH_VALID_BIT) - -#endif /* _BITS_SIGCONTEXT_H */ diff --git a/sysdeps/unix/sysv/linux/ia64/bits/siginfo.h b/sysdeps/unix/sysv/linux/ia64/bits/siginfo.h deleted file mode 100644 index fea5af7fbf..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/bits/siginfo.h +++ /dev/null @@ -1,343 +0,0 @@ -/* siginfo_t, sigevent and constants. Linux/ia64 version. - Copyright (C) 2000-2004, 2009, 2011 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by David Mosberger-Tang <davidm@hpl.hp.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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#if !defined _SIGNAL_H && !defined __need_siginfo_t \ - && !defined __need_sigevent_t -# error "Never include this file directly. Use <signal.h> instead" -#endif - -#if (!defined __have_sigval_t \ - && (defined _SIGNAL_H || defined __need_siginfo_t \ - || defined __need_sigevent_t)) -# define __have_sigval_t 1 - -/* Type for data associated with a signal. */ -typedef union sigval - { - int sival_int; - void *sival_ptr; - } sigval_t; -#endif - -#if (!defined __have_siginfo_t \ - && (defined _SIGNAL_H || defined __need_siginfo_t)) -# define __have_siginfo_t 1 - -# define __SI_MAX_SIZE 128 -# define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 4) - -typedef struct siginfo - { - int si_signo; /* Signal number. */ - int si_errno; /* If non-zero, an errno value associated with - this signal, as defined in <errno.h>. */ - int si_code; /* Signal code. */ - int __pad0; /* Explicit padding. */ - - union - { - int _pad[__SI_PAD_SIZE]; - - /* kill(). */ - struct - { - __pid_t si_pid; /* Sending process ID. */ - __uid_t si_uid; /* Real user ID of sending process. */ - } _kill; - - /* POSIX.1b timers. */ - struct - { - int si_tid; /* Timer ID. */ - int si_overrun; /* Overrun count. */ - sigval_t si_sigval; /* Signal value. */ - } _timer; - - /* POSIX.1b signals. */ - struct - { - __pid_t si_pid; /* Sending process ID. */ - __uid_t si_uid; /* Real user ID of sending process. */ - sigval_t si_sigval; /* Signal value. */ - } _rt; - - /* SIGCHLD. */ - struct - { - __pid_t si_pid; /* Which child. */ - __uid_t si_uid; /* Real user ID of sending process. */ - int si_status; /* Exit value or signal. */ - __clock_t si_utime; - __clock_t si_stime; - } _sigchld; - - /* SIGILL, SIGFPE, SIGSEGV, SIGBUS. */ - struct - { - void *si_addr; /* Faulting insn/memory ref. */ - int _si_imm; - unsigned int _si_flags; - unsigned long int _si_isr; - } _sigfault; - - /* SIGPOLL. */ - struct - { - long int si_band; /* Band event for SIGPOLL. */ - int si_fd; - } _sigpoll; - } _sifields; - } siginfo_t; - - -/* X/Open requires some more fields with fixed names. */ -# define si_pid _sifields._kill.si_pid -# define si_uid _sifields._kill.si_uid -# define si_timerid _sifields._timer.si_tid -# define si_overrun _sifields._timer.si_overrun -# define si_status _sifields._sigchld.si_status -# define si_utime _sifields._sigchld.si_utime -# define si_stime _sifields._sigchld.si_stime -# define si_value _sifields._rt.si_sigval -# define si_int _sifields._rt.si_sigval.sival_int -# define si_ptr _sifields._rt.si_sigval.sival_ptr -# define si_addr _sifields._sigfault.si_addr -# define si_band _sifields._sigpoll.si_band -# define si_fd _sifields._sigpoll.si_fd - -# ifdef __USE_GNU -# define si_imm _sifields._sigfault._si_imm -# define si_segvflags _sifields._sigfault._si_flags -# define si_isr _sifields._sigfault._si_isr -# endif - -/* Values for `si_code'. Positive values are reserved for kernel-generated - signals. */ -enum -{ - SI_ASYNCNL = -60, /* Sent by asynch name lookup completion. */ -# define SI_ASYNCNL SI_ASYNCNL - SI_TKILL = -6, /* Sent by tkill. */ -# define SI_TKILL SI_TKILL - SI_SIGIO, /* Sent by queued SIGIO. */ -# define SI_SIGIO SI_SIGIO - SI_ASYNCIO, /* Sent by AIO completion. */ -# define SI_ASYNCIO SI_ASYNCIO - SI_MESGQ, /* Sent by real time mesq state change. */ -# define SI_MESGQ SI_MESGQ - SI_TIMER, /* Sent by timer expiration. */ -# define SI_TIMER SI_TIMER - SI_QUEUE, /* Sent by sigqueue. */ -# define SI_QUEUE SI_QUEUE - SI_USER, /* Sent by kill, sigsend. */ -# define SI_USER SI_USER - SI_KERNEL = 0x80 /* Send by kernel. */ -#define SI_KERNEL SI_KERNEL -}; - - -/* `si_code' values for SIGILL signal. */ -enum -{ - ILL_ILLOPC = 1, /* Illegal opcode. */ -# define ILL_ILLOPC ILL_ILLOPC - ILL_ILLOPN, /* Illegal operand. */ -# define ILL_ILLOPN ILL_ILLOPN - ILL_ILLADR, /* Illegal addressing mode. */ -# define ILL_ILLADR ILL_ILLADR - ILL_ILLTRP, /* Illegal trap. */ -# define ILL_ILLTRP ILL_ILLTRP - ILL_PRVOPC, /* Privileged opcode. */ -# define ILL_PRVOPC ILL_PRVOPC - ILL_PRVREG, /* Privileged register. */ -# define ILL_PRVREG ILL_PRVREG - ILL_COPROC, /* Coprocessor error. */ -# define ILL_COPROC ILL_COPROC - ILL_BADSTK, /* Internal stack error. */ -# define ILL_BADSTK ILL_BADSTK - ILL_BADIADDR /* Unimplemented instruction address. */ -# define ILL_BADIADDR ILL_BADIADDR - -# ifdef __USE_GNU - , ILL_BREAK -# define ILL_BREAK ILL_BREAK -# endif -}; - -/* `si_code' values for SIGFPE signal. */ -enum -{ - FPE_INTDIV = 1, /* Integer divide by zero. */ -# define FPE_INTDIV FPE_INTDIV - FPE_INTOVF, /* Integer overflow. */ -# define FPE_INTOVF FPE_INTOVF - FPE_FLTDIV, /* Floating point divide by zero. */ -# define FPE_FLTDIV FPE_FLTDIV - FPE_FLTOVF, /* Floating point overflow. */ -# define FPE_FLTOVF FPE_FLTOVF - FPE_FLTUND, /* Floating point underflow. */ -# define FPE_FLTUND FPE_FLTUND - FPE_FLTRES, /* Floating point inexact result. */ -# define FPE_FLTRES FPE_FLTRES - FPE_FLTINV, /* Floating point invalid operation. */ -# define FPE_FLTINV FPE_FLTINV - FPE_FLTSUB /* Subscript out of range. */ -# define FPE_FLTSUB FPE_FLTSUB -# ifdef __USE_GNU - , FPE_DECOVF -# define FPE_DECOVF FPE_DECOVF - , FPE_DECDIV -# define FPE_DECDIV FPE_DECDIV - , FPE_DECERR -# define FPE_DECERR FPE_DECERR - , FPE_INVASC -# define FPE_INVASC FPE_INVASC - , FPE_INVDEC -# define FPE_INVDEC FPE_INVDEC -# endif -}; - -/* `si_code' values for SIGSEGV signal. */ -enum -{ - SEGV_MAPERR = 1, /* Address not mapped to object. */ -# define SEGV_MAPERR SEGV_MAPERR - SEGV_ACCERR /* Invalid permissions for mapped object. */ -# define SEGV_ACCERR SEGV_ACCERR -# ifdef __USE_GNU - , SEGV_PSTKOVF /* Paragraph stack overflow. */ -# define SEGV_PSTKOVF SEGV_PSTKOVF -# endif -}; - -/* `si_code' values for SIGBUS signal. */ -enum -{ - BUS_ADRALN = 1, /* Invalid address alignment. */ -# define BUS_ADRALN BUS_ADRALN - BUS_ADRERR, /* Non-existant physical address. */ -# define BUS_ADRERR BUS_ADRERR - BUS_OBJERR /* Object specific hardware error. */ -# define BUS_OBJERR BUS_OBJERR -}; - -/* `si_code' values for SIGTRAP signal. */ -enum -{ - TRAP_BRKPT = 1, /* Process breakpoint. */ -# define TRAP_BRKPT TRAP_BRKPT - TRAP_TRACE /* Process trace trap. */ -# define TRAP_TRACE TRAP_TRACE - -# ifdef __USE_GNU - , TRAP_BRANCH -# define TRAP_BRANCH TRAP_BRANCH - , TRAP_HWBKPT -# define TRAP_HWBKPT TRAP_HWBKPT -# endif -}; - -/* `si_code' values for SIGCHLD signal. */ -enum -{ - CLD_EXITED = 1, /* Child has exited. */ -# define CLD_EXITED CLD_EXITED - CLD_KILLED, /* Child was killed. */ -# define CLD_KILLED CLD_KILLED - CLD_DUMPED, /* Child terminated abnormally. */ -# define CLD_DUMPED CLD_DUMPED - CLD_TRAPPED, /* Traced child has trapped. */ -# define CLD_TRAPPED CLD_TRAPPED - CLD_STOPPED, /* Child has stopped. */ -# define CLD_STOPPED CLD_STOPPED - CLD_CONTINUED /* Stopped child has continued. */ -# define CLD_CONTINUED CLD_CONTINUED -}; - -/* `si_code' values for SIGPOLL signal. */ -enum -{ - POLL_IN = 1, /* Data input available. */ -# define POLL_IN POLL_IN - POLL_OUT, /* Output buffers available. */ -# define POLL_OUT POLL_OUT - POLL_MSG, /* Input message available. */ -# define POLL_MSG POLL_MSG - POLL_ERR, /* I/O error. */ -# define POLL_ERR POLL_ERR - POLL_PRI, /* High priority input available. */ -# define POLL_PRI POLL_PRI - POLL_HUP /* Device disconnected. */ -# define POLL_HUP POLL_HUP -}; - -# undef __need_siginfo_t -#endif /* !have siginfo_t && (have _SIGNAL_H || need siginfo_t). */ - - -#if (defined _SIGNAL_H || defined __need_sigevent_t) \ - && !defined __have_sigevent_t -# define __have_sigevent_t 1 - -/* Structure to transport application-defined values with signals. */ -# define __SIGEV_MAX_SIZE 64 -# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4) - -typedef struct sigevent - { - sigval_t sigev_value; - int sigev_signo; - int sigev_notify; - - union - { - int _pad[__SIGEV_PAD_SIZE]; - - /* When SIGEV_SIGNAL and SIGEV_THREAD_ID set, LWP ID of the - thread to receive the signal. */ - __pid_t _tid; - - struct - { - void (*_function) (sigval_t); /* Function to start. */ - void *_attribute; /* Really pthread_attr_t. */ - } _sigev_thread; - } _sigev_un; - } sigevent_t; - -/* POSIX names to access some of the members. */ -# define sigev_notify_function _sigev_un._sigev_thread._function -# define sigev_notify_attributes _sigev_un._sigev_thread._attribute - -/* `sigev_notify' values. */ -enum -{ - SIGEV_SIGNAL = 0, /* Notify via signal. */ -# define SIGEV_SIGNAL SIGEV_SIGNAL - SIGEV_NONE, /* Other notification: meaningless. */ -# define SIGEV_NONE SIGEV_NONE - SIGEV_THREAD, /* Deliver via thread creation. */ -# define SIGEV_THREAD SIGEV_THREAD - - SIGEV_THREAD_ID = 4 /* Send signal to specific thread. */ -#define SIGEV_THREAD_ID SIGEV_THREAD_ID -}; - -#endif /* have _SIGNAL_H. */ diff --git a/sysdeps/unix/sysv/linux/ia64/bits/sigstack.h b/sysdeps/unix/sysv/linux/ia64/bits/sigstack.h deleted file mode 100644 index c9c9d2fedb..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/bits/sigstack.h +++ /dev/null @@ -1,63 +0,0 @@ -/* sigstack, sigaltstack definitions. - Copyright (C) 1998, 2000, 2002, 2003 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#ifndef _SIGNAL_H -# error "Never include this file directly. Use <signal.h> instead" -#endif - -#ifndef _SIGSTACK_H -#define _SIGSTACK_H 1 - -/* Structure describing a signal stack (obsolete). */ -struct sigstack - { - __ptr_t ss_sp; /* Signal stack pointer. */ - int ss_onstack; /* Nonzero if executing on this stack. */ - }; - - -/* Possible values for `ss_flags.'. */ -enum -{ - SS_ONSTACK = 1, -#define SS_ONSTACK SS_ONSTACK - SS_DISABLE -#define SS_DISABLE SS_DISABLE -}; - -/* Minimum stack size for a signal handler. - - Yes, this should be 131072 but the constant got defined incorrectly - in the kernel and we have to live with it. Users should in any case - use SIGSTKSZ as the size user-supplied buffers should have. */ -#define MINSIGSTKSZ 131027 - -/* System default stack size. */ -#define SIGSTKSZ 262144 - - -/* Alternate, preferred interface. */ -typedef struct sigaltstack - { - __ptr_t ss_sp; - int ss_flags; - size_t ss_size; - } stack_t; - -#endif /* bits/sigstack.h */ diff --git a/sysdeps/unix/sysv/linux/ia64/bits/stat.h b/sysdeps/unix/sysv/linux/ia64/bits/stat.h deleted file mode 100644 index 86acd27ae2..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/bits/stat.h +++ /dev/null @@ -1,150 +0,0 @@ -/* Copyright (C) 1999-2002, 2009, 2010 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#if !defined _SYS_STAT_H && !defined _FCNTL_H -# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead." -#endif - -#ifndef _BITS_STAT_H -#define _BITS_STAT_H 1 - -/* Versions of the `struct stat' data structure. */ -#define _STAT_VER_KERNEL 0 -#define _STAT_VER_LINUX 1 -#define _STAT_VER _STAT_VER_LINUX - -/* Versions of the `xmknod' interface. */ -#define _MKNOD_VER_LINUX 0 - -struct stat - { - __dev_t st_dev; /* Device. */ - __ino_t st_ino; /* File serial number. */ - __nlink_t st_nlink; /* Link count. */ - __mode_t st_mode; /* File mode. */ - __uid_t st_uid; /* User ID of the file's owner. */ - __gid_t st_gid; /* Group ID of the file's group.*/ - int pad0; - __dev_t st_rdev; /* Device number, if device. */ - __off_t st_size; /* Size of file, in bytes. */ -#ifdef __USE_MISC - /* Nanosecond resolution timestamps are stored in a format - equivalent to 'struct timespec'. This is the type used - whenever possible but the Unix namespace rules do not allow the - identifier 'timespec' to appear in the <sys/stat.h> header. - Therefore we have to handle the use of this header in strictly - standard-compliant sources special. */ - struct timespec st_atim; /* Time of last access. */ - struct timespec st_mtim; /* Time of last modification. */ - struct timespec st_ctim; /* Time of last status change. */ -# define st_atime st_atim.tv_sec /* Backward compatibility. */ -# define st_mtime st_mtim.tv_sec -# define st_ctime st_ctim.tv_sec -#else - __time_t st_atime; /* Time of last access. */ - unsigned long int st_atimensec; /* Nscecs of last access. */ - __time_t st_mtime; /* Time of last modification. */ - unsigned long int st_mtimensec; /* Nsecs of last modification. */ - __time_t st_ctime; /* Time of last status change. */ - unsigned long int st_ctimensec; /* Nsecs of last status change. */ -#endif - __blksize_t st_blksize; /* Optimal block size for I/O. */ - __blkcnt_t st_blocks; /* Nr. 512-byte blocks allocated. */ - long int __unused[3]; - }; - -#ifdef __USE_LARGEFILE64 -/* Note stat64 is the same shape as stat. */ -struct stat64 - { - __dev_t st_dev; /* Device. */ - __ino64_t st_ino; /* File serial number. */ - __nlink_t st_nlink; /* Link count. */ - __mode_t st_mode; /* File mode. */ - __uid_t st_uid; /* User ID of the file's owner. */ - __gid_t st_gid; /* Group ID of the file's group.*/ - int pad0; - __dev_t st_rdev; /* Device number, if device. */ - __off_t st_size; /* Size of file, in bytes. */ -#ifdef __USE_MISC - /* Nanosecond resolution timestamps are stored in a format - equivalent to 'struct timespec'. This is the type used - whenever possible but the Unix namespace rules do not allow the - identifier 'timespec' to appear in the <sys/stat.h> header. - Therefore we have to handle the use of this header in strictly - standard-compliant sources special. */ - struct timespec st_atim; /* Time of last access. */ - struct timespec st_mtim; /* Time of last modification. */ - struct timespec st_ctim; /* Time of last status change. */ -# define st_atime st_atim.tv_sec /* Backward compatibility. */ -# define st_mtime st_mtim.tv_sec -# define st_ctime st_ctim.tv_sec -#else - __time_t st_atime; /* Time of last access. */ - unsigned long int st_atimensec; /* Nscecs of last access. */ - __time_t st_mtime; /* Time of last modification. */ - unsigned long int st_mtimensec; /* Nsecs of last modification. */ - __time_t st_ctime; /* Time of last status change. */ - unsigned long int st_ctimensec; /* Nsecs of last status change. */ -#endif - __blksize_t st_blksize; /* Optimal block size for I/O. */ - __blkcnt64_t st_blocks; /* Nr. 512-byte blocks allocated. */ - long int __unused[3]; - }; -#endif - -/* Tell code we have these members. */ -#define _STATBUF_ST_BLKSIZE -#define _STATBUF_ST_RDEV -/* Nanosecond resolution time values are supported. */ -#define _STATBUF_ST_NSEC - -/* Encoding of the file mode. */ - -#define __S_IFMT 0170000 /* These bits determine file type. */ - -/* File types. */ -#define __S_IFDIR 0040000 /* Directory. */ -#define __S_IFCHR 0020000 /* Character device. */ -#define __S_IFBLK 0060000 /* Block device. */ -#define __S_IFREG 0100000 /* Regular file. */ -#define __S_IFIFO 0010000 /* FIFO. */ -#define __S_IFLNK 0120000 /* Symbolic link. */ -#define __S_IFSOCK 0140000 /* Socket. */ - -/* POSIX.1b objects. Note that these macros always evaluate to zero. But - they do it by enforcing the correct use of the macros. */ -#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode) -#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode) -#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode) - -/* Protection bits. */ - -#define __S_ISUID 04000 /* Set user ID on execution. */ -#define __S_ISGID 02000 /* Set group ID on execution. */ -#define __S_ISVTX 01000 /* Save swapped text after use (sticky). */ -#define __S_IREAD 0400 /* Read by owner. */ -#define __S_IWRITE 0200 /* Write by owner. */ -#define __S_IEXEC 0100 /* Execute by owner. */ - -#ifdef __USE_ATFILE -# define UTIME_NOW ((1l << 30) - 1l) -# define UTIME_OMIT ((1l << 30) - 2l) -#endif - -#endif /* bits//stat.h */ diff --git a/sysdeps/unix/sysv/linux/ia64/brk.S b/sysdeps/unix/sysv/linux/ia64/brk.S deleted file mode 100644 index 0e4114a331..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/brk.S +++ /dev/null @@ -1,52 +0,0 @@ -/* brk system call for Linux/ia64 - Copyright (C) 1999,2000,2001,2003 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Written by Stephane Eranian <eranian@hpl.hp.com> and - Jes Sorensen, <Jes.Sorensen@cern.ch>, April 1999. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <sysdep.h> - -#include <asm/unistd.h> -#include <asm/errno.h> - - .global __curbrk - .type __curbrk,@object - .size __curbrk,8 - .data - .align 8 -__curbrk: - data8 0 - -weak_alias (__curbrk, ___brk_addr) - -LEAF(__brk) - .regstk 1, 0, 0, 0 - DO_CALL(__NR_brk) - cmp.ltu p6, p0 = ret0, in0 - addl r9 = @ltoff(__curbrk), gp - ;; - ld8 r9 = [r9] -(p6) mov ret0 = ENOMEM -(p6) br.cond.spnt.few __syscall_error - ;; - st8 [r9] = ret0 - mov ret0 = 0 - ret -END(__brk) - -weak_alias (__brk, brk) diff --git a/sysdeps/unix/sysv/linux/ia64/bsd-_setjmp.S b/sysdeps/unix/sysv/linux/ia64/bsd-_setjmp.S deleted file mode 100644 index 4e6a2da560..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/bsd-_setjmp.S +++ /dev/null @@ -1 +0,0 @@ -/* _setjmp is in setjmp.S */ diff --git a/sysdeps/unix/sysv/linux/ia64/bsd-setjmp.S b/sysdeps/unix/sysv/linux/ia64/bsd-setjmp.S deleted file mode 100644 index 1da848d2f1..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/bsd-setjmp.S +++ /dev/null @@ -1 +0,0 @@ -/* setjmp is in setjmp.S */ diff --git a/sysdeps/unix/sysv/linux/ia64/clock_getcpuclockid.c b/sysdeps/unix/sysv/linux/ia64/clock_getcpuclockid.c deleted file mode 100644 index 2f39851535..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/clock_getcpuclockid.c +++ /dev/null @@ -1,32 +0,0 @@ -/* clock_getcpuclockid -- Get a clockid_t for process CPU time. Linux/IA64 - Copyright (C) 2000,2001,2003,2004 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <errno.h> -#include <time.h> -#include <unistd.h> -#include <sys/stat.h> -#include <sys/types.h> -#include <fcntl.h> - - -#include "has_cpuclock.c" - -#define HAS_CPUCLOCK (has_cpuclock () > 0) - -#include <sysdeps/unix/sysv/linux/clock_getcpuclockid.c> diff --git a/sysdeps/unix/sysv/linux/ia64/clone.S b/sysdeps/unix/sysv/linux/ia64/clone.S deleted file mode 100644 index 0cfaeab64e..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/clone.S +++ /dev/null @@ -1 +0,0 @@ -/* clone is not supported under Linux/ia64, use clone2. */ diff --git a/sysdeps/unix/sysv/linux/ia64/clone2.S b/sysdeps/unix/sysv/linux/ia64/clone2.S deleted file mode 100644 index d38eb201ad..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/clone2.S +++ /dev/null @@ -1,106 +0,0 @@ -/* Copyright (C) 2000, 2001, 2003, 2004, 2006 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - - -#include <sysdep.h> -#include <asm/errno.h> - - -/* int __clone2(int (*fn) (void *arg), void *child_stack_base, */ -/* size_t child_stack_size, int flags, void *arg, */ -/* pid_t *parent_tid, void *tls, pid_t *child_tid) */ - -#define CHILD p8 -#define PARENT p9 - -ENTRY(__clone2) - .prologue - alloc r2=ar.pfs,8,1,6,0 - cmp.eq p6,p0=0,in0 - cmp.eq p7,p0=0,in1 - mov r8=EINVAL - mov out0=in3 /* Flags are first syscall argument. */ - mov out1=in1 /* Stack address. */ -(p6) br.cond.spnt.many __syscall_error /* no NULL function pointers */ -(p7) br.cond.spnt.many __syscall_error /* no NULL stack pointers */ - ;; - mov out2=in2 /* Stack size. */ - mov out3=in5 /* Parent TID Pointer */ - mov out4=in7 /* Child TID Pointer */ - mov out5=in6 /* TLS pointer */ - /* - * clone2() is special: the child cannot execute br.ret right - * after the system call returns, because it starts out - * executing on an empty stack. Because of this, we can't use - * the new (lightweight) syscall convention here. Instead, we - * just fall back on always using "break". - * - * Furthermore, since the child starts with an empty stack, we - * need to avoid unwinding past invalid memory. To that end, - * we'll pretend now that __clone2() is the end of the - * call-chain. This is wrong for the parent, but only until - * it returns from clone2() but it's better than the - * alternative. - */ - mov r15=SYS_ify (clone2) - .save rp, r0 - break __BREAK_SYSCALL - .body - cmp.eq p6,p0=-1,r10 - cmp.eq CHILD,PARENT=0,r8 /* Are we the child? */ -(p6) br.cond.spnt.many __syscall_error - ;; -(CHILD) mov loc0=gp -(PARENT) ret - ;; -#ifdef RESET_PID - tbit.nz p6,p0=in3,16 /* CLONE_THREAD */ - tbit.z p7,p10=in3,8 /* CLONE_VM */ -(p6) br.cond.dptk 1f - ;; - mov r15=SYS_ify (getpid) -(p10) addl r8=-1,r0 -(p7) break __BREAK_SYSCALL - ;; - add r9=PID,r13 - add r10=TID,r13 - ;; - st4 [r9]=r8 - st4 [r10]=r8 - ;; -#endif -1: ld8 out1=[in0],8 /* Retrieve code pointer. */ - mov out0=in4 /* Pass proper argument to fn */ - ;; - ld8 gp=[in0] /* Load function gp. */ - mov b6=out1 - br.call.dptk.many rp=b6 /* Call fn(arg) in the child */ - ;; - mov out0=r8 /* Argument to _exit */ - mov gp=loc0 - .globl HIDDEN_JUMPTARGET(_exit) - br.call.dpnt.many rp=HIDDEN_JUMPTARGET(_exit) - /* call _exit with result from fn. */ - ret /* Not reached. */ -PSEUDO_END(__clone2) - -/* For now we leave __clone undefined. This is unlikely to be a */ -/* problem, since at least the i386 __clone in glibc always failed */ -/* with a 0 sp (eventhough the kernel explicitly handled it). */ -/* Thus all such calls needed to pass an explicit sp, and as a result, */ -/* would be unlikely to work on ia64. */ diff --git a/sysdeps/unix/sysv/linux/ia64/dl-brk.S b/sysdeps/unix/sysv/linux/ia64/dl-brk.S deleted file mode 100644 index eeb96544e3..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/dl-brk.S +++ /dev/null @@ -1 +0,0 @@ -#include <brk.S> diff --git a/sysdeps/unix/sysv/linux/ia64/dl-cache.h b/sysdeps/unix/sysv/linux/ia64/dl-cache.h deleted file mode 100644 index b8e2790589..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/dl-cache.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Support for reading /etc/ld.so.cache files written by Linux ldconfig. - Copyright (C) 2000 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#define _DL_CACHE_DEFAULT_ID 0x203 - -#define _dl_cache_check_flags(flags) \ - ((flags) == _DL_CACHE_DEFAULT_ID) - -#include_next <dl-cache.h> diff --git a/sysdeps/unix/sysv/linux/ia64/dl-static.c b/sysdeps/unix/sysv/linux/ia64/dl-static.c deleted file mode 100644 index 4efc077032..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/dl-static.c +++ /dev/null @@ -1,69 +0,0 @@ -/* Variable initialization. IA-64 version. - Copyright (C) 2001, 2002, 2003, 2004 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <ldsodefs.h> - -#ifdef SHARED - -void -_dl_var_init (void *array[]) -{ - /* It has to match "variables" below. */ - enum - { - DL_PAGESIZE = 0, - DL_CLKTCK - }; - - GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]); - GLRO(dl_clktck) = *((int *) array[DL_CLKTCK]); -} - -#else -#include <bits/libc-lock.h> - -__libc_lock_define_initialized_recursive (static, _dl_static_lock) - -static void *variables[] = -{ - &GLRO(dl_pagesize), - &GLRO(dl_clktck) -}; - -void -_dl_static_init (struct link_map *map) -{ - const ElfW(Sym) *ref = NULL; - lookup_t loadbase; - void (*f) (void *[]); - - __libc_lock_lock_recursive (_dl_static_lock); - - loadbase = _dl_lookup_symbol_x ("_dl_var_init", map, &ref, - map->l_local_scope, NULL, 0, 1, NULL); - if (ref != NULL) - { - f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref); - f (variables); - } - - __libc_lock_unlock_recursive (_dl_static_lock); -} - -#endif diff --git a/sysdeps/unix/sysv/linux/ia64/fork.S b/sysdeps/unix/sysv/linux/ia64/fork.S deleted file mode 100644 index 0a57ab0d13..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/fork.S +++ /dev/null @@ -1,41 +0,0 @@ -/* Copyright (C) 2000, 2002 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - - -#include <sysdep.h> -#define _SIGNAL_H -#include <bits/signum.h> - -/* pid_t fork(void); */ -/* Implemented as a clone system call with parameters SIGCHLD and 0 */ - -ENTRY(__libc_fork) - alloc r2=ar.pfs,0,0,2,0 - mov out0=SIGCHLD /* Return SIGCHLD when child finishes */ - /* no other clone flags; nothing shared */ - mov out1=0 /* Standard sp value. */ - ;; - DO_CALL (SYS_ify (clone)) - cmp.eq p6,p0=-1,r10 -(p6) br.cond.spnt.few __syscall_error - ret -PSEUDO_END(__libc_fork) - -weak_alias (__libc_fork, __fork) -libc_hidden_def (__fork) -weak_alias (__libc_fork, fork) diff --git a/sysdeps/unix/sysv/linux/ia64/get_clockfreq.c b/sysdeps/unix/sysv/linux/ia64/get_clockfreq.c deleted file mode 100644 index 48abfc13f4..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/get_clockfreq.c +++ /dev/null @@ -1,89 +0,0 @@ -/* Get frequency of the system processor. IA-64/Linux version. - Copyright (C) 2001 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <ctype.h> -#include <fcntl.h> -#include <string.h> -#include <unistd.h> -#include <libc-internal.h> - - -hp_timing_t -__get_clockfreq (void) -{ - /* We read the information from the /proc filesystem. It contains at - least one line like - itc MHz : 733.390988 - We search for this line and convert the number in an integer. */ - static hp_timing_t result; - int fd; - - /* If this function was called before, we know the result. */ - if (result != 0) - return result; - - fd = open ("/proc/cpuinfo", O_RDONLY); - if (__builtin_expect (fd != -1, 1)) - { - /* XXX AFAIK the /proc filesystem can generate "files" only up - to a size of 4096 bytes. */ - char buf[4096]; - ssize_t n; - - n = read (fd, buf, sizeof buf); - if (__builtin_expect (n, 1) > 0) - { - char *mhz = memmem (buf, n, "itc MHz", 7); - - if (__builtin_expect (mhz != NULL, 1)) - { - char *endp = buf + n; - int seen_decpoint = 0; - int ndigits = 0; - - /* Search for the beginning of the string. */ - while (mhz < endp && (*mhz < '0' || *mhz > '9') && *mhz != '\n') - ++mhz; - - while (mhz < endp && *mhz != '\n') - { - if (*mhz >= '0' && *mhz <= '9') - { - result *= 10; - result += *mhz - '0'; - if (seen_decpoint) - ++ndigits; - } - else if (*mhz == '.') - seen_decpoint = 1; - - ++mhz; - } - - /* Compensate for missing digits at the end. */ - while (ndigits++ < 6) - result *= 10; - } - } - - close (fd); - } - - return result; -} diff --git a/sysdeps/unix/sysv/linux/ia64/getclktck.c b/sysdeps/unix/sysv/linux/ia64/getclktck.c deleted file mode 100644 index 6636bbe689..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/getclktck.c +++ /dev/null @@ -1,2 +0,0 @@ -#define SYSTEM_CLK_TCK 1024 -#include <sysdeps/unix/sysv/linux/getclktck.c> diff --git a/sysdeps/unix/sysv/linux/ia64/getcontext.S b/sysdeps/unix/sysv/linux/ia64/getcontext.S deleted file mode 100644 index 4e18bace2d..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/getcontext.S +++ /dev/null @@ -1,158 +0,0 @@ -/* Copyright (C) 2001, 2002 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by David Mosberger-Tang <davidm@hpl.hp.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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <sysdep.h> -#include <features.h> - -#include "ucontext_i.h" - -/* __getcontext (ucontext_t *ucp) - - Saves the machine context in UCP such that when it is activated, - it appears as if __getcontext() returned again. The only difference - is that on a first return, r9 contains 1 and on a subsequent - return, it contains 0. - - This implementation in intended to be used for *synchronous* context - switches only. Therefore, it does not have to save anything - other than the PRESERVED state. */ - -ENTRY(__getcontext) - .prologue - .body - alloc r11 = ar.pfs, 1, 0, 4, 0 - - // sigprocmask (SIG_BLOCK, NULL, &sc->sc_mask): - - mov r3 = SC_MASK - mov out0 = SIG_BLOCK - - flushrs // save dirty partition on rbs - mov out1 = 0 - add out2 = r3, in0 - - mov out3 = 8 // sizeof kernel sigset_t - DO_CALL(__NR_rt_sigprocmask) - - mov.m rFPSR = ar.fpsr - mov.m rRSC = ar.rsc - add r2 = SC_GR+1*8, r32 - ;; - mov.m rBSP = ar.bsp - .prologue - .save ar.unat, rUNAT - mov.m rUNAT = ar.unat - .body - add r3 = SC_GR+4*8, r32 - ;; - -.mem.offset 0,0; st8.spill [r2] = r1, (5*8 - 1*8) -.mem.offset 8,0; st8.spill [r3] = r4, 16 - mov rPFS = r11 - ;; -.mem.offset 0,0; st8.spill [r2] = r5, 16 -.mem.offset 8,0; st8.spill [r3] = r6, 48 - and rTMP = ~0x3, rRSC - ;; -.mem.offset 0,0; st8.spill [r2] = r7, (SC_FR+2*16-(SC_GR+7*8)) -.mem.offset 8,0; st8.spill [r3] = sp, (SC_FR+3*16-(SC_GR+12*8)) - ;; - mov.m ar.rsc = rTMP // put RSE into enforced lazy mode - mov.m rNAT = ar.unat - mov.i rLC = ar.lc - ;; - mov.m rRNAT = ar.rnat - mov.m ar.rsc = rRSC // restore RSE mode - mov rPR = pr - - /* - * Rotate NaT bits by rPOS positions to the right: - */ - stf.spill [r2] = f2, 32 - stf.spill [r3] = f3, 32 - add rPOS = SC_GR, r32 // rPOS <- &sc_gr[0] - ;; - stf.spill [r2] = f4, (16*16-4*16) - stf.spill [r3] = f5, (17*16-5*16) - extr.u rPOS = rPOS, 3, 6 // get NaT bit number for r0 - ;; - stf.spill [r2] = f16, 32 - stf.spill [r3] = f17, 32 - sub rCPOS = 64, rPOS - ;; - stf.spill [r2] = f18, 32 - stf.spill [r3] = f19, 32 - shr.u rTMP = rNAT, rPOS - ;; - stf.spill [r2] = f20, 32 - stf.spill [r3] = f21, 32 - shl rNAT = rNAT, rCPOS - ;; - stf.spill [r2] = f22, 32 - stf.spill [r3] = f23, 32 - or rNAT = rNAT, rTMP - ;; - stf.spill [r2] = f24, 32 - stf.spill [r3] = f25, 32 - mov r8 = 0 - ;; - stf.spill [r2] = f26, 32 - stf.spill [r3] = f27, 32 - mov r9 = 1 - ;; - stf.spill [r2] = f28, 32 - stf.spill [r3] = f29, 32 - mov rB0 = b0 - ;; - stf.spill [r2] = f30, 32 - stf.spill [r3] = f31, 32 - mov rB1 = b1 - ;; - mov ar.unat = rUNAT // we're done spilling integer regs; restore caller's UNaT - add r2 = SC_NAT, r32 - add r3 = SC_BSP, r32 - ;; - st8 [r2] = rNAT, (SC_RNAT-SC_NAT) - st8 [r3] = rBSP, (SC_UNAT-SC_BSP) - mov rB2 = b2 - ;; - st8 [r2] = rRNAT, (SC_FPSR-SC_RNAT) - st8 [r3] = rUNAT, (SC_PFS-SC_UNAT) - mov rB3 = b3 - ;; - st8 [r2] = rFPSR, (SC_LC-SC_FPSR) - st8 [r3] = rPFS, (SC_PR-SC_PFS) - mov rB4 = b4 - ;; - st8 [r2] = rLC, (SC_BR+0*8-SC_LC) - st8 [r3] = rPR, (SC_BR+1*8-SC_PR) - mov rB5 = b5 - ;; - st8 [r2] = rB0, 16 - st8 [r3] = rB1, 16 - ;; - st8 [r2] = rB2, 16 - st8 [r3] = rB3, 16 - ;; - st8 [r2] = rB4 - st8 [r3] = rB5 - ret -END(__getcontext) - -weak_alias (__getcontext, getcontext) diff --git a/sysdeps/unix/sysv/linux/ia64/getpagesize.c b/sysdeps/unix/sysv/linux/ia64/getpagesize.c deleted file mode 100644 index 1155dfdad1..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/getpagesize.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright (C) 1999, 2000, 2001, 2002, 2004 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <assert.h> -#include <unistd.h> -#include <sys/param.h> - -#include <ldsodefs.h> -#include <sysdep.h> -#include <sys/syscall.h> - -/* Return the system page size. The return value will depend on how - the kernel is configured. A program must use this call to - determine the page size to ensure proper alignment for calls such - as mmap and friends. --davidm 99/11/30 */ - -int -__getpagesize () -{ - assert (GLRO(dl_pagesize) != 0); - return GLRO(dl_pagesize); -} -libc_hidden_def (__getpagesize) -weak_alias (__getpagesize, getpagesize) diff --git a/sysdeps/unix/sysv/linux/ia64/has_cpuclock.c b/sysdeps/unix/sysv/linux/ia64/has_cpuclock.c deleted file mode 100644 index 39511cd2c5..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/has_cpuclock.c +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright (C) 2000, 2001, 2003, 2004, 2005 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <errno.h> -#include <fcntl.h> -#include <unistd.h> -#include <sys/stat.h> -#include <sys/types.h> -#include <not-cancel.h> - -static int itc_usable; - -static int -has_cpuclock (void) -{ - if (__builtin_expect (itc_usable == 0, 0)) - { - int newval = 1; - int fd = open_not_cancel_2 ("/proc/sal/itc_drift", O_RDONLY); - if (__builtin_expect (fd != -1, 1)) - { - char buf[16]; - /* We expect the file to contain a single digit followed by - a newline. If the format changes we better not rely on - the file content. */ - if (read_not_cancel (fd, buf, sizeof buf) != 2 - || buf[0] != '0' || buf[1] != '\n') - newval = -1; - - close_not_cancel_no_status (fd); - } - - itc_usable = newval; - } - - return itc_usable; -} diff --git a/sysdeps/unix/sysv/linux/ia64/ioperm.c b/sysdeps/unix/sysv/linux/ia64/ioperm.c deleted file mode 100644 index 89a0a36d3d..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/ioperm.c +++ /dev/null @@ -1,217 +0,0 @@ -/* Copyright (C) 1999, 2000, 2001, 2004 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by David Mosberger-Tang <davidm@hpl.hp.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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -/* I/O access is restricted to ISA port space (ports 0..65535). - Modern devices hopefully are sane enough not to put any performance - critical registers in i/o space. - - On the first call to ioperm() or iopl(), the entire (E)ISA port - space is mapped into the virtual address space at address io.base. - mprotect() calls are then used to enable/disable access to ports. - Per 4KB page, there are 4 I/O ports. */ - -#include <errno.h> -#include <fcntl.h> -#include <ctype.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> - -#include <sys/types.h> -#include <sys/mman.h> - -#define MAX_PORT 0x10000 - -/* - * Memory fence w/accept. This should never be used in code that is - * not IA-64 specific. - */ -#define __ia64_mf_a() __asm__ __volatile__ ("mf.a" ::: "memory") - -static struct - { - unsigned long int base; - unsigned long int page_mask; - } -io; - -__inline__ unsigned long int -io_offset (unsigned long int port) -{ - return ((port >> 2) << 12) | (port & 0xfff); -} - -int -_ioperm (unsigned long int from, unsigned long int num, int turn_on) -{ -#if 0 - unsigned long int addr, len, base; -#endif - unsigned long int base; - int prot; - - /* this test isn't as silly as it may look like; consider overflows! */ - if (from >= MAX_PORT || from + num > MAX_PORT) - { - __set_errno (EINVAL); - return -1; - } - - if (turn_on) - { - if (!io.base) - { - unsigned long phys_io_base, len; - int fd; - - io.page_mask = ~(__getpagesize() - 1); - - /* get I/O base physical address from ar.k0 as per PRM: */ - __asm__ ("mov %0=ar.k0" : "=r"(phys_io_base)); - - /* The O_SYNC flag tells the /dev/mem driver to map the - memory uncached: */ - fd = __open ("/dev/mem", O_RDWR | O_SYNC); - if (fd < 0) - return -1; - - len = io_offset (MAX_PORT); -#if 1 - /* see comment below */ - base = (unsigned long int) __mmap (0, len, PROT_READ | PROT_WRITE, MAP_SHARED, - fd, phys_io_base); -#else - base = (unsigned long int) __mmap (0, len, PROT_NONE, MAP_SHARED, - fd, phys_io_base); -#endif - __close (fd); - - if ((long) base == -1) - return -1; - - io.base = base; - } - prot = PROT_READ | PROT_WRITE; - } - else - { - if (!io.base) - return 0; /* never was turned on... */ - - prot = PROT_NONE; - } -#if 0 - /* We can't do mprotect because that would cause us to lose the - uncached flag that the /dev/mem driver turned on. A MAP_UNCACHED - flag seems so much cleaner... */ - addr = (io.base + io_offset (from)) & io.page_mask; - len = io.base + io_offset (from + num) - addr; - return mprotect ((void *) addr, len, prot); -#else - return 0; -#endif -} - -int -_iopl (unsigned int level) -{ - if (level > 3) - { - __set_errno (EINVAL); - return -1; - } - if (level) - { - int retval = _ioperm (0, MAX_PORT, 1); - /* Match the documented error returns of the x86 version. */ - if (retval < 0 && errno == EACCES) - __set_errno (EPERM); - return retval; - } - return 0; -} - -unsigned int -_inb (unsigned long int port) -{ - volatile unsigned char *addr = (void *) io.base + io_offset (port); - unsigned char ret; - - ret = *addr; - __ia64_mf_a(); - return ret; -} - -unsigned int -_inw (unsigned long int port) -{ - volatile unsigned short *addr = (void *) io.base + io_offset (port); - unsigned short ret; - - ret = *addr; - __ia64_mf_a(); - return ret; -} - -unsigned int -_inl (unsigned long int port) -{ - volatile unsigned int *addr = (void *) io.base + io_offset (port); - unsigned int ret; - - ret = *addr; - __ia64_mf_a(); - return ret; -} - -void -_outb (unsigned char val, unsigned long int port) -{ - volatile unsigned char *addr = (void *) io.base + io_offset (port); - - *addr = val; - __ia64_mf_a(); -} - -void -_outw (unsigned short val, unsigned long int port) -{ - volatile unsigned short *addr = (void *) io.base + io_offset (port); - - *addr = val; - __ia64_mf_a(); -} - -void -_outl (unsigned int val, unsigned long int port) -{ - volatile unsigned int *addr = (void *) io.base + io_offset (port); - - *addr = val; - __ia64_mf_a(); -} - -weak_alias (_ioperm, ioperm); -weak_alias (_iopl, iopl); -weak_alias (_inb, inb); -weak_alias (_inw, inw); -weak_alias (_inl, inl); -weak_alias (_outb, outb); -weak_alias (_outw, outw); -weak_alias (_outl, outl); diff --git a/sysdeps/unix/sysv/linux/ia64/kernel_stat.h b/sysdeps/unix/sysv/linux/ia64/kernel_stat.h deleted file mode 100644 index ef11dc94d4..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/kernel_stat.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Definition of `struct stat' used in the kernel. - Copyright (C) 2003 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#define STAT_IS_KERNEL_STAT 1 -#define XSTAT_IS_XSTAT64 1 diff --git a/sysdeps/unix/sysv/linux/ia64/ldconfig.h b/sysdeps/unix/sysv/linux/ia64/ldconfig.h deleted file mode 100644 index af194898ba..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/ldconfig.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright (C) 2001 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <sysdeps/generic/ldconfig.h> - -#define SYSDEP_KNOWN_INTERPRETER_NAMES \ - { "/lib/ld-linux.so.2", FLAG_ELF_LIBC6 }, -#define SYSDEP_KNOWN_LIBRARY_NAMES \ - { "libc.so.6", FLAG_ELF_LIBC6 }, \ - { "libm.so.6", FLAG_ELF_LIBC6 }, diff --git a/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed b/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed deleted file mode 100644 index 535d1671e3..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed +++ /dev/null @@ -1 +0,0 @@ -s_^\(RTLDLIST=\)\([^ ]*\)-ia64\(\.so\.[0-9.]*\)[ ]*$_\1"\2-ia64\3 \2\3"_ diff --git a/sysdeps/unix/sysv/linux/ia64/ldsodefs.h b/sysdeps/unix/sysv/linux/ia64/ldsodefs.h deleted file mode 100644 index 31af62491e..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/ldsodefs.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Run-time dynamic linker data structures for loaded ELF shared objects. IA64. - Copyright (C) 2001 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#ifndef _LDSODEFS_H - -/* Get the real definitions. */ -#include_next <ldsodefs.h> - -/* Now define our stuff. */ - -/* We need special support to initialize DSO loaded for statically linked - binaries. */ -extern void _dl_static_init (struct link_map *map); -#undef DL_STATIC_INIT -#define DL_STATIC_INIT(map) _dl_static_init (map) - -#endif /* ldsodefs.h */ diff --git a/sysdeps/unix/sysv/linux/ia64/makecontext.c b/sysdeps/unix/sysv/linux/ia64/makecontext.c deleted file mode 100644 index d7a2a9f15d..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/makecontext.c +++ /dev/null @@ -1,93 +0,0 @@ -/* Copyright (C) 2001 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by David Mosberger-Tang <davidm@hpl.hp.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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <libintl.h> -#include <stdarg.h> -#include <stdio.h> -#include <stdlib.h> -#include <ucontext.h> -#include <sys/rse.h> - - -struct fdesc - { - unsigned long ip; - unsigned long gp; - }; - -#define PUSH(val) \ -do { \ - if (ia64_rse_is_rnat_slot (rbs)) \ - *rbs++ = 0; \ - *rbs++ = (val); \ -} while (0) - - -/* This implementation can handle an ARGC value of at most 8 and - values can be passed only in integer registers (r32-r39). */ - -void -__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...) -{ - struct sigcontext *sc = &ucp->uc_mcontext; - extern void __start_context (ucontext_t *link, long gp, ...); - unsigned long stack_start, stack_end; - va_list ap; - long *rbs; - int i; - - stack_start = (long) sc->sc_stack.ss_sp; - stack_end = (long) sc->sc_stack.ss_sp + sc->sc_stack.ss_size; - - stack_start = (stack_start + 7) & -8; - stack_end = stack_end & -16; - - if (argc > 8) - { - fprintf (stderr, _("\ -makecontext: does not know how to handle more than 8 arguments\n")); - exit (-1); - } - - /* set the entry point and global pointer: */ - sc->sc_br[0] = ((struct fdesc *) &__start_context)->ip; - sc->sc_br[1] = ((struct fdesc *) func)->ip; - sc->sc_gr[1] = ((struct fdesc *) func)->gp; - - /* set up the call frame: */ - sc->sc_ar_pfs = ((sc->sc_ar_pfs & ~0x3fffffffffUL) - | (argc + 2) | ((argc + 2) << 7)); - rbs = (long *) stack_start; - PUSH((long) ucp->uc_link); - PUSH(((struct fdesc *) &__start_context)->gp); - va_start (ap, argc); - for (i = 0; i < argc; ++i) - PUSH(va_arg (ap, long)); - va_end (ap); - - /* set the memory and register stack pointers: */ - sc->sc_ar_bsp = (long) rbs; - sc->sc_gr[12] = stack_end - 16; - - /* clear the NaT bits for r1 and r12: */ - sc->sc_nat &= ~((1 << 1) | (1 << 12)); - sc->sc_ar_rnat = 0; -} - -weak_alias (__makecontext, makecontext) diff --git a/sysdeps/unix/sysv/linux/ia64/pipe.S b/sysdeps/unix/sysv/linux/ia64/pipe.S deleted file mode 100644 index 60624df3cb..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/pipe.S +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by David Mosberger <davidm@hpl.hp.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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -/* __pipe is a special syscall since it returns two values. */ - -#include <sysdep.h> - -ENTRY(__pipe) - .regstk 1,0,0,0 - DO_CALL (SYS_ify (pipe)) - cmp.ne p6,p0=-1,r10 - ;; -(p6) st4 [in0]=r8,4 -(p6) mov ret0=0 - ;; -(p6) st4 [in0]=r9 -(p6) ret - br.cond.spnt.few __syscall_error -PSEUDO_END(__pipe) - -libc_hidden_def (__pipe) -weak_alias (__pipe, pipe) diff --git a/sysdeps/unix/sysv/linux/ia64/profil-counter.h b/sysdeps/unix/sysv/linux/ia64/profil-counter.h deleted file mode 100644 index bc9a8433f1..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/profil-counter.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Machine-dependent SIGPROF signal handler. IA-64 version. - Copyright (C) 1996, 1997, 2000 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -/* In many Unix systems signal handlers are called like this - and the interrupted PC is easily findable in the `struct sigcontext'. */ - -static void -profil_counter (int signr, siginfo_t *si, struct sigcontext *scp) -{ - unsigned long ip = scp->sc_ip & ~0X3ULL, slot = scp->sc_ip & 0x3ull; - - /* Note: Linux/ia64 encodes the slot number in bits 0 and 1. We - want to multiply the slot number by four so we can use bins of - width 4 to get accurate instruction-level profiling. */ - profil_count ((void *) (ip + 4*slot)); -} diff --git a/sysdeps/unix/sysv/linux/ia64/readelflib.c b/sysdeps/unix/sysv/linux/ia64/readelflib.c deleted file mode 100644 index 7a10d23c90..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/readelflib.c +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright (C) 2000, 2001, 2005 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - - -int process_elf32_file (const char *file_name, const char *lib, int *flag, - unsigned int *osversion, char **soname, - void *file_contents, size_t file_length); -int process_elf64_file (const char *file_name, const char *lib, int *flag, - unsigned int *osversion, char **soname, - void *file_contents, size_t file_length); - -/* Returns 0 if everything is ok, != 0 in case of error. */ -int -process_elf_file (const char *file_name, const char *lib, int *flag, - unsigned int *osversion, char **soname, - void *file_contents, size_t file_length) -{ - ElfW(Ehdr) *elf_header = (ElfW(Ehdr) *) file_contents; - int ret; - - if (elf_header->e_ident [EI_CLASS] == ELFCLASS32) - return process_elf32_file (file_name, lib, flag, osversion, soname, - file_contents, file_length); - else - { - ret = process_elf64_file (file_name, lib, flag, osversion, soname, - file_contents, file_length); - /* Intel 64bit libraries are always libc.so.6+. */ - if (!ret) - *flag = FLAG_IA64_LIB64|FLAG_ELF_LIBC6; - return ret; - } -} - -#undef __ELF_NATIVE_CLASS -#undef process_elf_file -#define process_elf_file process_elf32_file -#define __ELF_NATIVE_CLASS 32 -#include "elf/readelflib.c" - -#undef __ELF_NATIVE_CLASS -#undef process_elf_file -#define process_elf_file process_elf64_file -#define __ELF_NATIVE_CLASS 64 -#include "elf/readelflib.c" diff --git a/sysdeps/unix/sysv/linux/ia64/register-dump.h b/sysdeps/unix/sysv/linux/ia64/register-dump.h deleted file mode 100644 index 513db974f8..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/register-dump.h +++ /dev/null @@ -1,182 +0,0 @@ -/* Dump registers. - Copyright (C) 2004 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Jakub Jelinek <jakub@redhat.com>, 2004. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <string.h> -#include <sys/uio.h> -#include <stdio-common/_itoa.h> - -/* We will print the register dump in this format: - - GP: XXXXXXXXXXXXXXXX R2: XXXXXXXXXXXXXXXX R3: XXXXXXXXXXXXXXXX - R8: XXXXXXXXXXXXXXXX R9: XXXXXXXXXXXXXXXX R10: XXXXXXXXXXXXXXXX - R11: XXXXXXXXXXXXXXXX SP: XXXXXXXXXXXXXXXX TP: XXXXXXXXXXXXXXXX - R14: XXXXXXXXXXXXXXXX R15: XXXXXXXXXXXXXXXX R16: XXXXXXXXXXXXXXXX - R17: XXXXXXXXXXXXXXXX R18: XXXXXXXXXXXXXXXX R19: XXXXXXXXXXXXXXXX - R20: XXXXXXXXXXXXXXXX R21: XXXXXXXXXXXXXXXX R22: XXXXXXXXXXXXXXXX - R23: XXXXXXXXXXXXXXXX R24: XXXXXXXXXXXXXXXX R25: XXXXXXXXXXXXXXXX - R26: XXXXXXXXXXXXXXXX R27: XXXXXXXXXXXXXXXX R28: XXXXXXXXXXXXXXXX - R29: XXXXXXXXXXXXXXXX R30: XXXXXXXXXXXXXXXX R31: XXXXXXXXXXXXXXXX - - RP: XXXXXXXXXXXXXXXX B6: XXXXXXXXXXXXXXXX B7: XXXXXXXXXXXXXXXX - - IP: XXXXXXXXXXXXXXXX RSC: XXXXXXXXXXXXXXXX PR: XXXXXXXXXXXXXXXX - PFS: XXXXXXXXXXXXXXXX UNAT: XXXXXXXXXXXXXXXX CFM: XXXXXXXXXXXXXXXX - CCV: XXXXXXXXXXXXXXXX FPSR: XXXXXXXXXXXXXXXX - - F32: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX F33: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - F34: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX F35: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -... - F124: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX F125: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - F126: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX F127: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - */ - -static void -hexvalue (unsigned long int value, char *buf, size_t len) -{ - char *cp = _itoa_word (value, buf + len, 16, 0); - while (cp > buf) - *--cp = '0'; -} - -static void -regvalue (unsigned long int *value, char letter, int regno, char *buf) -{ - int n = regno >= 100 ? 3 : regno >= 10 ? 2 : 1; - buf[0] = ' '; - buf[1] = letter; - _itoa_word (regno, buf + 2 + n, 10, 0); - buf[2 + n] = ':'; - for (++n; n <= 4; ++n) - buf[2 + n] = ' '; - hexvalue (value[0], buf + 7, 16); - if (letter == 'F') - { - hexvalue (value[1], buf + 7 + 16, 16); - buf[7 + 32] = '\n'; - } - else - buf[7 + 16] = '\n'; -} - -static void -register_dump (int fd, struct sigcontext *ctx) -{ - char gpregs[32 - 5][8 + 16]; - char fpregs[128 - 32][8 + 32]; - char bpregs[3][8 + 16]; - char spregs[8][16]; - struct iovec iov[146]; - size_t nr = 0; - int i; - -#define ADD_STRING(str) \ - do \ - { \ - iov[nr].iov_base = (char *) str; \ - iov[nr].iov_len = strlen (str); \ - ++nr; \ - } \ - while (0) -#define ADD_MEM(str, len) \ - do \ - { \ - iov[nr].iov_base = str; \ - iov[nr].iov_len = len; \ - ++nr; \ - } \ - while (0) - - /* Generate strings of register contents. */ - for (i = 1; i < 4; ++i) - { - regvalue (&ctx->sc_gr[i], 'R', i, gpregs[i - 1]); - if (ctx->sc_nat & (1L << i)) - memcpy (gpregs[i - 1] + 7, "NaT ", 16); - } - for (i = 8; i < 32; ++i) - { - regvalue (&ctx->sc_gr[i], 'R', i, gpregs[i - 5]); - if (ctx->sc_nat & (1L << i)) - memcpy (gpregs[i - 1] + 7, "NaT ", 16); - } - memcpy (gpregs[0] + 1, "GP:", 3); - memcpy (gpregs[7] + 1, "SP: ", 4); - memcpy (gpregs[8] + 1, "TP: ", 4); - - regvalue (&ctx->sc_br[0], 'B', 0, bpregs[0]); - regvalue (&ctx->sc_br[6], 'B', 6, bpregs[1]); - regvalue (&ctx->sc_br[7], 'B', 7, bpregs[2]); - memcpy (bpregs[0] + 1, "RP:", 3); - - if (ctx->sc_flags & IA64_SC_FLAG_FPH_VALID) - for (i = 32; i < 128; ++i) - regvalue (&ctx->sc_fr[i].u.bits[0], 'F', i, fpregs[i - 32]); - - hexvalue (ctx->sc_ip, spregs[0], sizeof (spregs[0])); - hexvalue (ctx->sc_ar_rsc, spregs[1], sizeof (spregs[1])); - hexvalue (ctx->sc_pr, spregs[2], sizeof (spregs[2])); - hexvalue (ctx->sc_ar_pfs, spregs[3], sizeof (spregs[3])); - hexvalue (ctx->sc_ar_unat, spregs[4], sizeof (spregs[4])); - hexvalue (ctx->sc_cfm, spregs[5], sizeof (spregs[5])); - hexvalue (ctx->sc_ar_ccv, spregs[6], sizeof (spregs[6])); - hexvalue (ctx->sc_ar_fpsr, spregs[7], sizeof (spregs[7])); - - /* Generate the output. */ - ADD_STRING ("Register dump:\n\n"); - - for (i = 0; i < 32 - 5; ++i) - ADD_MEM (gpregs[i], sizeof (gpregs[0]) - 1 + ((i % 3) == 2)); - ADD_STRING ("\n"); - - for (i = 0; i < 3; ++i) - ADD_MEM (bpregs[i], sizeof (bpregs[0]) - 1); - - ADD_STRING ("\n\n IP: "); - ADD_MEM (spregs[0], sizeof (spregs[0])); - ADD_STRING (" RSC: "); - ADD_MEM (spregs[1], sizeof (spregs[0])); - ADD_STRING (" PR: "); - ADD_MEM (spregs[2], sizeof (spregs[0])); - ADD_STRING ("\n PFS: "); - ADD_MEM (spregs[3], sizeof (spregs[0])); - ADD_STRING (" UNAT: "); - ADD_MEM (spregs[4], sizeof (spregs[0])); - ADD_STRING (" CFM: "); - ADD_MEM (spregs[5], sizeof (spregs[0])); - ADD_STRING ("\n CCV: "); - ADD_MEM (spregs[6], sizeof (spregs[0])); - ADD_STRING (" FPSR: "); - ADD_MEM (spregs[7], sizeof (spregs[0])); - ADD_STRING ("\n"); - - if (ctx->sc_flags & IA64_SC_FLAG_FPH_VALID) - { - ADD_STRING ("\n"); - - for (i = 0; i < 128 - 32; ++i) - ADD_MEM (fpregs[i], sizeof (fpregs[0]) - 1 + (i & 1)); - } - - /* Write the stuff out. */ - writev (fd, iov, nr); -} - - -#define REGISTER_DUMP register_dump (fd, ctx) diff --git a/sysdeps/unix/sysv/linux/ia64/rt-sysdep.S b/sysdeps/unix/sysv/linux/ia64/rt-sysdep.S deleted file mode 100644 index f966bf1e59..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/rt-sysdep.S +++ /dev/null @@ -1 +0,0 @@ -#include <sysdep.S> diff --git a/sysdeps/unix/sysv/linux/ia64/setcontext.S b/sysdeps/unix/sysv/linux/ia64/setcontext.S deleted file mode 100644 index ef0a93c0c0..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/setcontext.S +++ /dev/null @@ -1,153 +0,0 @@ -/* Copyright (C) 2001, 2003 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by David Mosberger-Tang <davidm@hpl.hp.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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <sysdep.h> -#include <features.h> - -#include "ucontext_i.h" - -/* __setcontext (const ucontext_t *ucp) - - Restores the machine context in UCP and thereby resumes execution - in that context. - - This implementation in intended to be used for *synchronous* context - switches only. Therefore, it does not have to restore anything - other than the PRESERVED state. */ - -ENTRY(__setcontext) - .prologue - .body - alloc r11 = ar.pfs, 1, 0, 4, 0 - - // sigprocmask (SIG_SETMASK, &sc->sc_mask, NULL): - - mov r3 = SC_MASK - mov out0 = SIG_SETMASK - ;; - add out1 = r3, in0 - mov out2 = 0 - mov out3 = 8 // sizeof kernel sigset_t - - invala - DO_CALL(__NR_rt_sigprocmask) - add r2 = SC_NAT, r32 - - add r3 = SC_RNAT, r32 // r3 <- &sc_ar_rnat - add rPOS = SC_GR, r32 // rPOS <- &sc_gr[0] - ;; - ld8 rNAT = [r2], (SC_BSP-SC_NAT) - extr.u rPOS = rPOS, 3, 6 // get NaT bit number for r0 - ;; - ld8 rBSP = [r2], (SC_UNAT-SC_BSP) - ld8 rRNAT = [r3], (SC_FPSR-SC_RNAT) - /* - * Rotate NaT bits by rPOS positions to the left: - */ - sub rCPOS = 64, rPOS - ;; - ld8 rUNAT = [r2], (SC_PFS-SC_UNAT) - ld8 rFPSR = [r3], (SC_LC-SC_FPSR) - shl rTMP = rNAT, rPOS - ;; - ld8 rPFS = [r2], (SC_PR-SC_PFS) - ld8 rLC = [r3], (SC_BR+0*8-SC_LC) - shr.u rNAT = rNAT, rCPOS - ;; - ld8 rPR = [r2], (SC_BR+1*8-SC_PR) - ld8 rB0 = [r3], 16 - or rNAT = rNAT, rTMP - ;; - ld8 rB1 = [r2], 16 - ld8 rB2 = [r3], 16 - ;; - mov.m ar.unat = rNAT - mov.m rRSC = ar.rsc - ;; - ld8 rB3 = [r2], 16 - ld8 rB4 = [r3], (SC_GR+1*8-(SC_BR+4*8)) - ;; - ld8 rB5 = [r2], (SC_GR+4*8-(SC_BR+5*8)) - ld8.fill r1 = [r3], (5*8 - 1*8) - ;; - ld8.fill r4 = [r2], 16 - ld8.fill r5 = [r3], 16 - mov b0 = rB0 - ;; - ld8.fill r6 = [r2], 48 - ld8.fill r7 = [r3], (SC_FR+2*16-(SC_GR+7*8)) - ;; - ld8.fill sp = [r2], (SC_FR+3*16-(SC_GR+12*8)) - mov.m ar.fpsr = rFPSR - mov.i ar.pfs = rPFS - ;; - ldf.fill f3 = [r2], 16 - ldf.fill f2 = [r3], 48 - mov b1 = rB1 - ;; - ldf.fill f4 = [r2], (16*16-4*16) - ldf.fill f5 = [r3], (17*16-5*16) - mov b2 = rB2 - ;; - ldf.fill f16 = [r2], 32 - ldf.fill f17 = [r3], 32 - mov b3 = rB3 - ;; - ldf.fill f18 = [r2], 32 - ldf.fill f19 = [r3], 32 - mov b4 = rB4 - ;; - ldf.fill f20 = [r2], 32 - ldf.fill f21 = [r3], 32 - mov b5 = rB5 - ;; - ldf.fill f22 = [r2], 32 - ldf.fill f23 = [r3], 32 - mov r8 = 0 - ;; - ldf.fill f24 = [r2], 32 - ldf.fill f25 = [r3], 32 - mov r9 = 0 - ;; - ldf.fill f26 = [r2], 32 - ldf.fill f27 = [r3], 32 - dep rTMP = 0, rRSC, 16, 14 // clear ar.rsc.loadrs - ;; - ldf.fill f28 = [r2], 32 - ldf.fill f29 = [r3], 32 - and rTMP = ~0x3, rTMP // clear ar.rsc.mode - ;; - ldf.fill f30 = [r2], 32 - ldf.fill f31 = [r3], 32 - mov pr = rPR, -1 - ;; - mov.m ar.rsc = rTMP // put RSE into enforced lazy mode - ;; - loadrs // drop dirty partition - ;; - mov.m ar.bspstore = rBSP - mov.m ar.unat = rUNAT - mov.i ar.lc = rLC - ;; - mov.m ar.rnat = rRNAT - mov.m ar.rsc = rRSC - ret -END(__setcontext) - -weak_alias (__setcontext, setcontext) diff --git a/sysdeps/unix/sysv/linux/ia64/setjmp.S b/sysdeps/unix/sysv/linux/ia64/setjmp.S deleted file mode 100644 index 53f80d203e..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/setjmp.S +++ /dev/null @@ -1,199 +0,0 @@ -/* Copyright (C) 1999, 2000, 2001, 2002, 2004, 2005 - Free Software Foundation, Inc. - Contributed by David Mosberger-Tang <davidm@hpl.hp.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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. - - The layout of the jmp_buf is as follows. This is subject to change - and user-code should never depend on the particular layout of - jmp_buf! - - - offset: description: - ------- ------------ - 0x000 stack pointer (r12) ; unchangeable (see _JMPBUF_UNWINDS) - 0x008 r1 (gp) - 0x010 caller's unat - 0x018 fpsr - 0x020 r4 - 0x028 r5 - 0x030 r6 - 0x038 r7 - 0x040 rp (b0) - 0x048 b1 - 0x050 b2 - 0x058 b3 - 0x060 b4 - 0x068 b5 - 0x070 ar.pfs - 0x078 ar.lc - 0x080 pr - 0x088 ar.bsp ; unchangeable (see __longjmp.S) - 0x090 ar.unat - 0x098 &__jmp_buf ; address of the jmpbuf (needed to locate NaT bits in unat) - 0x0a0 f2 - 0x0b0 f3 - 0x0c0 f4 - 0x0d0 f5 - 0x0e0 f16 - 0x0f0 f17 - 0x100 f18 - 0x110 f19 - 0x120 f20 - 0x130 f21 - 0x130 f22 - 0x140 f23 - 0x150 f24 - 0x160 f25 - 0x170 f26 - 0x180 f27 - 0x190 f28 - 0x1a0 f29 - 0x1b0 f30 - 0x1c0 f31 */ - -#include <sysdep.h> -#include <features.h> - - /* The following two entry points are the traditional entry points: */ - -LEAF(setjmp) - alloc r8=ar.pfs,2,0,0,0 - mov in1=1 - br.cond.sptk.many _GI___sigsetjmp -END(setjmp) - -LEAF(_setjmp) - alloc r8=ar.pfs,2,0,0,0 - mov in1=0 - br.cond.sptk.many _GI___sigsetjmp -END(_setjmp) -libc_hidden_def (_setjmp) - - /* __sigsetjmp(__jmp_buf buf, int savemask) */ - -ENTRY(__sigsetjmp) - .prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(2) - alloc loc1=ar.pfs,2,5,2,0 - .save ar.unat, loc2 - mov loc2=ar.unat - ;; - mov r17=ar.fpsr - mov r2=in0 - add r3=8,in0 - ;; -.mem.offset 8,0; st8.spill.nta [r2]=sp,16 // r12 (sp) -.mem.offset 0,0; st8.spill.nta [r3]=gp,16 // r1 (gp) - ;; - st8.nta [r2]=loc2,16 // save caller's unat - st8.nta [r3]=r17,16 // save fpsr - add r8=0xa0,in0 - ;; -.mem.offset 8,0; st8.spill.nta [r2]=r4,16 // r4 -.mem.offset 0,0; st8.spill.nta [r3]=r5,16 // r5 - add r9=0xb0,in0 - ;; - stf.spill.nta [r8]=f2,32 - stf.spill.nta [r9]=f3,32 - mov loc0=rp - .body - ;; - stf.spill.nta [r8]=f4,32 - stf.spill.nta [r9]=f5,32 - mov r17=b1 - ;; - stf.spill.nta [r8]=f16,32 - stf.spill.nta [r9]=f17,32 - mov r18=b2 - ;; - stf.spill.nta [r8]=f18,32 - stf.spill.nta [r9]=f19,32 - mov r19=b3 - ;; - stf.spill.nta [r8]=f20,32 - stf.spill.nta [r9]=f21,32 - mov r20=b4 - ;; - stf.spill.nta [r8]=f22,32 - stf.spill.nta [r9]=f23,32 - mov r21=b5 - ;; - stf.spill.nta [r8]=f24,32 - stf.spill.nta [r9]=f25,32 - mov r22=ar.lc - ;; - stf.spill.nta [r8]=f26,32 - stf.spill.nta [r9]=f27,32 - mov r24=pr - ;; - stf.spill.nta [r8]=f28,32 - stf.spill.nta [r9]=f29,32 -#ifdef PTR_MANGLE - mov loc3=loc0 - ;; - PTR_MANGLE (loc3, loc4) -#else - ;; -#endif - stf.spill.nta [r8]=f30 - stf.spill.nta [r9]=f31 - -.mem.offset 8,0; st8.spill.nta [r2]=r6,16 // r6 -.mem.offset 0,0; st8.spill.nta [r3]=r7,16 // r7 - ;; - mov r23=ar.bsp - mov r25=ar.unat - mov out0=in0 - -#ifdef PTR_MANGLE - st8.nta [r2]=loc3,16 // b0 -#else - st8.nta [r2]=loc0,16 // b0 -#endif - st8.nta [r3]=r17,16 // b1 - mov out1=in1 - ;; - st8.nta [r2]=r18,16 // b2 - st8.nta [r3]=r19,16 // b3 - ;; - st8.nta [r2]=r20,16 // b4 - st8.nta [r3]=r21,16 // b5 - ;; - st8.nta [r2]=loc1,16 // ar.pfs - st8.nta [r3]=r22,16 // ar.lc - ;; - st8.nta [r2]=r24,16 // pr - st8.nta [r3]=r23,16 // ar.bsp - ;; - st8.nta [r2]=r25 // ar.unat - st8.nta [r3]=in0 // &__jmp_buf -#if defined NOT_IN_libc && defined IS_IN_rtld - /* In ld.so we never save the signal mask. */ - ;; -#else - br.call.dpnt.few rp=__sigjmp_save -#endif -.ret0: // force a new bundle ::q - mov.m ar.unat=loc2 // restore caller's unat - mov rp=loc0 - mov ar.pfs=loc1 - mov r8=0 - ret -END(__sigsetjmp) -strong_alias(__sigsetjmp, _GI___sigsetjmp) - -weak_extern(_setjmp) -weak_extern(setjmp) diff --git a/sysdeps/unix/sysv/linux/ia64/sigaction.c b/sysdeps/unix/sysv/linux/ia64/sigaction.c deleted file mode 100644 index fdbc93f0ed..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/sigaction.c +++ /dev/null @@ -1,59 +0,0 @@ -/* Copyright (C) 1997-2000,2002,2003,2005 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Linux/IA64 specific sigaction - Written by Jes Sorensen, <Jes.Sorensen@cern.ch>, April 1999. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -/* Linux/ia64 only has rt signals, thus we do not even want to try falling - back to the old style signals as the default Linux handler does. */ - -#include <errno.h> -#include <signal.h> -#include <string.h> - -#include <sysdep.h> -#include <sys/syscall.h> -#include <bp-checks.h> - -/* The variable is shared between all wrappers around signal handling - functions which have RT equivalents. This is the definition. */ - - -/* If ACT is not NULL, change the action for SIG to *ACT. - If OACT is not NULL, put the old action for SIG in *OACT. */ -int -__libc_sigaction (sig, act, oact) - int sig; - const struct sigaction *act; - struct sigaction *oact; -{ - /* XXX The size argument hopefully will have to be changed to the - real size of the user-level sigset_t. */ - return INLINE_SYSCALL (rt_sigaction, 4, sig, - CHECK_1_NULL_OK (act), CHECK_1_NULL_OK (oact), _NSIG / 8); -} -libc_hidden_def (__libc_sigaction) - -#ifdef WRAPPER_INCLUDE -# include WRAPPER_INCLUDE -#endif - -#ifndef LIBC_SIGACTION -weak_alias (__libc_sigaction, __sigaction) -libc_hidden_def (__sigaction) -weak_alias (__libc_sigaction, sigaction) -#endif diff --git a/sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym b/sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym deleted file mode 100644 index 943e68a667..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym +++ /dev/null @@ -1,16 +0,0 @@ -#include <stddef.h> -#include <sys/ucontext.h> - --- -SC_NAT offsetof (struct sigcontext, sc_nat) -SC_BSP offsetof (struct sigcontext, sc_ar_bsp) -SC_RNAT offsetof (struct sigcontext, sc_ar_rnat) -SC_UNAT offsetof (struct sigcontext, sc_ar_unat) -SC_FPSR offsetof (struct sigcontext, sc_ar_fpsr) -SC_PFS offsetof (struct sigcontext, sc_ar_pfs) -SC_LC offsetof (struct sigcontext, sc_ar_lc) -SC_PR offsetof (struct sigcontext, sc_pr) -SC_BR offsetof (struct sigcontext, sc_br) -SC_GR offsetof (struct sigcontext, sc_gr) -SC_FR offsetof (struct sigcontext, sc_fr) -SC_MASK offsetof (struct sigcontext, sc_mask) diff --git a/sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h b/sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h deleted file mode 100644 index 51c11e6b46..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (C) 2002, 2004 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#define SIGCONTEXT siginfo_t *_si, struct sigcontext * -#define SIGCONTEXT_EXTRA_ARGS _si, -#define GET_PC(ctx) ((ctx)->sc_ip) -#define GET_FRAME(ctx) ((void *) 0) -#define GET_STACK(ctx) ((void *) 0) - -#define CALL_SIGHANDLER(handler, signo, ctx) \ - (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx)) diff --git a/sysdeps/unix/sysv/linux/ia64/sigpending.c b/sysdeps/unix/sysv/linux/ia64/sigpending.c deleted file mode 100644 index ae75a55161..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/sigpending.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright (C) 1997, 1998, 1999, 2000, 2003 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -/* Linux/ia64 only has rt signals, thus we do not even want to try falling - back to the old style signals as the default Linux handler does. */ - -#include <errno.h> -#include <signal.h> -#include <unistd.h> - -#include <sysdep.h> -#include <sys/syscall.h> -#include <bp-checks.h> - -/* Change the set of blocked signals to SET, - wait until a signal arrives, and restore the set of blocked signals. */ -int -sigpending (set) - sigset_t *set; -{ - /* XXX The size argument hopefully will have to be changed to the - real size of the user-level sigset_t. */ - return INLINE_SYSCALL (rt_sigpending, 2, CHECK_SIGSET (set), _NSIG / 8); -} diff --git a/sysdeps/unix/sysv/linux/ia64/sigprocmask.c b/sysdeps/unix/sysv/linux/ia64/sigprocmask.c deleted file mode 100644 index ba8b053869..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/sigprocmask.c +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright (C) 1997, 1998, 1999, 2000, 2003 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Linux/IA64 specific sigprocmask - Written by Jes Sorensen, <Jes.Sorensen@cern.ch>, April 1999. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -/* Linux/ia64 only has rt signals, thus we do not even want to try falling - back to the old style signals as the default Linux handler does. */ - -#include <errno.h> -#include <signal.h> -#include <unistd.h> - -#include <sysdep.h> -#include <sys/syscall.h> -#include <bp-checks.h> - -/* Get and/or change the set of blocked signals. */ -int -__sigprocmask (how, set, oset) - int how; - const sigset_t *set; - sigset_t *oset; -{ - - /* XXX The size argument hopefully will have to be changed to the - real size of the user-level sigset_t. */ - return INLINE_SYSCALL (rt_sigprocmask, 4, how, CHECK_SIGSET (set), - CHECK_SIGSET_NULL_OK (oset), _NSIG / 8); -} -weak_alias (__sigprocmask, sigprocmask) diff --git a/sysdeps/unix/sysv/linux/ia64/swapcontext.c b/sysdeps/unix/sysv/linux/ia64/swapcontext.c deleted file mode 100644 index 1b9fbdb6a0..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/swapcontext.c +++ /dev/null @@ -1,40 +0,0 @@ -/* Copyright (C) 2001 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by David Mosberger-Tang <davidm@hpl.hp.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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <ucontext.h> - -struct rv - { - long retval; - long first_return; - }; - -extern struct rv __getcontext (ucontext_t *__ucp) __THROW; -extern int __setcontext (__const ucontext_t *__ucp) __THROW; - -int -__swapcontext (ucontext_t *oucp, const ucontext_t *ucp) -{ - struct rv rv = __getcontext (oucp); - if (rv.first_return) - __setcontext (ucp); - return 0; -} - -weak_alias (__swapcontext, swapcontext) diff --git a/sysdeps/unix/sysv/linux/ia64/sys/io.h b/sysdeps/unix/sysv/linux/ia64/sys/io.h deleted file mode 100644 index 14736ff1c6..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/sys/io.h +++ /dev/null @@ -1,68 +0,0 @@ -/* Copyright (C) 1999, 2000 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by David Mosberger-Tang <davidm@hpl.hp.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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#ifndef _SYS_IO_H -#define _SYS_IO_H 1 - -#include <features.h> - -__BEGIN_DECLS - -/* If TURN_ON is TRUE, request for permission to do direct i/o on the - port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O - permission off for that range. This call requires root privileges. - - Portability note: not all Linux platforms support this call. Most - platforms based on the PC I/O architecture probably will, however. - E.g., Linux/Alpha for Alpha PCs supports this. */ -extern int ioperm (unsigned long int __from, unsigned long int __num, - int __turn_on); - -/* Set the I/O privilege level to LEVEL. If LEVEL>3, permission to - access any I/O port is granted. This call requires root - privileges. */ -extern int iopl (int __level); - -extern unsigned int _inb (unsigned long int __port); -extern unsigned int _inb (unsigned long int __port); -extern unsigned int _inw (unsigned long int __port); -extern unsigned int _inl (unsigned long int __port); -extern void _outb (unsigned char __val, unsigned long int __port); -extern void _outw (unsigned short __val, unsigned long int __port); -extern void _outl (unsigned int __val, unsigned long int __port); - -#define inb _inb -#define inw _inw -#define inl _inl -#define outb _outb -#define outw _outw -#define outl _outl - -/* Access PCI space protected from machine checks. */ -extern int pciconfig_read (unsigned long int __bus, unsigned long int __dfn, - unsigned long int __off, unsigned long int __len, - unsigned char *__buf); - -extern int pciconfig_write (unsigned long int __bus, unsigned long int __dfn, - unsigned long int __off, unsigned long int __len, - unsigned char *__buf); - -__END_DECLS - -#endif /* _SYS_IO_H */ diff --git a/sysdeps/unix/sysv/linux/ia64/sys/procfs.h b/sysdeps/unix/sysv/linux/ia64/sys/procfs.h deleted file mode 100644 index b5196b997c..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/sys/procfs.h +++ /dev/null @@ -1,130 +0,0 @@ -/* Copyright (C) 1999, 2000, 2003 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#ifndef _SYS_PROCFS_H -#define _SYS_PROCFS_H 1 - -/* This is somehow modelled after the file of the same name on SysVr4 - systems. It provides a definition of the core file format for ELF - used on Linux. */ - -#include <features.h> -#include <signal.h> -#include <sys/time.h> -#include <sys/types.h> -#include <sys/ucontext.h> -#include <sys/user.h> - -__BEGIN_DECLS - -struct elf_siginfo - { - int si_signo; /* Signal number. */ - int si_code; /* Extra code. */ - int si_errno; /* Errno. */ - }; - -/* We really need just 72 but let's leave some headroom... */ -#define ELF_NGREG 128 -/* f0 and f1 could be omitted, but so what... */ -#define ELF_NFPREG 128 - -typedef unsigned long elf_greg_t; -typedef elf_greg_t elf_gregset_t[ELF_NGREG]; - -typedef struct ia64_fpreg elf_fpreg_t; -typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; - -typedef elf_greg_t greg_t; -typedef elf_gregset_t gregset_t; -typedef elf_fpregset_t fpregset_t; -#define NGREG ELF_NGREG - -/* Definitions to generate Intel SVR4-like core files. These mostly - have the same names as the SVR4 types with "elf_" tacked on the - front to prevent clashes with linux definitions, and the typedef - forms have been avoided. This is mostly like the SVR4 structure, - but more Linuxy, with things that Linux does not support and which - gdb doesn't really use excluded. Fields present but not used are - marked with "XXX". */ -struct elf_prstatus - { -#if 0 - long int pr_flags; /* XXX Process flags. */ - short int pr_why; /* XXX Reason for process halt. */ - short int pr_what; /* XXX More detailed reason. */ -#endif - struct elf_siginfo pr_info; /* Info associated with signal. */ - short int pr_cursig; /* Current signal. */ - unsigned long int pr_sigpend; /* Set of pending signals. */ - unsigned long int pr_sighold; /* Set of held signals. */ -#if 0 - struct sigaltstack pr_altstack; /* Alternate stack info. */ - struct sigaction pr_action; /* Signal action for current sig. */ -#endif - __pid_t pr_pid; - __pid_t pr_ppid; - __pid_t pr_pgrp; - __pid_t pr_sid; - struct timeval pr_utime; /* User time. */ - struct timeval pr_stime; /* System time. */ - struct timeval pr_cutime; /* Cumulative user time. */ - struct timeval pr_cstime; /* Cumulative system time. */ -#if 0 - long int pr_instr; /* Current instruction. */ -#endif - elf_gregset_t pr_reg; /* GP registers. */ - int pr_fpvalid; /* True if math copro being used. */ - }; - - -#define ELF_PRARGSZ (80) /* Number of chars for args */ - -struct elf_prpsinfo - { - char pr_state; /* Numeric process state. */ - char pr_sname; /* Char for pr_state. */ - char pr_zomb; /* Zombie. */ - char pr_nice; /* Nice val. */ - unsigned long int pr_flag; /* Flags. */ - unsigned int pr_uid; - unsigned int pr_gid; - int pr_pid, pr_ppid, pr_pgrp, pr_sid; - /* Lots missing */ - char pr_fname[16]; /* Filename of executable. */ - char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */ - }; - -/* Addresses. */ -typedef void *psaddr_t; - -/* Register sets. Linux has different names. */ -typedef gregset_t prgregset_t; -typedef fpregset_t prfpregset_t; - -/* We don't have any differences between processes and threads, - therefore habe only ine PID type. */ -typedef __pid_t lwpid_t; - - -typedef struct elf_prstatus prstatus_t; -typedef struct elf_prpsinfo prpsinfo_t; - -__END_DECLS - -#endif /* sys/procfs.h */ diff --git a/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h b/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h deleted file mode 100644 index 82d8843ce8..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h +++ /dev/null @@ -1,192 +0,0 @@ -/* `ptrace' debugger support interface. Linux/ia64 version. - Copyright (C) 2001, 2006, 2007, 2011 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#ifndef _SYS_PTRACE_H -#define _SYS_PTRACE_H 1 - -#include <features.h> -#include <sys/ucontext.h> - -__BEGIN_DECLS - -/* Type of the REQUEST argument to `ptrace.' */ -enum __ptrace_request -{ - /* Indicate that the process making this request should be traced. - All signals received by this process can be intercepted by its - parent, and its parent can use the other `ptrace' requests. */ - PTRACE_TRACEME = 0, -#define PT_TRACE_ME PTRACE_TRACEME - - /* Return the word in the process's text space at address ADDR. */ - PTRACE_PEEKTEXT = 1, -#define PT_READ_I PTRACE_PEEKTEXT - - /* Return the word in the process's data space at address ADDR. */ - PTRACE_PEEKDATA = 2, -#define PT_READ_D PTRACE_PEEKDATA - - /* Return the word in the process's user area at offset ADDR. */ - PTRACE_PEEKUSER = 3, -#define PT_READ_U PTRACE_PEEKUSER - - /* Write the word DATA into the process's text space at address ADDR. */ - PTRACE_POKETEXT = 4, -#define PT_WRITE_I PTRACE_POKETEXT - - /* Write the word DATA into the process's data space at address ADDR. */ - PTRACE_POKEDATA = 5, -#define PT_WRITE_D PTRACE_POKEDATA - - /* Write the word DATA into the process's user area at offset ADDR. */ - PTRACE_POKEUSER = 6, -#define PT_WRITE_U PTRACE_POKEUSER - - /* Continue the process. */ - PTRACE_CONT = 7, -#define PT_CONTINUE PTRACE_CONT - - /* Kill the process. */ - PTRACE_KILL = 8, -#define PT_KILL PTRACE_KILL - - /* Single step the process. - This is not supported on all machines. */ - PTRACE_SINGLESTEP = 9, -#define PT_STEP PTRACE_SINGLESTEP - - /* Execute process until next taken branch. */ - PTRACE_SINGLEBLOCK = 12, -#define PT_STEPBLOCK PTRACE_SINGLEBLOCK - - /* Attach to a process that is already running. */ - PTRACE_ATTACH = 16, -#define PT_ATTACH PTRACE_ATTACH - - /* Detach from a process attached to with PTRACE_ATTACH. */ - PTRACE_DETACH = 17, -#define PT_DETACH PTRACE_DETACH - - /* Get all registers (pt_all_user_regs) in one shot */ - PTRACE_GETREGS = 18, -#define PT_GETREGS PTRACE_GETREGS - - /* Set all registers (pt_all_user_regs) in one shot */ - PTRACE_SETREGS = 19, -#define PT_SETREGS PTRACE_SETREGS - - /* Continue and stop at the next (return from) syscall. */ - PTRACE_SYSCALL = 24, -#define PT_SYSCALL PTRACE_SYSCALL - - /* Set ptrace filter options. */ - PTRACE_SETOPTIONS = 0x4200, -#define PT_SETOPTIONS PTRACE_SETOPTIONS - - /* Get last ptrace message. */ - PTRACE_GETEVENTMSG = 0x4201, -#define PT_GETEVENTMSG PTRACE_GETEVENTMSG - - /* Get siginfo for process. */ - PTRACE_GETSIGINFO = 0x4202, -#define PT_GETSIGINFO PTRACE_GETSIGINFO - - /* Set new siginfo for process. */ - PTRACE_SETSIGINFO = 0x4203, -#define PT_SETSIGINFO PTRACE_SETSIGINFO - - /* Get register content. */ - PTRACE_GETREGSET = 0x4204, -#define PTRACE_GETREGSET PTRACE_GETREGSET - - /* Set register content. */ - PTRACE_SETREGSET = 0x4205, -#define PTRACE_SETREGSET PTRACE_SETREGSET - - /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect - signal or group stop state. */ - PTRACE_SEIZE = 0x4206, -#define PTRACE_SEIZE PTRACE_SEIZE - - /* Trap seized tracee. */ - PTRACE_INTERRUPT = 0x4207, -#define PTRACE_INTERRUPT PTRACE_INTERRUPT - - /* Wait for next group event. */ - PTRACE_LISTEN = 0x4208 -}; - - -/* Flag for PTRACE_LISTEN. */ -enum __ptrace_flags -{ - PTRACE_SEIZE_DEVEL = 0x80000000 -}; - -/* pt_all_user_regs is used for PTRACE_GETREGS/PTRACE_SETREGS. */ -struct pt_all_user_regs - { - unsigned long nat; - unsigned long cr_iip; - unsigned long cfm; - unsigned long cr_ipsr; - unsigned long pr; - - unsigned long gr[32]; - unsigned long br[8]; - unsigned long ar[128]; - struct ia64_fpreg fr[128]; - }; - -/* Options set using PTRACE_SETOPTIONS. */ -enum __ptrace_setoptions { - PTRACE_O_TRACESYSGOOD = 0x00000001, - PTRACE_O_TRACEFORK = 0x00000002, - PTRACE_O_TRACEVFORK = 0x00000004, - PTRACE_O_TRACECLONE = 0x00000008, - PTRACE_O_TRACEEXEC = 0x00000010, - PTRACE_O_TRACEVFORKDONE = 0x00000020, - PTRACE_O_TRACEEXIT = 0x00000040, - PTRACE_O_MASK = 0x0000007f -}; - -/* Wait extended result codes for the above trace options. */ -enum __ptrace_eventcodes { - PTRACE_EVENT_FORK = 1, - PTRACE_EVENT_VFORK = 2, - PTRACE_EVENT_CLONE = 3, - PTRACE_EVENT_EXEC = 4, - PTRACE_EVENT_VFORK_DONE = 5, - PTRACE_EVENT_EXIT = 6 -}; - -/* Perform process tracing functions. REQUEST is one of the values - above, and determines the action to be taken. - For all requests except PTRACE_TRACEME, PID specifies the process to be - traced. - - PID and the other arguments described above for the various requests should - appear (those that are used for the particular request) as: - pid_t PID, void *ADDR, int DATA, void *ADDR2 - after REQUEST. */ -extern long int ptrace (enum __ptrace_request __request, ...) __THROW; - -__END_DECLS - -#endif /* _SYS_PTRACE_H */ diff --git a/sysdeps/unix/sysv/linux/ia64/sys/rse.h b/sysdeps/unix/sysv/linux/ia64/sys/rse.h deleted file mode 100644 index 1d1c803d3c..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/sys/rse.h +++ /dev/null @@ -1,78 +0,0 @@ -/* Copyright (C) 2001 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by David Mosberger-Tang <davidm@hpl.hp.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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#ifndef _ia64_rse_h -#define _ia64_rse_h - -#include <features.h> - -/* Register stack engine related helper functions. This file may be - used in applications, so be careful about the name-space and give - some consideration to non-GNU C compilers (though __inline is - fine). */ - -static __inline unsigned long -ia64_rse_slot_num (unsigned long *addr) -{ - return (((unsigned long) addr) >> 3) & 0x3f; -} - -/* Return TRUE if ADDR is the address of an RNAT slot. */ - -static __inline unsigned long -ia64_rse_is_rnat_slot (unsigned long *addr) -{ - return ia64_rse_slot_num (addr) == 0x3f; -} - -/* Returns the address of the RNAT slot that covers the slot at - address SLOT_ADDR. */ - -static __inline unsigned long * -ia64_rse_rnat_addr (unsigned long *slot_addr) -{ - return (unsigned long *) ((unsigned long) slot_addr | (0x3f << 3)); -} - -/* Calcuate the number of registers in the dirty partition starting at - BSPSTORE with a size of DIRTY bytes. This isn't simply DIRTY - divided by eight because the 64th slot is used to store ar.rnat. */ - -static __inline unsigned long -ia64_rse_num_regs (unsigned long *bspstore, unsigned long *bsp) -{ - unsigned long slots = (bsp - bspstore); - - return slots - (ia64_rse_slot_num(bspstore) + slots)/0x40; -} - -/* The inverse of the above: given bspstore and the number of - registers, calculate ar.bsp. */ - -static __inline unsigned long * -ia64_rse_skip_regs (unsigned long *addr, long num_regs) -{ - long delta = ia64_rse_slot_num(addr) + num_regs; - - if (num_regs < 0) - delta -= 0x3e; - return addr + num_regs + delta/0x3f; -} - -#endif /* _ia64_rse_h */ diff --git a/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h b/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h deleted file mode 100644 index 17dc85f997..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h +++ /dev/null @@ -1,66 +0,0 @@ -/* Copyright (C) 1998, 2000, 2001, 2002, 2004 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 - -#include <features.h> -#include <signal.h> - -#include <bits/sigcontext.h> - -/* - * These are here mostly for backwards compatibility with older Unices. - * IA-64 Linux does not distinguish between "struct sigcontext" and - * "ucontext_t" as all the necessary info is inside the former. - */ - -typedef struct sigcontext mcontext_t; - -#if defined __cplusplus && __GNUC_PREREQ (3, 5) -# define _SC_GR0_OFFSET \ - __builtin_offsetof (struct sigcontext, sc_gr[0]) -#elif defined __GNUC__ -# define _SC_GR0_OFFSET \ - (((char *) &((struct sigcontext *) 0)->sc_gr[0]) - (char *) 0) -#else -# define _SC_GR0_OFFSET 0xc8 /* pray that this is correct... */ -#endif - -typedef struct ucontext - { - union - { - mcontext_t _mc; - struct - { - unsigned long _pad[_SC_GR0_OFFSET/8]; - struct ucontext *_link; /* this should overlay sc_gr[0] */ - } - _uc; - } - _u; - } -ucontext_t; - -#define uc_mcontext _u._mc -#define uc_sigmask _u._mc.sc_mask -#define uc_stack _u._mc.sc_stack -#define uc_link _u._uc._link - -#endif /* sys/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/ia64/sys/user.h b/sysdeps/unix/sysv/linux/ia64/sys/user.h deleted file mode 100644 index 039218761b..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/sys/user.h +++ /dev/null @@ -1,54 +0,0 @@ -/* Copyright (C) 2002 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#ifndef _SYS_USER_H -#define _SYS_USER_H 1 - -#include <features.h> -#include <sys/types.h> - -/* This definition comes directly from the kernel headers. If - anything changes in them this header has to be changed, too. */ - - -/* The definition in the kernel has the comment "XXX fix me". */ -#define EF_SIZE 3072 - - -struct user -{ - unsigned long int regs[EF_SIZE / 8 + 32]; /* Integer and fp regs. */ - size_t u_tsize; /* Text size (pages). */ - size_t u_dsize; /* Data size (pages). */ - size_t u_ssize; /* Stack size (pages). */ - unsigned long int start_code; /* Text starting address. */ - unsigned long int start_data; /* Data starting address. */ - unsigned long int start_stack; /* Stack starting address. */ - long int signal; /* Signal causing core dump. */ - struct regs *u_ar0; /* Help gdb find registers. */ - unsigned long int magic; /* Identifies a core file. */ - char u_comm[32]; /* User command name. */ -}; - -#define NBPG PAGE_SIZE -#define UPAGES 1 -#define HOST_TEXT_START_ADDR (u.start_code) -#define HOST_DATA_START_ADDR (u.start_data) -#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG) - -#endif /* sys/user.h */ diff --git a/sysdeps/unix/sysv/linux/ia64/syscall.S b/sysdeps/unix/sysv/linux/ia64/syscall.S deleted file mode 100644 index c638cc865f..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/syscall.S +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright (C) 1999, 2000 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Jes Sorensen <Jes.Sorensen@cern.ch>. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <sysdep.h> - -ENTRY(syscall) - alloc r2=ar.pfs,1,0,8,0 - mov r15=r32 /* syscall number */ - break __BREAK_SYSCALL - ;; - cmp.ne p6,p0=-1,r10 /* r10 = -1 on error */ -(p6) ret - br.cond.spnt.few __syscall_error -PSEUDO_END(syscall) diff --git a/sysdeps/unix/sysv/linux/ia64/syscalls.list b/sysdeps/unix/sysv/linux/ia64/syscalls.list deleted file mode 100644 index c55c70ef54..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/syscalls.list +++ /dev/null @@ -1,50 +0,0 @@ -# File name Caller Syscall name # args Strong name Weak names - -umount2 - umount 2 __umount2 umount2 - -getpriority - getpriority i:ii __getpriority getpriority - -# semaphore and shm system calls -msgctl - msgctl i:iip __msgctl msgctl -msgget - msgget i:ii __msgget msgget -msgrcv - msgrcv Ci:ibnii __msgrcv msgrcv -msgsnd - msgsnd Ci:ibni __msgsnd msgsnd -shmat - shmat i:ipi __shmat shmat -shmctl - shmctl i:iip __shmctl shmctl -shmdt - shmdt i:s __shmdt shmdt -shmget - shmget i:iii __shmget shmget -semop - semop i:ipi __semop semop -semtimedop - semtimedop i:ipip semtimedop -semget - semget i:iii __semget semget -semctl - semctl i:iiii __semctl semctl - -# proper socket implementations: -accept - accept Ci:iBN __libc_accept __accept accept -bind - bind i:ipi __bind bind -connect - connect Ci:ipi __libc_connect __connect_internal __connect connect -getpeername - getpeername i:ipp __getpeername getpeername -getsockname - getsockname i:ipp __getsockname getsockname -getsockopt - getsockopt i:iiiBN __getsockopt getsockopt -listen - listen i:ii __listen listen -recv - recv Ci:ibni __libc_recv __recv recv -recvfrom - recvfrom Ci:ibniBN __libc_recvfrom __recvfrom recvfrom -recvmsg - recvmsg Ci:ipi __libc_recvmsg __recvmsg recvmsg -send - send Ci:ibni __libc_send __send send -sendmsg - sendmsg Ci:ipi __libc_sendmsg __sendmsg sendmsg -sendto - sendto Ci:ibnibn __libc_sendto __sendto sendto -setsockopt - setsockopt i:iiibn __setsockopt setsockopt -shutdown - shutdown i:ii __shutdown shutdown -socket - socket i:iii __socket socket -socketpair - socketpair i:iiif __socketpair socketpair - -# DIG-compliant access to PCI configuration space: -pciconfig_read EXTRA pciconfig_read 5 pciconfig_read -pciconfig_write EXTRA pciconfig_write 5 pciconfig_write - -ptrace - ptrace 4 __ptrace ptrace - - -# System calls with wrappers. - -# IA-64 specific -getunwind EXTRA getunwind i:pi getunwind diff --git a/sysdeps/unix/sysv/linux/ia64/sysconf.c b/sysdeps/unix/sysv/linux/ia64/sysconf.c deleted file mode 100644 index 732cc68efd..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/sysconf.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Get file-specific information about a file. Linux/ia64 version. - Copyright (C) 2003, 2004, 2011 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <assert.h> -#include <stdbool.h> -#include <stdlib.h> -#include <unistd.h> - - -#include "has_cpuclock.c" -#define HAS_CPUCLOCK(name) (has_cpuclock () ? _POSIX_VERSION : -1) - - -/* Now the generic Linux version. */ -#include "../sysconf.c" diff --git a/sysdeps/unix/sysv/linux/ia64/sysdep.S b/sysdeps/unix/sysv/linux/ia64/sysdep.S deleted file mode 100644 index 3271857d61..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/sysdep.S +++ /dev/null @@ -1,59 +0,0 @@ -/* Copyright (C) 1999-2001, 2003, 2004, 2011 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by David Mosberger-Tang <davidm@hpl.hp.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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <sysdep.h> -#include <features.h> -#include <tls.h> - -ENTRY(__syscall_error) -#if RTLD_PRIVATE_ERRNO - /* - * Note that the gp has to be set properly for this to work. - * As long as all syscalls are in the same load unit - * (executable or shared library) as this routine, we should - * be fine. Otherwise, we would have to first load the global - * pointer register from __gp. - */ - addl r2=@gprel(rtld_errno),gp - ;; - st4 [r2]=r8 - mov r8=-1 -#else -# ifndef NOT_IN_libc -# define SYSCALL_ERROR_ERRNO __libc_errno -# else -# define SYSCALL_ERROR_ERRNO errno -# endif - addl r2=@ltoff(@tprel(SYSCALL_ERROR_ERRNO)), gp;; - ld8 r2=[r2] - mov r3=r8;; - mov r8=-1 - add r2=r2,r13;; - st4 [r2]=r3 -#endif - ret // ret is #define'd in syscall.h! -END(__syscall_error) - -ENTRY(__ia64_syscall) - mov r15=r37 /* syscall number */ - break __BREAK_SYSCALL - cmp.eq p6,p0=-1,r10 /* r10 = -1 on error */ -(p6) br.cond.spnt.few __syscall_error - ret -PSEUDO_END(__ia64_syscall) diff --git a/sysdeps/unix/sysv/linux/ia64/sysdep.h b/sysdeps/unix/sysv/linux/ia64/sysdep.h deleted file mode 100644 index dd7a5b1b1d..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/sysdep.h +++ /dev/null @@ -1,384 +0,0 @@ -/* Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. - This file is part of the GNU C Library. - Written by Jes Sorensen, <Jes.Sorensen@cern.ch>, April 1999. - Based on code originally written by David Mosberger-Tang - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#ifndef _LINUX_IA64_SYSDEP_H -#define _LINUX_IA64_SYSDEP_H 1 - -#include <sysdeps/unix/sysdep.h> -#include <sysdeps/ia64/sysdep.h> -#include <dl-sysdep.h> -#include <tls.h> - -/* As of GAS v2.4.90.0.7, including a ".align" directive inside a - function will cause bad unwind info to be emitted (GAS doesn't know - how to account for the padding introduced by the .align directive). - Turning on this macro will work around this bug by introducing the - necessary padding explicitly. */ -#define GAS_ALIGN_BREAKS_UNWIND_INFO - -/* 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 -#ifdef __STDC__ -# define SYS_ify(syscall_name) __NR_##syscall_name -#else -# define SYS_ify(syscall_name) __NR_/**/syscall_name -#endif - -/* This is a kludge to make syscalls.list find these under the names - pread and pwrite, since some kernel headers define those names - and some define the *64 names for the same system calls. */ -#if !defined __NR_pread && defined __NR_pread64 -# define __NR_pread __NR_pread64 -#endif -#if !defined __NR_pwrite && defined __NR_pwrite64 -# define __NR_pwrite __NR_pwrite64 -#endif - -/* This is to help the old kernel headers where __NR_semtimedop is not - available. */ -#ifndef __NR_semtimedop -# define __NR_semtimedop 1247 -#endif - -#if defined USE_DL_SYSINFO \ - && (!defined NOT_IN_libc \ - || defined IS_IN_libpthread || defined IS_IN_librt) -# define IA64_USE_NEW_STUB -#else -# undef IA64_USE_NEW_STUB -#endif - -#ifdef __ASSEMBLER__ - -#undef CALL_MCOUNT -#ifdef PROF -# define CALL_MCOUNT \ - .data; \ -1: data8 0; /* XXX fixme: use .xdata8 once labels work */ \ - .previous; \ - .prologue; \ - .save ar.pfs, r40; \ - alloc out0 = ar.pfs, 8, 0, 4, 0; \ - mov out1 = gp; \ - .save rp, out2; \ - mov out2 = rp; \ - .body; \ - ;; \ - addl out3 = @ltoff(1b), gp; \ - br.call.sptk.many rp = _mcount \ - ;; -#else -# define CALL_MCOUNT /* Do nothing. */ -#endif - -/* 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 %d0 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 handler to be visible in the symbol - table when we define it here. */ -#define SYSCALL_ERROR_LABEL __syscall_error - -#undef PSEUDO -#define PSEUDO(name, syscall_name, args) \ - ENTRY(name) \ - DO_CALL (SYS_ify(syscall_name)); \ - cmp.eq p6,p0=-1,r10; \ -(p6) br.cond.spnt.few __syscall_error; - -#define DO_CALL_VIA_BREAK(num) \ - mov r15=num; \ - break __BREAK_SYSCALL - -#ifdef IA64_USE_NEW_STUB -# ifdef SHARED -# define DO_CALL(num) \ - .prologue; \ - adds r2 = SYSINFO_OFFSET, r13;; \ - ld8 r2 = [r2]; \ - .save ar.pfs, r11; \ - mov r11 = ar.pfs;; \ - .body; \ - mov r15 = num; \ - mov b7 = r2; \ - br.call.sptk.many b6 = b7;; \ - .restore sp; \ - mov ar.pfs = r11; \ - .prologue; \ - .body -# else /* !SHARED */ -# define DO_CALL(num) \ - .prologue; \ - mov r15 = num; \ - movl r2 = _dl_sysinfo;; \ - ld8 r2 = [r2]; \ - .save ar.pfs, r11; \ - mov r11 = ar.pfs;; \ - .body; \ - mov b7 = r2; \ - br.call.sptk.many b6 = b7;; \ - .restore sp; \ - mov ar.pfs = r11; \ - .prologue; \ - .body -# endif -#else -# define DO_CALL(num) DO_CALL_VIA_BREAK(num) -#endif - -#undef PSEUDO_END -#define PSEUDO_END(name) .endp C_SYMBOL_NAME(name); - -#undef PSEUDO_NOERRNO -#define PSEUDO_NOERRNO(name, syscall_name, args) \ - ENTRY(name) \ - DO_CALL (SYS_ify(syscall_name)); - -#undef PSEUDO_END_NOERRNO -#define PSEUDO_END_NOERRNO(name) .endp C_SYMBOL_NAME(name); - -#undef PSEUDO_ERRVAL -#define PSEUDO_ERRVAL(name, syscall_name, args) \ - ENTRY(name) \ - DO_CALL (SYS_ify(syscall_name)); \ - cmp.eq p6,p0=-1,r10; \ -(p6) mov r10=r8; - - -#undef PSEUDO_END_ERRVAL -#define PSEUDO_END_ERRVAL(name) .endp C_SYMBOL_NAME(name); - -#undef END -#define END(name) \ - .size C_SYMBOL_NAME(name), . - C_SYMBOL_NAME(name) ; \ - .endp C_SYMBOL_NAME(name) - -#define ret br.ret.sptk.few b0 -#define ret_NOERRNO ret -#define ret_ERRVAL ret - -#else /* not __ASSEMBLER__ */ - -#define BREAK_INSN_1(num) "break " #num ";;\n\t" -#define BREAK_INSN(num) BREAK_INSN_1(num) - -/* On IA-64 we have stacked registers for passing arguments. The - "out" registers end up being the called function's "in" - registers. - - Also, since we have plenty of registers we have two return values - from a syscall. r10 is set to -1 on error, whilst r8 contains the - (non-negative) errno on error or the return value on success. - */ - -#ifdef IA64_USE_NEW_STUB - -# define DO_INLINE_SYSCALL_NCS(name, nr, args...) \ - LOAD_ARGS_##nr (args) \ - register long _r8 __asm ("r8"); \ - register long _r10 __asm ("r10"); \ - register long _r15 __asm ("r15") = name; \ - register void *_b7 __asm ("b7") = ((tcbhead_t *)__thread_self)->__private;\ - long _retval; \ - LOAD_REGS_##nr \ - /* \ - * Don't specify any unwind info here. We mark ar.pfs as \ - * clobbered. This will force the compiler to save ar.pfs \ - * somewhere and emit appropriate unwind info for that save. \ - */ \ - __asm __volatile ("br.call.sptk.many b6=%0;;\n" \ - : "=b"(_b7), "=r" (_r8), "=r" (_r10), "=r" (_r15) \ - ASM_OUTARGS_##nr \ - : "0" (_b7), "3" (_r15) ASM_ARGS_##nr \ - : "memory", "ar.pfs" ASM_CLOBBERS_##nr); \ - _retval = _r8; - -#else /* !IA64_USE_NEW_STUB */ - -# define DO_INLINE_SYSCALL_NCS(name, nr, args...) \ - LOAD_ARGS_##nr (args) \ - register long _r8 asm ("r8"); \ - register long _r10 asm ("r10"); \ - register long _r15 asm ("r15") = name; \ - long _retval; \ - LOAD_REGS_##nr \ - __asm __volatile (BREAK_INSN (__BREAK_SYSCALL) \ - : "=r" (_r8), "=r" (_r10), "=r" (_r15) \ - ASM_OUTARGS_##nr \ - : "2" (_r15) ASM_ARGS_##nr \ - : "memory" ASM_CLOBBERS_##nr); \ - _retval = _r8; - -#endif /* !IA64_USE_NEW_STUB */ - -#define DO_INLINE_SYSCALL(name, nr, args...) \ - DO_INLINE_SYSCALL_NCS (__NR_##name, nr, ##args) - -#undef INLINE_SYSCALL -#define INLINE_SYSCALL(name, nr, args...) \ - ({ \ - DO_INLINE_SYSCALL_NCS (__NR_##name, nr, args) \ - if (_r10 == -1) \ - { \ - __set_errno (_retval); \ - _retval = -1; \ - } \ - _retval; }) - -#undef INTERNAL_SYSCALL_DECL -#define INTERNAL_SYSCALL_DECL(err) long int err - -#undef INTERNAL_SYSCALL -#define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \ - ({ \ - DO_INLINE_SYSCALL_NCS (name, nr, args) \ - err = _r10; \ - _retval; }) -#define INTERNAL_SYSCALL(name, err, nr, args...) \ - INTERNAL_SYSCALL_NCS (__NR_##name, err, nr, ##args) - -#undef INTERNAL_SYSCALL_ERROR_P -#define INTERNAL_SYSCALL_ERROR_P(val, err) (err == -1) - -#undef INTERNAL_SYSCALL_ERRNO -#define INTERNAL_SYSCALL_ERRNO(val, err) (val) - -#define LOAD_ARGS_0() -#define LOAD_REGS_0 -#define LOAD_ARGS_1(a1) \ - long _arg1 = (long) (a1); \ - LOAD_ARGS_0 () -#define LOAD_REGS_1 \ - register long _out0 asm ("out0") = _arg1; \ - LOAD_REGS_0 -#define LOAD_ARGS_2(a1, a2) \ - long _arg2 = (long) (a2); \ - LOAD_ARGS_1 (a1) -#define LOAD_REGS_2 \ - register long _out1 asm ("out1") = _arg2; \ - LOAD_REGS_1 -#define LOAD_ARGS_3(a1, a2, a3) \ - long _arg3 = (long) (a3); \ - LOAD_ARGS_2 (a1, a2) -#define LOAD_REGS_3 \ - register long _out2 asm ("out2") = _arg3; \ - LOAD_REGS_2 -#define LOAD_ARGS_4(a1, a2, a3, a4) \ - long _arg4 = (long) (a4); \ - LOAD_ARGS_3 (a1, a2, a3) -#define LOAD_REGS_4 \ - register long _out3 asm ("out3") = _arg4; \ - LOAD_REGS_3 -#define LOAD_ARGS_5(a1, a2, a3, a4, a5) \ - long _arg5 = (long) (a5); \ - LOAD_ARGS_4 (a1, a2, a3, a4) -#define LOAD_REGS_5 \ - register long _out4 asm ("out4") = _arg5; \ - LOAD_REGS_4 -#define LOAD_ARGS_6(a1, a2, a3, a4, a5, a6) \ - long _arg6 = (long) (a6); \ - LOAD_ARGS_5 (a1, a2, a3, a4, a5) -#define LOAD_REGS_6 \ - register long _out5 asm ("out5") = _arg6; \ - LOAD_REGS_5 - -#define ASM_OUTARGS_0 -#define ASM_OUTARGS_1 ASM_OUTARGS_0, "=r" (_out0) -#define ASM_OUTARGS_2 ASM_OUTARGS_1, "=r" (_out1) -#define ASM_OUTARGS_3 ASM_OUTARGS_2, "=r" (_out2) -#define ASM_OUTARGS_4 ASM_OUTARGS_3, "=r" (_out3) -#define ASM_OUTARGS_5 ASM_OUTARGS_4, "=r" (_out4) -#define ASM_OUTARGS_6 ASM_OUTARGS_5, "=r" (_out5) - -#ifdef IA64_USE_NEW_STUB -#define ASM_ARGS_0 -#define ASM_ARGS_1 ASM_ARGS_0, "4" (_out0) -#define ASM_ARGS_2 ASM_ARGS_1, "5" (_out1) -#define ASM_ARGS_3 ASM_ARGS_2, "6" (_out2) -#define ASM_ARGS_4 ASM_ARGS_3, "7" (_out3) -#define ASM_ARGS_5 ASM_ARGS_4, "8" (_out4) -#define ASM_ARGS_6 ASM_ARGS_5, "9" (_out5) -#else -#define ASM_ARGS_0 -#define ASM_ARGS_1 ASM_ARGS_0, "3" (_out0) -#define ASM_ARGS_2 ASM_ARGS_1, "4" (_out1) -#define ASM_ARGS_3 ASM_ARGS_2, "5" (_out2) -#define ASM_ARGS_4 ASM_ARGS_3, "6" (_out3) -#define ASM_ARGS_5 ASM_ARGS_4, "7" (_out4) -#define ASM_ARGS_6 ASM_ARGS_5, "8" (_out5) -#endif - -#define ASM_CLOBBERS_0 ASM_CLOBBERS_1, "out0" -#define ASM_CLOBBERS_1 ASM_CLOBBERS_2, "out1" -#define ASM_CLOBBERS_2 ASM_CLOBBERS_3, "out2" -#define ASM_CLOBBERS_3 ASM_CLOBBERS_4, "out3" -#define ASM_CLOBBERS_4 ASM_CLOBBERS_5, "out4" -#define ASM_CLOBBERS_5 ASM_CLOBBERS_6, "out5" -#define ASM_CLOBBERS_6_COMMON , "out6", "out7", \ - /* Non-stacked integer registers, minus r8, r10, r15. */ \ - "r2", "r3", "r9", "r11", "r12", "r13", "r14", "r16", "r17", "r18", \ - "r19", "r20", "r21", "r22", "r23", "r24", "r25", "r26", "r27", \ - "r28", "r29", "r30", "r31", \ - /* Predicate registers. */ \ - "p6", "p7", "p8", "p9", "p10", "p11", "p12", "p13", "p14", "p15", \ - /* Non-rotating fp registers. */ \ - "f6", "f7", "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \ - /* Branch registers. */ \ - "b6" - -#ifdef IA64_USE_NEW_STUB -# define ASM_CLOBBERS_6 ASM_CLOBBERS_6_COMMON -#else -# define ASM_CLOBBERS_6 ASM_CLOBBERS_6_COMMON , "b7" -#endif - -#endif /* not __ASSEMBLER__ */ - -/* Pointer mangling support. */ -#if defined NOT_IN_libc && defined IS_IN_rtld -/* We cannot use the thread descriptor because in ld.so we use setjmp - earlier than the descriptor is initialized. */ -#else -# ifdef __ASSEMBLER__ -# define PTR_MANGLE(reg, tmpreg) \ - add tmpreg=-16,r13 \ - ;; \ - ld8 tmpreg=[tmpreg] \ - ;; \ - xor reg=reg, tmpreg -# define PTR_DEMANGLE(reg, tmpreg) PTR_MANGLE (reg, tmpreg) -# else -# define PTR_MANGLE(var) \ - (var) = (void *) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ()) -# define PTR_DEMANGLE(var) PTR_MANGLE (var) -# endif -#endif - -#endif /* linux/ia64/sysdep.h */ diff --git a/sysdeps/unix/sysv/linux/ia64/system.c b/sysdeps/unix/sysv/linux/ia64/system.c deleted file mode 100644 index 413ff27b39..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/system.c +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright (C) 2002, 2003 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <kernel-features.h> - -/* We have to and actually can handle cancelable system(). The big - problem: we have to kill the child process if necessary. To do - this a cleanup handler has to be registered and is has to be able - to find the PID of the child. The main problem is to reliable have - the PID when needed. It is not necessary for the parent thread to - return. It might still be in the kernel when the cancellation - request comes. Therefore we have to use the clone() calls ability - to have the kernel write the PID into the user-level variable. */ -#ifdef __ASSUME_CLONE_THREAD_FLAGS -# define FORK() \ - INLINE_SYSCALL (clone2, 6, CLONE_PARENT_SETTID | SIGCHLD, NULL, 0, \ - &pid, NULL, NULL) -#endif - -#include "../system.c" diff --git a/sysdeps/unix/sysv/linux/ia64/ucontext_i.h b/sysdeps/unix/sysv/linux/ia64/ucontext_i.h deleted file mode 100644 index e2a4d3c2b8..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/ucontext_i.h +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright (C) 2001, 2003 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by David Mosberger-Tang <davidm@hpl.hp.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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -/* Constants shared between setcontext() and getcontext(). Don't - install this header file. */ - -#define SIG_BLOCK 0 -#define SIG_UNBLOCK 1 -#define SIG_SETMASK 2 - -#include <sigcontext-offsets.h> - -#define rTMP r16 -#define rPOS r16 -#define rCPOS r17 -#define rNAT r18 - -#define rB5 r18 -#define rB4 r19 -#define rB3 r20 -#define rB2 r21 -#define rB1 r22 -#define rB0 r23 -#define rRSC r24 -#define rBSP r25 -#define rRNAT r26 -#define rUNAT r27 -#define rFPSR r28 -#define rPFS r29 -#define rLC r30 -#define rPR r31 diff --git a/sysdeps/unix/sysv/linux/ia64/umount.c b/sysdeps/unix/sysv/linux/ia64/umount.c deleted file mode 100644 index 462ace3258..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/umount.c +++ /dev/null @@ -1,31 +0,0 @@ -/* umount system call for Linux/ia64. - Copyright (C) 2003 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <sys/mount.h> -#include <errno.h> - -#include <sysdep.h> -#include <bp-checks.h> - -/* Unmount a filesystem. */ -int -umount (const char *special_file) -{ - return INLINE_SYSCALL (umount, 2, CHECK_STRING (special_file), 0); -} diff --git a/sysdeps/unix/sysv/linux/ia64/unwind-dw2-fde.c b/sysdeps/unix/sysv/linux/ia64/unwind-dw2-fde.c deleted file mode 100644 index 15d12abfce..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/unwind-dw2-fde.c +++ /dev/null @@ -1 +0,0 @@ -/* Linux/ia64 does not need unwind table registry. */ diff --git a/sysdeps/unix/sysv/linux/ia64/vfork.S b/sysdeps/unix/sysv/linux/ia64/vfork.S deleted file mode 100644 index 086fce9387..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/vfork.S +++ /dev/null @@ -1,44 +0,0 @@ -/* Copyright (C) 2000, 2002 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - - -#include <sysdep.h> -#define _SIGNAL_H -#include <bits/signum.h> - -/* The following are defined in linux/sched.h, which unfortunately */ -/* is not safe for inclusion in an assembly file. */ -#define CLONE_VM 0x00000100 /* set if VM shared between processes */ -#define CLONE_VFORK 0x00004000 /* set if the parent wants the child to wake it up on mm_release */ - -/* pid_t vfork(void); */ -/* Implemented as __clone_syscall(CLONE_VFORK | CLONE_VM | SIGCHLD, 0) */ - -ENTRY(__vfork) - alloc r2=ar.pfs,0,0,2,0 - mov out0=CLONE_VM+CLONE_VFORK+SIGCHLD - mov out1=0 /* Standard sp value. */ - ;; - DO_CALL_VIA_BREAK (SYS_ify (clone)) - cmp.eq p6,p0=-1,r10 -(p6) br.cond.spnt.few __syscall_error - ret -PSEUDO_END(__vfork) -libc_hidden_def (__vfork) - -weak_alias (__vfork, vfork) diff --git a/sysdeps/unix/sysv/linux/ia64/wordexp.c b/sysdeps/unix/sysv/linux/ia64/wordexp.c deleted file mode 100644 index c2972e40c2..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/wordexp.c +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright (C) 2001, 2004, 2005 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 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <shlib-compat.h> - -/* For Linux/Alpha we have to make the wordexp symbols versioned. */ -#define wordexp(words, pwordexp, flags) \ - __new_wordexp (words, pwordexp, flags) - -#include <posix/wordexp.c> - -versioned_symbol (libc, __new_wordexp, wordexp, GLIBC_2_2_2); - - -#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2_2) -/* The old, incorrect wordexp_t definition. */ -typedef struct - { - int we_wordc; /* Count of words matched. */ - char **we_wordv; /* List of expanded words. */ - int we_offs; /* Slots to reserve in `we_wordv'. */ - } old_wordexp_t; - - -int -attribute_compat_text_section -__old_wordexp (const char *words, old_wordexp_t *pwordexp, int flags) -{ - wordexp_t we; - int result; - - we.we_wordc = pwordexp->we_wordc; - we.we_wordv = pwordexp->we_wordv; - we.we_offs = pwordexp->we_offs; - - result = __new_wordexp (words, &we, flags); - - pwordexp->we_wordc = we.we_wordc; - pwordexp->we_wordv = we.we_wordv; - pwordexp->we_offs = we.we_offs; - - return result; -} -compat_symbol (libc, __old_wordexp, wordexp, GLIBC_2_1); -#endif |