glibc/sysdeps/generic/bp-thunks.h

71 lines
2.0 KiB
C
Raw Normal View History

* sysdeps/generic/bp-checks.h: New file. * sysdeps/generic/bp-thunks.h: Replace generic thunk definitions with list of #include files. * sysdeps/unix/make-syscalls.sh: Handle new arg signature keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation. Don't generate BP thunk if `V' appears in signature. Generate thunks with complete bounds checks. * sysdeps/unix/syscalls.list: Refine signatures using new keyletters. * sysdeps/unix/inet/syscalls.list: Likewise. * sysdeps/unix/mman/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise. 2000-07-05 Greg McGary <greg@mcgary.org> * sysdeps/generic/bp-checks.h: New file. * sysdeps/generic/bp-thunks.h: Replace generic thunk definitions with list of #include files. * sysdeps/unix/make-syscalls.sh: Handle new arg signature keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation. Don't generate BP thunk if `V' appears in signature. Generate thunks with complete bounds checks. * sysdeps/unix/syscalls.list: Refine signatures using new keyletters. * sysdeps/unix/inet/syscalls.list: Likewise. * sysdeps/unix/mman/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-06 00:48:39 +00:00
/* Bounded-pointer syscall thunk support.
* sysdeps/generic/bp-thunks.h: Protect includes with [!__ASSEMBLER__]. * sysdeps/unix/sysv/linux/i386/bp-thunks.h: Likewise. * sysdeps/unix/sysv/linux/Makefile ($(objpfx)syscall-%.h): Use $(make-target-directory). * sysdeps/unix/Makefile ($(objpfx)stub-syscalls.c): Likewise. * Makerules (compile-mkdep-flags): New variable, pass -MD -MF $@.d. (compile-command.S): Don't use ifndef. Append $(compile-mkdep-flags). (compile-command.s, compile-command.c): Likewise. ($(objpfx)%.d): All such pattern rules removed. ($(+sysdir_pfx)sysd-rules): Don't generate them. ($(common-objpfx)dummy.d): Target removed. (make-dummy-dep): Variable removed. (generate-md5): Likewise. (%.d: %.dt): New pattern rule. (+depfiles): Use $(wildcard) function to get just existing *.d files and .d files for existing *.dt files. (common-clean): Remove all *.d and *.dt files. (before-compile): Add $(objpfx). when it doesn't exist, regardless of $(no_deps). * elf/rtld-Rules ($(objpfx)rtld-%.d): All such pattern rules removed. (rtld-depfiles): Use .os.d instead of .d names. Include existing *.d files and .d files for existing *.dt files. * Makerules ($(common-objpfx)%.make): Protect with [! subdir]. Use -MD, -MT and -MF flags instead of SUNPRO_DEPENDENCIES variable. * sysdeps/unix/Makefile ($(common-objpfx)s-%.d): Remove compat.h hack. Do s-*.d includes only if we have some syscall routines in this subdir. * include/libc-symbols.h (libc_freeres_ptr): Use %nobits instead of @nobits. The former is accepted by gas on any ELF platform.
2003-05-02 02:21:25 +00:00
Copyright (C) 2000, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Greg McGary <greg@mcgary.org>
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 _bpthunks_h_
#define _bpthunks_h_
* sysdeps/generic/bp-thunks.h: Protect includes with [!__ASSEMBLER__]. * sysdeps/unix/sysv/linux/i386/bp-thunks.h: Likewise. * sysdeps/unix/sysv/linux/Makefile ($(objpfx)syscall-%.h): Use $(make-target-directory). * sysdeps/unix/Makefile ($(objpfx)stub-syscalls.c): Likewise. * Makerules (compile-mkdep-flags): New variable, pass -MD -MF $@.d. (compile-command.S): Don't use ifndef. Append $(compile-mkdep-flags). (compile-command.s, compile-command.c): Likewise. ($(objpfx)%.d): All such pattern rules removed. ($(+sysdir_pfx)sysd-rules): Don't generate them. ($(common-objpfx)dummy.d): Target removed. (make-dummy-dep): Variable removed. (generate-md5): Likewise. (%.d: %.dt): New pattern rule. (+depfiles): Use $(wildcard) function to get just existing *.d files and .d files for existing *.dt files. (common-clean): Remove all *.d and *.dt files. (before-compile): Add $(objpfx). when it doesn't exist, regardless of $(no_deps). * elf/rtld-Rules ($(objpfx)rtld-%.d): All such pattern rules removed. (rtld-depfiles): Use .os.d instead of .d names. Include existing *.d files and .d files for existing *.dt files. * Makerules ($(common-objpfx)%.make): Protect with [! subdir]. Use -MD, -MT and -MF flags instead of SUNPRO_DEPENDENCIES variable. * sysdeps/unix/Makefile ($(common-objpfx)s-%.d): Remove compat.h hack. Do s-*.d includes only if we have some syscall routines in this subdir. * include/libc-symbols.h (libc_freeres_ptr): Use %nobits instead of @nobits. The former is accepted by gas on any ELF platform.
2003-05-02 02:21:25 +00:00
#ifndef __ASSEMBLER__
* sysdeps/generic/bp-checks.h: New file. * sysdeps/generic/bp-thunks.h: Replace generic thunk definitions with list of #include files. * sysdeps/unix/make-syscalls.sh: Handle new arg signature keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation. Don't generate BP thunk if `V' appears in signature. Generate thunks with complete bounds checks. * sysdeps/unix/syscalls.list: Refine signatures using new keyletters. * sysdeps/unix/inet/syscalls.list: Likewise. * sysdeps/unix/mman/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise. 2000-07-05 Greg McGary <greg@mcgary.org> * sysdeps/generic/bp-checks.h: New file. * sysdeps/generic/bp-thunks.h: Replace generic thunk definitions with list of #include files. * sysdeps/unix/make-syscalls.sh: Handle new arg signature keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation. Don't generate BP thunk if `V' appears in signature. Generate thunks with complete bounds checks. * sysdeps/unix/syscalls.list: Refine signatures using new keyletters. * sysdeps/unix/inet/syscalls.list: Likewise. * sysdeps/unix/mman/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-06 00:48:39 +00:00
/* This header is included by the syscall BP thunks defined in
sysd-syscalls, as created by sysdeps/unix/make-syscalls.sh. It
includes all headers that contain prototype declarations for system
call functions. */
* sysdeps/generic/bp-checks.h: New file. * sysdeps/generic/bp-thunks.h: Replace generic thunk definitions with list of #include files. * sysdeps/unix/make-syscalls.sh: Handle new arg signature keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation. Don't generate BP thunk if `V' appears in signature. Generate thunks with complete bounds checks. * sysdeps/unix/syscalls.list: Refine signatures using new keyletters. * sysdeps/unix/inet/syscalls.list: Likewise. * sysdeps/unix/mman/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise. 2000-07-05 Greg McGary <greg@mcgary.org> * sysdeps/generic/bp-checks.h: New file. * sysdeps/generic/bp-thunks.h: Replace generic thunk definitions with list of #include files. * sysdeps/unix/make-syscalls.sh: Handle new arg signature keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation. Don't generate BP thunk if `V' appears in signature. Generate thunks with complete bounds checks. * sysdeps/unix/syscalls.list: Refine signatures using new keyletters. * sysdeps/unix/inet/syscalls.list: Likewise. * sysdeps/unix/mman/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-06 00:48:39 +00:00
#include <libc-symbols.h>
#include <bp-sym.h>
#include <bp-checks.h>
/* Get `struct timeval' definition for select. */
#define __need_timeval
#include <bits/time.h>
* sysdeps/generic/bp-checks.h: New file. * sysdeps/generic/bp-thunks.h: Replace generic thunk definitions with list of #include files. * sysdeps/unix/make-syscalls.sh: Handle new arg signature keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation. Don't generate BP thunk if `V' appears in signature. Generate thunks with complete bounds checks. * sysdeps/unix/syscalls.list: Refine signatures using new keyletters. * sysdeps/unix/inet/syscalls.list: Likewise. * sysdeps/unix/mman/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise. 2000-07-05 Greg McGary <greg@mcgary.org> * sysdeps/generic/bp-checks.h: New file. * sysdeps/generic/bp-thunks.h: Replace generic thunk definitions with list of #include files. * sysdeps/unix/make-syscalls.sh: Handle new arg signature keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation. Don't generate BP thunk if `V' appears in signature. Generate thunks with complete bounds checks. * sysdeps/unix/syscalls.list: Refine signatures using new keyletters. * sysdeps/unix/inet/syscalls.list: Likewise. * sysdeps/unix/mman/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-06 00:48:39 +00:00
#include <stddef.h>
#include <unistd.h>
#include <sched.h>
#include <signal.h>
#include <fcntl.h>
#include <time.h>
* sysdeps/generic/bp-checks.h: New file. * sysdeps/generic/bp-thunks.h: Replace generic thunk definitions with list of #include files. * sysdeps/unix/make-syscalls.sh: Handle new arg signature keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation. Don't generate BP thunk if `V' appears in signature. Generate thunks with complete bounds checks. * sysdeps/unix/syscalls.list: Refine signatures using new keyletters. * sysdeps/unix/inet/syscalls.list: Likewise. * sysdeps/unix/mman/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise. 2000-07-05 Greg McGary <greg@mcgary.org> * sysdeps/generic/bp-checks.h: New file. * sysdeps/generic/bp-thunks.h: Replace generic thunk definitions with list of #include files. * sysdeps/unix/make-syscalls.sh: Handle new arg signature keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation. Don't generate BP thunk if `V' appears in signature. Generate thunks with complete bounds checks. * sysdeps/unix/syscalls.list: Refine signatures using new keyletters. * sysdeps/unix/inet/syscalls.list: Likewise. * sysdeps/unix/mman/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-06 00:48:39 +00:00
#include <utime.h>
#include <stdio.h>
* sysdeps/generic/bp-checks.h: New file. * sysdeps/generic/bp-thunks.h: Replace generic thunk definitions with list of #include files. * sysdeps/unix/make-syscalls.sh: Handle new arg signature keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation. Don't generate BP thunk if `V' appears in signature. Generate thunks with complete bounds checks. * sysdeps/unix/syscalls.list: Refine signatures using new keyletters. * sysdeps/unix/inet/syscalls.list: Likewise. * sysdeps/unix/mman/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise. 2000-07-05 Greg McGary <greg@mcgary.org> * sysdeps/generic/bp-checks.h: New file. * sysdeps/generic/bp-thunks.h: Replace generic thunk definitions with list of #include files. * sysdeps/unix/make-syscalls.sh: Handle new arg signature keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation. Don't generate BP thunk if `V' appears in signature. Generate thunks with complete bounds checks. * sysdeps/unix/syscalls.list: Refine signatures using new keyletters. * sysdeps/unix/inet/syscalls.list: Likewise. * sysdeps/unix/mman/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-06 00:48:39 +00:00
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/klog.h>
#include <sys/mman.h>
#include <sys/mount.h>
#include <sys/quota.h>
#include <sys/resource.h>
#include <sys/select.h>
#include <io/sys/sendfile.h>
* sysdeps/generic/bp-checks.h: New file. * sysdeps/generic/bp-thunks.h: Replace generic thunk definitions with list of #include files. * sysdeps/unix/make-syscalls.sh: Handle new arg signature keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation. Don't generate BP thunk if `V' appears in signature. Generate thunks with complete bounds checks. * sysdeps/unix/syscalls.list: Refine signatures using new keyletters. * sysdeps/unix/inet/syscalls.list: Likewise. * sysdeps/unix/mman/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise. 2000-07-05 Greg McGary <greg@mcgary.org> * sysdeps/generic/bp-checks.h: New file. * sysdeps/generic/bp-thunks.h: Replace generic thunk definitions with list of #include files. * sysdeps/unix/make-syscalls.sh: Handle new arg signature keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation. Don't generate BP thunk if `V' appears in signature. Generate thunks with complete bounds checks. * sysdeps/unix/syscalls.list: Refine signatures using new keyletters. * sysdeps/unix/inet/syscalls.list: Likewise. * sysdeps/unix/mman/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-06 00:48:39 +00:00
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/statfs.h>
#include <sys/swap.h>
#include <sys/sysinfo.h>
#include <sys/time.h>
#include <sys/times.h>
#include <sys/timex.h>
#include <sys/utsname.h>
#include <sys/wait.h>
* sysdeps/generic/bp-thunks.h: Protect includes with [!__ASSEMBLER__]. * sysdeps/unix/sysv/linux/i386/bp-thunks.h: Likewise. * sysdeps/unix/sysv/linux/Makefile ($(objpfx)syscall-%.h): Use $(make-target-directory). * sysdeps/unix/Makefile ($(objpfx)stub-syscalls.c): Likewise. * Makerules (compile-mkdep-flags): New variable, pass -MD -MF $@.d. (compile-command.S): Don't use ifndef. Append $(compile-mkdep-flags). (compile-command.s, compile-command.c): Likewise. ($(objpfx)%.d): All such pattern rules removed. ($(+sysdir_pfx)sysd-rules): Don't generate them. ($(common-objpfx)dummy.d): Target removed. (make-dummy-dep): Variable removed. (generate-md5): Likewise. (%.d: %.dt): New pattern rule. (+depfiles): Use $(wildcard) function to get just existing *.d files and .d files for existing *.dt files. (common-clean): Remove all *.d and *.dt files. (before-compile): Add $(objpfx). when it doesn't exist, regardless of $(no_deps). * elf/rtld-Rules ($(objpfx)rtld-%.d): All such pattern rules removed. (rtld-depfiles): Use .os.d instead of .d names. Include existing *.d files and .d files for existing *.dt files. * Makerules ($(common-objpfx)%.make): Protect with [! subdir]. Use -MD, -MT and -MF flags instead of SUNPRO_DEPENDENCIES variable. * sysdeps/unix/Makefile ($(common-objpfx)s-%.d): Remove compat.h hack. Do s-*.d includes only if we have some syscall routines in this subdir. * include/libc-symbols.h (libc_freeres_ptr): Use %nobits instead of @nobits. The former is accepted by gas on any ELF platform.
2003-05-02 02:21:25 +00:00
#endif /* Not __ASSEMBLER__. */
#endif /* _bpthunks_h_ */