1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
|
/* Copyright (C) 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Miguel de Icaza <miguel@gnu.ai.mit.edu>, January 1997.
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. */
#ifndef _LINUX_SPARC_SYSDEP_H
#define _LINUX_SPARC_SYSDEP_H 1
#include <sysdeps/unix/sparc/sysdep.h>
/* Some SparcLinux syscalls are SunOS specific;
we don't want to use them inside glibc */
#undef __NR_execv
#undef __NR_mctl
#undef __NR_sbrk
#undef __NR_sstk
#undef __NR_vadvise
#undef __NR_madvise
#undef __NR_mincore
#undef __NR_gethostname
#undef __NR_getdtablesize
#undef __NR_getdopt
#undef __NR_setdopt
#undef __NR_socket
#undef __NR_connect
#undef __NR_accept
#undef __NR_send
#undef __NR_recv
#undef __NR_bind
#undef __NR_setsockopt
#undef __NR_listen
#undef __NR_sigvec
#undef __NR_sigblock
#undef __NR_sigsetmask
#undef __NR_sigpause
#undef __NR_sigstack
#undef __NR_recvmsg
#undef __NR_sendmsg
#undef __NR_vtrace
#undef __NR_getsockopt
#undef __NR_recvfrom
#undef __NR_sendto
#undef __NR_shutdown
#undef __NR_socketpair
#undef __NR_utimes
#undef __NR_adjtime
#undef __NR_getpeername
#undef __NR_gethostid
#undef __NR_killpg
#undef __NR_getsockname
#undef __NR_getmsg
#undef __NR_putmsg
#undef __NR_poll
#undef __NR_nfssvc
#undef __NR_getdirentries
#undef __NR_async_daemon
#undef __NR_getfh
#undef __NR_getdomainname
#undef __NR_exportfs
#undef __NR_semsys
#undef __NR_msgsys
#undef __NR_shmsys
#undef __NR_auditsys
#undef __NR_rfssys
#undef __NR_fchroot
#undef __NR_vpixsys
#undef __NR_aioread
#undef __NR_aiowrite
#undef __NR_aiowait
#undef __NR_aiocancel
#undef __NR_pathconf
#undef __NR_fpathconf
#undef __NR_sysconf
#undef SYS_ify
#define SYS_ify(syscall_name) __NR_##syscall_name
#ifdef ASSEMBLER
#ifdef DONT_LOAD_G1
# define LOADSYSCALL(x)
#else
# define LOADSYSCALL(x) mov __NR_##x, %g1
#endif
/* Linux/SPARC uses a different trap number */
#undef PSEUDO
#undef ENTRY
#undef END
#undef LOC
#define ENTRY(name) \
.global C_SYMBOL_NAME(name); \
.align 4;\
C_LABEL(name);\
.type name,@function;
#define END(name) \
.size name, . - name
#define LOC(name) . ## L ## name
#ifdef PIC
#define SYSCALL_ERROR_HANDLER \
.global C_SYMBOL_NAME(__errno_location); \
.type C_SYMBOL_NAME(__errno_location),@function; \
save %sp,-96,%sp; \
call __errno_location; \
nop; \
st %i0,[%o0]; \
restore; \
retl; \
mov -1,%o0;
#else
#define SYSCALL_ERROR_HANDLER \
save %sp,-96,%sp; \
call __errno_location; \
nop; \
st %i0,[%o0]; \
restore; \
retl; \
mov -1,%o0;
#endif /* PIC */
#define PSEUDO(name, syscall_name, args) \
.text; \
ENTRY(name); \
LOADSYSCALL(syscall_name); \
ta 0x10; \
bcc,a 9000f; \
nop; \
SYSCALL_ERROR_HANDLER; \
9000:;
#endif /* ASSEMBLER */
#endif /* linux/sparc/sysdep.h */
|