From 697568d1b48a497024bca234483a157cee79c7a2 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 21 Jun 2000 04:35:29 +0000 Subject: Update. 2000-06-20 Jes Sorensen * sysdeps/unix/sysv/linux/ia64/syscalls.list: New file. 2000-06-20 Jes Sorensen * 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 * sysdeps/unix/sysv/linux/ia64/getpagesize.c: New file. 2000-06-20 Jes Sorensen * sysdeps/unix/sysv/linux/ia64/sys/ucontext.h: Fix typo. --- sysdeps/unix/sysv/linux/ia64/getpagesize.c | 46 ++++++++++++++++ sysdeps/unix/sysv/linux/ia64/machine-gmon.h | 26 +++++++++ sysdeps/unix/sysv/linux/ia64/profil-counter.h | 27 ++++++++++ sysdeps/unix/sysv/linux/ia64/sys/ucontext.h | 2 +- sysdeps/unix/sysv/linux/ia64/syscalls.list | 77 +++++++++++++++++++++++++++ 5 files changed, 177 insertions(+), 1 deletion(-) create mode 100644 sysdeps/unix/sysv/linux/ia64/getpagesize.c create mode 100644 sysdeps/unix/sysv/linux/ia64/machine-gmon.h create mode 100644 sysdeps/unix/sysv/linux/ia64/profil-counter.h create mode 100644 sysdeps/unix/sysv/linux/ia64/syscalls.list (limited to 'sysdeps/unix/sysv/linux') 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 +#include + +#include +#include + +/* 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 -- cgit 1.4.1