aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-06-21 04:35:29 +0000
committerUlrich Drepper <drepper@redhat.com>2000-06-21 04:35:29 +0000
commit697568d1b48a497024bca234483a157cee79c7a2 (patch)
tree890f34b715a2a1fdbeaa1307e676e49ea15d3632 /sysdeps/unix/sysv/linux
parent1b97149de806a27fe8f52cd5841c252df168a5b8 (diff)
downloadglibc-697568d1b48a497024bca234483a157cee79c7a2.tar
glibc-697568d1b48a497024bca234483a157cee79c7a2.tar.gz
glibc-697568d1b48a497024bca234483a157cee79c7a2.tar.bz2
glibc-697568d1b48a497024bca234483a157cee79c7a2.zip
Update.
2000-06-20 Jes Sorensen <jes@linuxcare.com> * sysdeps/unix/sysv/linux/ia64/syscalls.list: New file. 2000-06-20 Jes Sorensen <jes@linuxcare.com> * sysdeps/unix/sysv/linux/ia64/machine-gmon.h: New file. * sysdeps/unix/sysv/linux/ia64/profil-counter.h: New file. 2000-06-20 David Mosberger-Tang <davidm@hpl.hp.com> * sysdeps/unix/sysv/linux/ia64/getpagesize.c: New file. 2000-06-20 Jes Sorensen <jes@linuxcare.com> * sysdeps/unix/sysv/linux/ia64/sys/ucontext.h: Fix typo.
Diffstat (limited to 'sysdeps/unix/sysv/linux')
-rw-r--r--sysdeps/unix/sysv/linux/ia64/getpagesize.c46
-rw-r--r--sysdeps/unix/sysv/linux/ia64/machine-gmon.h26
-rw-r--r--sysdeps/unix/sysv/linux/ia64/profil-counter.h27
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/ia64/syscalls.list77
5 files changed, 177 insertions, 1 deletions
diff --git a/sysdeps/unix/sysv/linux/ia64/getpagesize.c b/sysdeps/unix/sysv/linux/ia64/getpagesize.c
new file mode 100644
index 0000000000..4a5c2ebe43
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/ia64/getpagesize.c
@@ -0,0 +1,46 @@
+/* Copyright (C) 1999, 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 Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <unistd.h>
+#include <sys/param.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 */
+
+/* If we are not a static program, this value is collected from the system
+ via the AT_PAGESZ auxiliary argument. If we are a static program, we
+ use the getpagesize system call. */
+
+extern size_t _dl_pagesize;
+
+extern size_t __syscall_getpagesize (void);
+
+int
+__getpagesize ()
+{
+ if (_dl_pagesize == 0)
+ _dl_pagesize = INLINE_SYSCALL (getpagesize, 0);
+ return _dl_pagesize;
+}
+
+weak_alias (__getpagesize, getpagesize)
diff --git a/sysdeps/unix/sysv/linux/ia64/machine-gmon.h b/sysdeps/unix/sysv/linux/ia64/machine-gmon.h
new file mode 100644
index 0000000000..96a1623951
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/ia64/machine-gmon.h
@@ -0,0 +1,26 @@
+/* Machine-specific calling sequence for `mcount' profiling function. IA-64.
+ Copyright (C) 1995, 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 Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#define _MCOUNT_DECL(from, self) \
+ void __mcount (u_long from, u_long self)
+
+/* Call __mcount with our the return PC for our caller, and the return
+ PC our caller will return to. Empty since we use an assembly stub
+ instead. */
+#define MCOUNT
diff --git a/sysdeps/unix/sysv/linux/ia64/profil-counter.h b/sysdeps/unix/sysv/linux/ia64/profil-counter.h
new file mode 100644
index 0000000000..1cc0390b8f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/ia64/profil-counter.h
@@ -0,0 +1,27 @@
+/* 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 Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. 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, int code, struct sigcontext *scp)
+{
+ profil_count ((void *) scp->sc_ip);
+}
diff --git a/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h b/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h
index 37ee9774d1..c7adaca12b 100644
--- a/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h
@@ -54,7 +54,7 @@ typedef struct
unsigned long int ss_flags; /* Save state flags. */
unsigned long int br_1, br_2, br_3, br_4, br_5; /* Branch registers. */
unsigned long int p_regs; /* Predicates. */
-} mcountext_;
+} mcontext_t;
typedef struct ucontext
diff --git a/sysdeps/unix/sysv/linux/ia64/syscalls.list b/sysdeps/unix/sysv/linux/ia64/syscalls.list
new file mode 100644
index 0000000000..dab59dc6b6
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/ia64/syscalls.list
@@ -0,0 +1,77 @@
+# File name Caller Syscall name # args Strong name Weak names
+
+umount2 - umount 2 __umount2 umount2
+
+# Whee! 64-bit systems naturally implement llseek.
+llseek EXTRA lseek 3 __llseek llseek __lseek64 lseek64
+pread - pread 4 __syscall_pread __syscall_pread64 __pread pread __pread64 pread64
+pwrite - pwrite 4 __syscall_pwrite __syscall_pwrite64 __pwrite pwrite __pwrite64 pwrite64
+fstatfs - fstatfs 2 __fstatfs fstatfs fstatfs64
+statfs - statfs 2 __statfs statfs statfs64
+mmap - mmap 6 __mmap mmap __mmap64 mmap64
+getpeername - getpeername 3 __getpeername getpeername
+getpriority - getpriority 2 __getpriority getpriority
+
+# semaphore and shm system calls
+msgctl - msgctl 3 __msgctl msgctl
+msgget - msgget 2 __msgget msgget
+msgrcv - msgrcv 5 __msgrcv msgrcv
+msgsnd - msgsnd 4 __msgsnd msgsnd
+shmat - shmat 3 __shmat shmat
+shmctl - shmctl 3 __shmctl shmctl
+shmdt - shmdt 1 __shmdt shmdt
+shmget - shmget 3 __shmget shmget
+semop - semop 3 __semop semop
+semget - semget 3 __semget semget
+semctl - semctl 4 __semctl semctl
+
+# proper socket implementations:
+accept - accept 3 __libc_accept __accept accept
+bind - bind 3 __bind bind
+connect - connect 3 __libc_connect __connect connect
+getpeername - getpeername 3 __getpeername getpeername
+getsockname - getsockname 3 __getsockname getsockname
+getsockopt - getsockopt 5 __getsockopt getsockopt
+listen - listen 2 __listen listen
+recv - recv 4 __libc_recv __recv recv
+recvfrom - recvfrom 6 __libc_recvfrom __recvfrom recvfrom
+recvmsg - recvmsg 3 __libc_recvmsg recvmsg
+send - send 4 __libc_send __send send
+sendmsg - sendmsg 3 __libc_sendmsg sendmsg
+sendto - sendto 6 __libc_sendto __sendto sendto
+setsockopt - setsockopt 5 __setsockopt setsockopt
+socket - socket 3 __socket socket
+socketpair - socketpair 4 __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
+shutdown - shutdown 2 __shutdown shutdown
+sysctl - _sysctl 6 __sysctl sysctl
+
+getresuid - getresuid 3 getresuid
+getresgid - getresgid 3 getresgid
+
+rt_sigaction EXTRA rt_sigaction 4 __syscall_rt_sigaction rt_sigaction
+rt_sigpending EXTRA rt_sigpending 2 __syscall_rt_sigpending rt_sigpending
+rt_sigprocmask EXTRA rt_sigprocmask 4 __syscall_rt_sigprocmask rt_sigprocmask
+rt_sigqueueinfo EXTRA rt_sigqueueinfo 3 __syscall_rt_sigqueueinfo rt_sigqueueinfo
+rt_sigsuspend EXTRA rt_sigsuspend 2 __syscall_rt_sigsuspend rt_sigsuspend
+rt_sigtimedwait EXTRA rt_sigtimedwait 4 __syscall_rt_sigtimedwait rt_sigtimedwait
+
+# System calls with wrappers.
+s_execve execve execve 3 __syscall_execve
+s_getcwd getcwd getcwd 2 __syscall_getcwd getcwd
+s_getdents getdents getdents 3 __syscall_getdents getdents
+sys_mknod xmknod mknod 3 __syscall_mknod
+sys_readv readv readv 3 __syscall_readv
+sys_writev writev writev 3 __syscall_writev
+s_getpagesize getpagesize getpagesize 0 __syscall_getpagesize
+s_poll poll poll 3 __syscall_poll
+s_reboot reboot reboot 3 __syscall_reboot
+s_ustat ustat ustat 2 __syscall_ustat
+s_stat xstat stat 2 __syscall_stat
+s_lstat lxstat lstat 2 __syscall_lstat
+s_fstat fxstat fstat 2 __syscall_fstat