mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-10 23:30:07 +00:00
Update.
2002-07-09 Martin Schwidefsky <schwidefsky@de.ibm.com> * sysdeps/s390/bits/byteswap.h: Unified 31/64 bit byteswap.h. * sysdeps/s390/s390-32/bits/byteswap.h: Remove. * sysdeps/s390/s390-64/bits/byteswap.h: Remove. * sysdeps/s390/bits/link.h: Unified 31/64 bit link.h. * sysdeps/s390/s390-32/bits/link.h: Remove. * sysdeps/s390/s390-64/bits/link.h: Remove. * sysdeps/s390/bits/setjmp.h: Unified 31/64 bit setjmp.h. * sysdeps/s390/s390-32/bits/setjmp.h: Remove. * sysdeps/s390/s390-64/bits/setjmp.h: Remove. * sysdeps/s390/bits/wordsize.h: New file. * sysdeps/unix/sysv/linux/s390/bits/elfclass.h: Unified 31/64 bit elfclass.h. * sysdeps/unix/sysv/linux/s390/s390-64/bits/elfclass.h: Remove. * sysdeps/unix/sysv/linux/s390/bits/fcntl.h: Unified 31/64 bit fcntl.h. * sysdeps/unix/sysv/linux/s390/s390-32/bits/fcntl.h: Remove. * sysdeps/unix/sysv/linux/s390/s390-64/bits/fcntl.h: Remove. * sysdeps/unix/sysv/linux/s390/bits/ipc.h: Unified 31/64 bit ipc.h. * sysdeps/unix/sysv/linux/s390/s390-64/bits/ipc.h: Remove. * sysdeps/unix/sysv/linux/s390/bits/mman.h: Unified 31/64 bit mman.h. * sysdeps/unix/sysv/linux/s390/s390-32/bits/mman.h: Remove. * sysdeps/unix/sysv/linux/s390/s390-64/bits/mman.h: Remove. * sysdeps/unix/sysv/linux/s390/bits/msq.h: Unified 31/64 bit msq.h. * ysdeps/unix/sysv/linux/s390/s390-64/bits/msq.h: Remove. * sysdeps/unix/sysv/linux/s390/bits/resource.h: Unified 31/64 bit resource.h. * sysdeps/unix/sysv/linux/s390/s390-32/bits/resource.h: Remove. * sysdeps/unix/sysv/linux/s390/s390-64/bits/resource.h: Remove. * sysdeps/unix/sysv/linux/s390/bits/sem.h: Unified 31/64 bit sem.h. * sysdeps/unix/sysv/linux/s390/s390-64/bits/sem.h: Remove. * sysdeps/unix/sysv/linux/s390/bits/shm.h: Unified 31/64 bit shm.h. * sysdeps/unix/sysv/linux/s390/s390-64/bits/shm.h: Remove. * sysdeps/unix/sysv/linux/s390/bits/sigaction.h: Unified 31/64 bit sigaction.h. * sysdeps/unix/sysv/linux/s390/s390-64/bits/sigaction.h: Remove. * sysdeps/unix/sysv/linux/s390/bits/siginfo.h: Unified 31/64 bit siginfo.h. * sysdeps/unix/sysv/linux/s390/s390-64/bits/siginfo.h: Remove. * sysdeps/unix/sysv/linux/s390/s390-64/bits/sigstack.h: Remove. * sysdeps/unix/sysv/linux/s390/bits/socket.h: Unified 31/64 bit socket.h. * sysdeps/unix/sysv/linux/s390/s390-64/bits/socket.h: Remove. * sysdeps/unix/sysv/linux/s390/bits/stat.h: Unified 31/64 bit stat.h. * sysdeps/unix/sysv/linux/s390/s390-32/bits/stat.h: Remove. * sysdeps/unix/sysv/linux/s390/s390-64/bits/stat.h: Remove. * sysdeps/unix/sysv/linux/s390/bits/types.h: Unified 31/64 bit types.h. * sysdeps/unix/sysv/linux/s390/s390-64/bits/types.h: Remove. * sysdeps/unix/sysv/linux/s390/net/route.h: New file. * sysdeps/unix/sysv/linux/s390/sys/procfs.h: Unified 31/64 bit procfs.h. * sysdeps/unix/sysv/linux/s390/s390-32/sys/procfs.h: Remove. * sysdeps/unix/sysv/linux/s390/s390-64/sys/procfs.h: Remove. * sysdeps/unix/sysv/linux/s390/sys/ucontext.h: Unified 31/64 bit ucontext.h. * sysdeps/unix/sysv/linux/s390/s390-32/sys/ucontext.h: Remove. * sysdeps/unix/sysv/linux/s390/s390-64/sys/ucontext.h: Remove.
This commit is contained in:
parent
3e0dd85b10
commit
7bf75551f0
58
ChangeLog
58
ChangeLog
@ -1,3 +1,61 @@
|
||||
2002-07-09 Martin Schwidefsky <schwidefsky@de.ibm.com>
|
||||
|
||||
* sysdeps/s390/bits/byteswap.h: Unified 31/64 bit byteswap.h.
|
||||
* sysdeps/s390/s390-32/bits/byteswap.h: Remove.
|
||||
* sysdeps/s390/s390-64/bits/byteswap.h: Remove.
|
||||
* sysdeps/s390/bits/link.h: Unified 31/64 bit link.h.
|
||||
* sysdeps/s390/s390-32/bits/link.h: Remove.
|
||||
* sysdeps/s390/s390-64/bits/link.h: Remove.
|
||||
* sysdeps/s390/bits/setjmp.h: Unified 31/64 bit setjmp.h.
|
||||
* sysdeps/s390/s390-32/bits/setjmp.h: Remove.
|
||||
* sysdeps/s390/s390-64/bits/setjmp.h: Remove.
|
||||
* sysdeps/s390/bits/wordsize.h: New file.
|
||||
* sysdeps/unix/sysv/linux/s390/bits/elfclass.h: Unified 31/64 bit
|
||||
elfclass.h.
|
||||
* sysdeps/unix/sysv/linux/s390/s390-64/bits/elfclass.h: Remove.
|
||||
* sysdeps/unix/sysv/linux/s390/bits/fcntl.h: Unified 31/64 bit fcntl.h.
|
||||
* sysdeps/unix/sysv/linux/s390/s390-32/bits/fcntl.h: Remove.
|
||||
* sysdeps/unix/sysv/linux/s390/s390-64/bits/fcntl.h: Remove.
|
||||
* sysdeps/unix/sysv/linux/s390/bits/ipc.h: Unified 31/64 bit ipc.h.
|
||||
* sysdeps/unix/sysv/linux/s390/s390-64/bits/ipc.h: Remove.
|
||||
* sysdeps/unix/sysv/linux/s390/bits/mman.h: Unified 31/64 bit mman.h.
|
||||
* sysdeps/unix/sysv/linux/s390/s390-32/bits/mman.h: Remove.
|
||||
* sysdeps/unix/sysv/linux/s390/s390-64/bits/mman.h: Remove.
|
||||
* sysdeps/unix/sysv/linux/s390/bits/msq.h: Unified 31/64 bit msq.h.
|
||||
* ysdeps/unix/sysv/linux/s390/s390-64/bits/msq.h: Remove.
|
||||
* sysdeps/unix/sysv/linux/s390/bits/resource.h: Unified 31/64 bit
|
||||
resource.h.
|
||||
* sysdeps/unix/sysv/linux/s390/s390-32/bits/resource.h: Remove.
|
||||
* sysdeps/unix/sysv/linux/s390/s390-64/bits/resource.h: Remove.
|
||||
* sysdeps/unix/sysv/linux/s390/bits/sem.h: Unified 31/64 bit sem.h.
|
||||
* sysdeps/unix/sysv/linux/s390/s390-64/bits/sem.h: Remove.
|
||||
* sysdeps/unix/sysv/linux/s390/bits/shm.h: Unified 31/64 bit shm.h.
|
||||
* sysdeps/unix/sysv/linux/s390/s390-64/bits/shm.h: Remove.
|
||||
* sysdeps/unix/sysv/linux/s390/bits/sigaction.h: Unified 31/64 bit
|
||||
sigaction.h.
|
||||
* sysdeps/unix/sysv/linux/s390/s390-64/bits/sigaction.h: Remove.
|
||||
* sysdeps/unix/sysv/linux/s390/bits/siginfo.h: Unified 31/64 bit
|
||||
siginfo.h.
|
||||
* sysdeps/unix/sysv/linux/s390/s390-64/bits/siginfo.h: Remove.
|
||||
* sysdeps/unix/sysv/linux/s390/s390-64/bits/sigstack.h: Remove.
|
||||
* sysdeps/unix/sysv/linux/s390/bits/socket.h: Unified 31/64 bit
|
||||
socket.h.
|
||||
* sysdeps/unix/sysv/linux/s390/s390-64/bits/socket.h: Remove.
|
||||
* sysdeps/unix/sysv/linux/s390/bits/stat.h: Unified 31/64 bit stat.h.
|
||||
* sysdeps/unix/sysv/linux/s390/s390-32/bits/stat.h: Remove.
|
||||
* sysdeps/unix/sysv/linux/s390/s390-64/bits/stat.h: Remove.
|
||||
* sysdeps/unix/sysv/linux/s390/bits/types.h: Unified 31/64 bit types.h.
|
||||
* sysdeps/unix/sysv/linux/s390/s390-64/bits/types.h: Remove.
|
||||
* sysdeps/unix/sysv/linux/s390/net/route.h: New file.
|
||||
* sysdeps/unix/sysv/linux/s390/sys/procfs.h: Unified 31/64 bit
|
||||
procfs.h.
|
||||
* sysdeps/unix/sysv/linux/s390/s390-32/sys/procfs.h: Remove.
|
||||
* sysdeps/unix/sysv/linux/s390/s390-64/sys/procfs.h: Remove.
|
||||
* sysdeps/unix/sysv/linux/s390/sys/ucontext.h: Unified 31/64 bit
|
||||
ucontext.h.
|
||||
* sysdeps/unix/sysv/linux/s390/s390-32/sys/ucontext.h: Remove.
|
||||
* sysdeps/unix/sysv/linux/s390/s390-64/sys/ucontext.h: Remove.
|
||||
|
||||
2002-07-11 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* Versions.def (libc): Add GLIBC_2.3.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Macros to swap the order of bytes in integer values. 64 bit S/390 version.
|
||||
Copyright (C) 2001, 2002 Free Software Foundation, Inc.
|
||||
/* Macros to swap the order of bytes in integer values. s390 version.
|
||||
Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
@ -22,6 +22,8 @@
|
||||
# error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead."
|
||||
#endif
|
||||
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
#ifndef _BITS_BYTESWAP_H
|
||||
#define _BITS_BYTESWAP_H 1
|
||||
|
||||
@ -30,7 +32,8 @@
|
||||
|
||||
/* Swap bytes in 16 bit value. */
|
||||
#if defined __GNUC__ && __GNUC__ >= 2
|
||||
# define __bswap_16(x) \
|
||||
# if __WORDSIZE == 64
|
||||
# define __bswap_16(x) \
|
||||
(__extension__ \
|
||||
({ unsigned short int __v; \
|
||||
if (__builtin_constant_p (x)) \
|
||||
@ -42,6 +45,23 @@
|
||||
: "=&d" (__v) : "m" (__tmp) ); \
|
||||
} \
|
||||
__v; }))
|
||||
# else
|
||||
# define __bswap_16(x) \
|
||||
(__extension__ \
|
||||
({ unsigned short int __v; \
|
||||
if (__builtin_constant_p (x)) \
|
||||
__v = __bswap_constant_16 (x); \
|
||||
else { \
|
||||
unsigned short int __tmp = (unsigned short int) (x); \
|
||||
__asm__ __volatile__ ( \
|
||||
"sr %0,%0\n" \
|
||||
"la 1,%1\n" \
|
||||
"icm %0,2,1(1)\n" \
|
||||
"ic %0,0(1)" \
|
||||
: "=&d" (__v) : "m" (__tmp) : "1"); \
|
||||
} \
|
||||
__v; }))
|
||||
# endif
|
||||
#else
|
||||
/* This is better than nothing. */
|
||||
#define __bswap_16(x) __bswap_constant_16 (x)
|
||||
@ -53,6 +73,7 @@
|
||||
(((x) & 0x0000ff00) << 8) | (((x) & 0x000000ff) << 24))
|
||||
|
||||
#if defined __GNUC__ && __GNUC__ >= 2
|
||||
# if __WORDSIZE == 64
|
||||
# define __bswap_32(x) \
|
||||
(__extension__ \
|
||||
({ unsigned int __v; \
|
||||
@ -65,6 +86,24 @@
|
||||
: "=&d" (__v) : "m" (__tmp)); \
|
||||
} \
|
||||
__v; }))
|
||||
# else
|
||||
# define __bswap_32(x) \
|
||||
(__extension__ \
|
||||
({ unsigned int __v; \
|
||||
if (__builtin_constant_p (x)) \
|
||||
__v = __bswap_constant_32 (x); \
|
||||
else { \
|
||||
unsigned int __tmp = (unsigned int) (x); \
|
||||
__asm__ __volatile__ ( \
|
||||
"la 1,%1\n" \
|
||||
"icm %0,8,3(1)\n" \
|
||||
"icm %0,4,2(1)\n" \
|
||||
"icm %0,2,1(1)\n" \
|
||||
"ic %0,0(1)" \
|
||||
: "=&d" (__v) : "m" (__tmp) : "1"); \
|
||||
} \
|
||||
__v; }))
|
||||
# endif
|
||||
#else
|
||||
# define __bswap_32(x) __bswap_constant_32 (x)
|
||||
#endif
|
||||
@ -77,6 +116,7 @@
|
||||
(((x)&0x000000000000ff00) << 40) | (((x)&0x00000000000000ff) << 56))
|
||||
|
||||
#if defined __GNUC__ && __GNUC__ >= 2
|
||||
# if __WORDSIZE == 64
|
||||
# define __bswap_64(x) \
|
||||
(__extension__ \
|
||||
({ unsigned long __w; \
|
||||
@ -89,6 +129,16 @@
|
||||
: "=&d" (__w) : "m" (__tmp)); \
|
||||
} \
|
||||
__w; }))
|
||||
# else
|
||||
# define __bswap_64(x) \
|
||||
__extension__ \
|
||||
({ union { unsigned long long int __ll; \
|
||||
unsigned long int __l[2]; } __w, __r; \
|
||||
__w.__ll = (x); \
|
||||
__r.__l[0] = __bswap_32 (__w.__l[1]); \
|
||||
__r.__l[1] = __bswap_32 (__w.__l[0]); \
|
||||
__r.__ll; })
|
||||
# endif
|
||||
#else
|
||||
# define __bswap_64(x) __bswap_constant_64 (x)
|
||||
#endif
|
13
sysdeps/s390/bits/link.h
Normal file
13
sysdeps/s390/bits/link.h
Normal file
@ -0,0 +1,13 @@
|
||||
#if __WORDSIZE == 64
|
||||
struct link_map_machine
|
||||
{
|
||||
Elf64_Addr plt; /* Address of .plt + 0x2e */
|
||||
Elf64_Addr gotplt; /* Address of .got + 0x18 */
|
||||
};
|
||||
#else
|
||||
struct link_map_machine
|
||||
{
|
||||
Elf32_Addr plt; /* Address of .plt + 0x2c */
|
||||
Elf32_Addr gotplt; /* Address of .got + 0x0c */
|
||||
};
|
||||
#endif
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 2000, 2001, 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
|
||||
@ -21,6 +21,8 @@
|
||||
#ifndef __S390_SETJMP_H__
|
||||
#define __S390_SETJMP_H__
|
||||
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
#define __JB_GPR6 0
|
||||
#define __JB_GPR7 1
|
||||
#define __JB_GPR8 2
|
||||
@ -38,8 +40,13 @@ typedef struct {
|
||||
/* We save registers 6-15. */
|
||||
long int __gregs[10];
|
||||
|
||||
#if __WORDSIZE == 64
|
||||
/* We save fpu registers 1, 3, 5 and 7. */
|
||||
long __fpregs[8];
|
||||
#else
|
||||
/* We save fpu registers 4 and 6. */
|
||||
long __fpregs[4];
|
||||
#endif
|
||||
} __jmp_buf[1];
|
||||
|
||||
#endif
|
7
sysdeps/s390/bits/wordsize.h
Normal file
7
sysdeps/s390/bits/wordsize.h
Normal file
@ -0,0 +1,7 @@
|
||||
/* Determine the wordsize from the preprocessor defines. */
|
||||
|
||||
#if defined __s390x__
|
||||
# define __WORDSIZE 64
|
||||
#else
|
||||
# define __WORDSIZE 32
|
||||
#endif
|
@ -1,91 +0,0 @@
|
||||
/* Macros to swap the order of bytes in integer values. s390 version.
|
||||
Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
|
||||
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 _BYTESWAP_H && !defined _NETINET_IN_H
|
||||
# error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead."
|
||||
#endif
|
||||
|
||||
#ifndef _BITS_BYTESWAP_H
|
||||
#define _BITS_BYTESWAP_H 1
|
||||
|
||||
#define __bswap_constant_16(x) \
|
||||
((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))
|
||||
|
||||
/* Swap bytes in 16 bit value. */
|
||||
#if defined __GNUC__ && __GNUC__ >= 2
|
||||
# define __bswap_16(x) \
|
||||
(__extension__ \
|
||||
({ unsigned short int __v; \
|
||||
if (__builtin_constant_p (x)) \
|
||||
__v = __bswap_constant_16 (x); \
|
||||
else { \
|
||||
unsigned short int __tmp = (unsigned short int) (x); \
|
||||
__asm__ __volatile__ ( \
|
||||
"sr %0,%0\n" \
|
||||
"la 1,%1\n" \
|
||||
"icm %0,2,1(1)\n" \
|
||||
"ic %0,0(1)" \
|
||||
: "=&d" (__v) : "m" (__tmp) : "1"); \
|
||||
} \
|
||||
__v; }))
|
||||
#else
|
||||
/* This is better than nothing. */
|
||||
#define __bswap_16(x) __bswap_constant_16 (x)
|
||||
#endif
|
||||
|
||||
/* Swap bytes in 32 bit value. */
|
||||
#define __bswap_constant_32(x) \
|
||||
((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | \
|
||||
(((x) & 0x0000ff00) << 8) | (((x) & 0x000000ff) << 24))
|
||||
|
||||
#if defined __GNUC__ && __GNUC__ >= 2
|
||||
# define __bswap_32(x) \
|
||||
(__extension__ \
|
||||
({ unsigned int __v; \
|
||||
if (__builtin_constant_p (x)) \
|
||||
__v = __bswap_constant_32 (x); \
|
||||
else { \
|
||||
unsigned int __tmp = (unsigned int) (x); \
|
||||
__asm__ __volatile__ ( \
|
||||
"la 1,%1\n" \
|
||||
"icm %0,8,3(1)\n" \
|
||||
"icm %0,4,2(1)\n" \
|
||||
"icm %0,2,1(1)\n" \
|
||||
"ic %0,0(1)" \
|
||||
: "=&d" (__v) : "m" (__tmp) : "1"); \
|
||||
} \
|
||||
__v; }))
|
||||
#else
|
||||
# define __bswap_32(x) __bswap_constant_32 (x)
|
||||
#endif
|
||||
|
||||
#if defined __GNUC__ && __GNUC__ >= 2
|
||||
/* Swap bytes in 64 bit value. */
|
||||
# define __bswap_64(x) \
|
||||
__extension__ \
|
||||
({ union { unsigned long long int __ll; \
|
||||
unsigned long int __l[2]; } __w, __r; \
|
||||
__w.__ll = (x); \
|
||||
__r.__l[0] = __bswap_32 (__w.__l[1]); \
|
||||
__r.__l[1] = __bswap_32 (__w.__l[0]); \
|
||||
__r.__ll; })
|
||||
#endif
|
||||
|
||||
#endif /* _BITS_BYTESWAP_H */
|
@ -1,5 +0,0 @@
|
||||
struct link_map_machine
|
||||
{
|
||||
Elf32_Addr plt; /* Address of .plt + 0x2c */
|
||||
Elf32_Addr gotplt; /* Address of .got + 0x0c */
|
||||
};
|
@ -1,5 +0,0 @@
|
||||
struct link_map_machine
|
||||
{
|
||||
Elf64_Addr plt; /* Address of .plt + 0x2e */
|
||||
Elf64_Addr gotplt; /* Address of .got + 0x18 */
|
||||
};
|
@ -1,52 +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. */
|
||||
|
||||
/* Define the machine-dependent type `jmp_buf'. 64 bit S/390 version. */
|
||||
|
||||
#ifndef __S390_SETJMP_H__
|
||||
#define __S390_SETJMP_H__
|
||||
|
||||
#define __JB_GPR6 0
|
||||
#define __JB_GPR7 1
|
||||
#define __JB_GPR8 2
|
||||
#define __JB_GPR9 3
|
||||
#define __JB_GPR10 4
|
||||
#define __JB_GPR11 5
|
||||
#define __JB_GPR12 6
|
||||
#define __JB_GPR13 7
|
||||
#define __JB_GPR14 8
|
||||
#define __JB_GPR15 9
|
||||
|
||||
#ifndef _ASM
|
||||
|
||||
typedef struct {
|
||||
/* We save registers 6-15. */
|
||||
long int __gregs[10];
|
||||
|
||||
/* We save fpu registers 4 and 6. */
|
||||
long __fpregs[8];
|
||||
} __jmp_buf[1];
|
||||
|
||||
#endif
|
||||
|
||||
/* Test if longjmp to JMPBUF would unwind the frame
|
||||
containing a local variable at ADDRESS. */
|
||||
#define _JMPBUF_UNWINDS(jmpbuf, address) \
|
||||
((void *) (address) < (void *) (jmpbuf)->__gregs[__JB_GPR15])
|
||||
|
||||
#endif /* __S390_SETJMP_H__ */
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 2001, 2002 Free Software Foundation, Inc.
|
||||
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
@ -29,6 +29,11 @@
|
||||
|
||||
#define __ELF_NATIVE_CLASS __WORDSIZE
|
||||
|
||||
#if __WORDSIZE == 64
|
||||
/* 64 bit Linux for S/390 is exceptional as it has .hash section with
|
||||
64 bit entries. */
|
||||
typedef uint64_t Elf_Symndx;
|
||||
#else
|
||||
/* 32 bit Linux for S/390 has normal .hash section entries with 32 bits. */
|
||||
typedef uint32_t Elf_Symndx;
|
||||
#endif
|
@ -1,5 +1,5 @@
|
||||
/* O_*, F_*, FD_* bit values for Linux.
|
||||
Copyright (C) 2000, 2001 Free Software Foundation, Inc.
|
||||
Copyright (C) 2000, 2001, 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
|
||||
@ -21,8 +21,8 @@
|
||||
# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
|
||||
#endif
|
||||
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
/* open/fcntl - O_SYNC is only implemented on blocks devices and on files
|
||||
located on an ext2 file system */
|
||||
@ -47,6 +47,15 @@
|
||||
# define O_NOFOLLOW 0400000 /* Do not follow links. */
|
||||
#endif
|
||||
|
||||
#ifdef __USE_LARGEFILE64
|
||||
# if __WORDSIZE == 64
|
||||
/* Not necessary, files are always with 64bit off_t. */
|
||||
# define O_LARGEFILE 0
|
||||
# else
|
||||
# define O_LARGEFILE 0100000
|
||||
# endif
|
||||
#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. */
|
||||
@ -55,28 +64,34 @@
|
||||
# define O_RSYNC O_SYNC /* Synchronize read operations. */
|
||||
#endif
|
||||
|
||||
#ifdef __USE_LARGEFILE64
|
||||
# define O_LARGEFILE 0100000
|
||||
#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. */
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
#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). */
|
||||
#if __WORDSIZE == 64
|
||||
# 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). */
|
||||
#else
|
||||
# define F_GETLK F_GETLK64 /* Get record locking info. */
|
||||
# define F_SETLK F_SETLK64 /* Set record locking info (non-blocking).*/
|
||||
# define F_SETLKW F_SETLKW64 /* Set record locking info (blocking). */
|
||||
# ifndef __USE_FILE_OFFSET64
|
||||
# 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). */
|
||||
# else
|
||||
# define F_GETLK F_GETLK64 /* Get record locking info. */
|
||||
# define F_SETLK F_SETLK64 /* Set record locking info (non-blocking).*/
|
||||
# define F_SETLKW F_SETLKW64 /* Set record locking info (blocking). */
|
||||
# endif
|
||||
# define F_GETLK64 12 /* Get record locking info. */
|
||||
# define F_SETLK64 13 /* Set record locking info (non-blocking). */
|
||||
# define F_SETLKW64 14 /* Set record locking info (blocking). */
|
||||
#endif
|
||||
#define F_GETLK64 12 /* Get record locking info. */
|
||||
#define F_SETLK64 13 /* Set record locking info (non-blocking). */
|
||||
#define F_SETLKW64 14 /* Set record locking info (blocking). */
|
||||
|
||||
#if defined __USE_BSD || defined __USE_XOPEN2K
|
||||
# define F_SETOWN 8 /* Get owner of socket (receiver of SIGIO). */
|
||||
@ -107,7 +122,7 @@
|
||||
#define F_SHLCK 8 /* or 4 */
|
||||
|
||||
#ifdef __USE_BSD
|
||||
/* operations for bsd flock(), also used by the kernel implementation */
|
||||
/* 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
|
||||
@ -137,7 +152,7 @@ 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'). */
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
#if __WORDSIZE == 64 || !defined __USE_FILE_OFFSET64
|
||||
__off_t l_start; /* Offset where the lock begins. */
|
||||
__off_t l_len; /* Size of the locked area; zero means until EOF. */
|
||||
#else
|
||||
@ -174,6 +189,11 @@ struct flock64
|
||||
# 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. */
|
||||
# if __WORDSIZE == 64
|
||||
# define POSIX_FADV_DONTNEED 6 /* Don't need these pages. */
|
||||
# define POSIX_FADV_NOREUSE 7 /* Data will be accessed once. */
|
||||
# else
|
||||
# define POSIX_FADV_DONTNEED 4 /* Don't need these pages. */
|
||||
# define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */
|
||||
# endif
|
||||
#endif
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 2001, 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
|
||||
@ -20,7 +20,8 @@
|
||||
# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <bits/types.h>
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
/* Mode bits for `msgget', `semget', and `shmget'. */
|
||||
#define IPC_CREAT 01000 /* Create key if key does not exist. */
|
||||
@ -47,32 +48,14 @@ struct ipc_perm
|
||||
__gid_t gid; /* Owner's group ID. */
|
||||
__uid_t cuid; /* Creator's user ID. */
|
||||
__gid_t cgid; /* Creator's group ID. */
|
||||
#if __WORDSIZE == 64
|
||||
__mode_t mode; /* Read/write permission. */
|
||||
unsigned short int __seq; /* Sequence number. */
|
||||
#else
|
||||
unsigned short int mode; /* Read/write permission. */
|
||||
unsigned short int __pad1;
|
||||
#endif
|
||||
unsigned short int __seq; /* Sequence number. */
|
||||
unsigned short int __pad2;
|
||||
unsigned long int __unused1;
|
||||
unsigned long int __unused2;
|
||||
};
|
||||
|
||||
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/* The actual system call: all functions are multiplexed by this. */
|
||||
extern int __ipc __P ((int __call, int __first, int __second, int __third,
|
||||
void *__ptr));
|
||||
|
||||
__END_DECLS
|
||||
|
||||
/* The codes for the functions to use the multiplexer `__ipc'. */
|
||||
#define IPCOP_semop 1
|
||||
#define IPCOP_semget 2
|
||||
#define IPCOP_semctl 3
|
||||
#define IPCOP_msgsnd 11
|
||||
#define IPCOP_msgrcv 12
|
||||
#define IPCOP_msgget 13
|
||||
#define IPCOP_msgctl 14
|
||||
#define IPCOP_shmat 21
|
||||
#define IPCOP_shmdt 22
|
||||
#define IPCOP_shmget 23
|
||||
#define IPCOP_shmctl 24
|
@ -1,5 +1,5 @@
|
||||
/* Definitions for POSIX memory map interface. Linux/s390 version.
|
||||
Copyright (C) 2000, 2001 Free Software Foundation, Inc.
|
||||
Copyright (C) 2000, 2001, 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
|
||||
@ -53,6 +53,7 @@
|
||||
/* These are Linux-specific. */
|
||||
#ifdef __USE_MISC
|
||||
# define MAP_GROWSDOWN 0x0100 /* Stack-like segment. */
|
||||
# define MAP_GROWSUP 0x0200 /* Register stack-like segment */
|
||||
# define MAP_DENYWRITE 0x0800 /* ETXTBSY */
|
||||
# define MAP_EXECUTABLE 0x1000 /* Mark it as an executable. */
|
||||
# define MAP_LOCKED 0x2000 /* Lock the mapping. */
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 2001, 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
|
||||
@ -17,31 +17,47 @@
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _SYS_MSG_H
|
||||
#error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
|
||||
# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <bits/types.h>
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
/* Define options for message queue functions. */
|
||||
/* 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 */
|
||||
#ifdef __USE_GNU
|
||||
# define MSG_EXCEPT 020000 /* recv any msg except of specified type */
|
||||
#endif
|
||||
|
||||
/* Types used in the structure definition. */
|
||||
typedef unsigned long int msgqnum_t;
|
||||
typedef unsigned long int msglen_t;
|
||||
|
||||
|
||||
/* Structure of record for one message inside the kernel.
|
||||
The type `struct __msg' is opaque. */
|
||||
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 */
|
||||
#if __WORDSIZE != 64
|
||||
unsigned long int __unused1;
|
||||
#endif
|
||||
__time_t msg_rtime; /* time of last msgrcv command */
|
||||
#if __WORDSIZE != 64
|
||||
unsigned long int __unused2;
|
||||
#endif
|
||||
__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 */
|
||||
#if __WORDSIZE != 64
|
||||
unsigned long int __unused3;
|
||||
#endif
|
||||
unsigned long int __msg_cbytes; /* current number of bytes on queue */
|
||||
msgqnum_t msg_qnum; /* number of messages currently on queue */
|
||||
msglen_t 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;
|
||||
unsigned long int __unused4;
|
||||
unsigned long int __unused5;
|
||||
};
|
||||
|
||||
#ifdef __USE_MISC
|
@ -22,6 +22,7 @@
|
||||
#endif
|
||||
|
||||
#include <bits/types.h>
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
/* Transmute defines to enumerations. The macro re-definitions are
|
||||
necessary because some programs want to test for operating system
|
||||
@ -58,24 +59,24 @@ enum __rlimit_resource
|
||||
RLIMIT_RSS = 5,
|
||||
#define RLIMIT_RSS RLIMIT_RSS
|
||||
|
||||
/* Number of processes. */
|
||||
RLIMIT_NPROC = 6,
|
||||
#define RLIMIT_NPROC RLIMIT_NPROC
|
||||
|
||||
/* Number of open files. */
|
||||
RLIMIT_NOFILE = 7,
|
||||
RLIMIT_OFILE = RLIMIT_NOFILE, /* BSD name for same. */
|
||||
#define RLIMIT_NOFILE RLIMIT_NOFILE
|
||||
#define RLIMIT_OFILE RLIMIT_OFILE
|
||||
|
||||
/* Address space limit. */
|
||||
RLIMIT_AS = 9,
|
||||
#define RLIMIT_AS RLIMIT_AS
|
||||
|
||||
/* Number of processes. */
|
||||
RLIMIT_NPROC = 6,
|
||||
#define RLIMIT_NPROC RLIMIT_NPROC
|
||||
|
||||
/* Locked-in-memory address space. */
|
||||
RLIMIT_MEMLOCK = 8,
|
||||
#define RLIMIT_MEMLOCK RLIMIT_MEMLOCK
|
||||
|
||||
/* Address space limit. */
|
||||
RLIMIT_AS = 9,
|
||||
#define RLIMIT_AS RLIMIT_AS
|
||||
|
||||
/* Maximum number of file locks. */
|
||||
RLIMIT_LOCKS = 10,
|
||||
#define RLIMIT_LOCKS RLIMIT_LOCKS
|
||||
@ -87,14 +88,22 @@ enum __rlimit_resource
|
||||
};
|
||||
|
||||
/* Value to indicate that there is no limit. */
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
# define RLIM_INFINITY ((unsigned long int) (~0UL))
|
||||
#if __WORDSIZE == 64
|
||||
# define RLIM_INFINITY ~0UL
|
||||
#else
|
||||
# define RLIM_INFINITY 0xffffffffffffffffuLL
|
||||
# ifndef __USE_FILE_OFFSET64
|
||||
# define RLIM_INFINITY ((unsigned long int) (~0UL))
|
||||
# else
|
||||
# define RLIM_INFINITY 0xffffffffffffffffuLL
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef __USE_LARGEFILE64
|
||||
# define RLIM64_INFINITY 0xffffffffffffffffuLL
|
||||
# if __WORDSIZE == 64
|
||||
# define RLIM64_INFINITY ~0UL
|
||||
# else
|
||||
# define RLIM64_INFINITY 0xffffffffffffffffuLL
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* We can represent all limits. */
|
||||
@ -103,11 +112,12 @@ enum __rlimit_resource
|
||||
|
||||
|
||||
/* Type for resource quantity measurement. */
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
#if __WORDSIZE != 64 && !defined(__USE_FILE_OFFSET64)
|
||||
typedef __rlim_t rlim_t;
|
||||
#else
|
||||
typedef __rlim64_t rlim_t;
|
||||
#endif
|
||||
|
||||
#ifdef __USE_LARGEFILE64
|
||||
typedef __rlim64_t rlim64_t;
|
||||
#endif
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 2001, 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
|
||||
@ -20,7 +20,8 @@
|
||||
# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <bits/types.h>
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
/* Flags for `semop'. */
|
||||
#define SEM_UNDO 0x1000 /* undo the operation on exit */
|
||||
@ -40,10 +41,16 @@ 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 */
|
||||
#if __WORDSIZE != 64
|
||||
unsigned long int __unused1;
|
||||
#endif
|
||||
__time_t sem_ctime; /* last time changed by semctl() */
|
||||
#if __WORDSIZE != 64
|
||||
unsigned long int __unused2;
|
||||
#endif
|
||||
unsigned long int sem_nsems; /* number of semaphores in set */
|
||||
unsigned long int __unused3;
|
||||
unsigned long int __unused4;
|
||||
};
|
||||
|
||||
/* The user should define a union like the following to use it for arguments
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 2001, 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
|
||||
@ -20,7 +20,8 @@
|
||||
# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <bits/types.h>
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
/* Permission flag for shmget. */
|
||||
#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
|
||||
@ -36,19 +37,31 @@
|
||||
#define SHM_UNLOCK 12 /* unlock segment (root only) */
|
||||
|
||||
|
||||
/* Type to count number of attaches. */
|
||||
typedef unsigned long int shmatt_t;
|
||||
|
||||
/* Data structure describing a set of semaphores. */
|
||||
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() */
|
||||
#if __WORDSIZE != 64
|
||||
unsigned long int __unused1;
|
||||
#endif
|
||||
__time_t shm_dtime; /* time of last shmdt() */
|
||||
#if __WORDSIZE != 64
|
||||
unsigned long int __unused2;
|
||||
#endif
|
||||
__time_t shm_ctime; /* time of last change by shmctl() */
|
||||
#if __WORDSIZE != 64
|
||||
unsigned long int __unused3;
|
||||
#endif
|
||||
__pid_t shm_cpid; /* pid of creator */
|
||||
__pid_t shm_lpid; /* pid of last shmop */
|
||||
unsigned long int shm_nattch; /* number of current attaches */
|
||||
unsigned long int __unused1;
|
||||
unsigned long int __unused2;
|
||||
shmatt_t shm_nattch; /* number of current attaches */
|
||||
unsigned long int __unused4;
|
||||
unsigned long int __unused5;
|
||||
};
|
||||
|
||||
#ifdef __USE_MISC
|
@ -1,5 +1,5 @@
|
||||
/* Definitions for 64 bit S/390 sigaction. 64 bit S/390 version.
|
||||
Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
/* Definitions for 31 & 64 bit S/390 sigaction.
|
||||
Copyright (C) 2001, 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
|
||||
@ -21,6 +21,9 @@
|
||||
# error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
|
||||
#endif
|
||||
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
#if __WORDSIZE == 64
|
||||
/* Structure describing the action to be taken when a signal arrives. */
|
||||
struct sigaction
|
||||
{
|
||||
@ -49,19 +52,51 @@ struct sigaction
|
||||
/* Additional set of signals to be blocked. */
|
||||
__sigset_t sa_mask;
|
||||
};
|
||||
#else
|
||||
/* 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
|
||||
|
||||
/* Bits in `sa_flags'. */
|
||||
#define SA_NOCLDSTOP 0x00000001 /* Don't send SIGCHLD when children stop. */
|
||||
#define SA_SIGINFO 0x00000004
|
||||
/* Additional set of signals to be blocked. */
|
||||
__sigset_t sa_mask;
|
||||
|
||||
/* Special flags. */
|
||||
int sa_flags;
|
||||
|
||||
/* Restore handler. */
|
||||
void (*sa_restorer) (void);
|
||||
};
|
||||
#endif
|
||||
|
||||
/* Bits in `sa_flags'. */
|
||||
#define SA_NOCLDSTOP 1 /* Don't send SIGCHLD when children stop. */
|
||||
#define SA_NOCLDWAIT 2 /* Don't create zombie on child death. */
|
||||
#define SA_SIGINFO 4 /* Invoke signal-catching function with
|
||||
three arguments instead of one. */
|
||||
#if defined __USE_UNIX98 || defined __USE_MISC
|
||||
# define SA_ONSTACK 0x08000000 /* Use signal stack by using `sa_restorer'. */
|
||||
# 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_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. */
|
||||
# define SA_INTERRUPT 0x20000000 /* Historical no-op. */
|
||||
|
||||
/* Some aliases for the SA_ constants. */
|
||||
# define SA_NOMASK SA_NODEFER
|
||||
@ -70,6 +105,6 @@ struct sigaction
|
||||
#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 */
|
||||
#define SIG_BLOCK 0 /* Block signals. */
|
||||
#define SIG_UNBLOCK 1 /* Unblock signals. */
|
||||
#define SIG_SETMASK 2 /* Set the set of blocked signals. */
|
@ -1,5 +1,5 @@
|
||||
/* siginfo_t, sigevent and constants. 64 bit S/390 version.
|
||||
Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
/* siginfo_t, sigevent and constants. S/390 version.
|
||||
Copyright (C) 2001, 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
|
||||
@ -22,6 +22,8 @@
|
||||
# error "Never include this file directly. Use <signal.h> instead"
|
||||
#endif
|
||||
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
#if (!defined __have_sigval_t \
|
||||
&& (defined _SIGNAL_H || defined __need_siginfo_t \
|
||||
|| defined __need_sigevent_t))
|
||||
@ -40,7 +42,11 @@ typedef union sigval
|
||||
# define __have_siginfo_t 1
|
||||
|
||||
# define __SI_MAX_SIZE 128
|
||||
# define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 4)
|
||||
# if __WORDSIZE == 64
|
||||
# define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 4)
|
||||
# else
|
||||
# define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 3)
|
||||
# endif
|
||||
|
||||
typedef struct siginfo
|
||||
{
|
||||
@ -118,6 +124,7 @@ typedef struct siginfo
|
||||
# define si_band _sifields._sigpoll.si_band
|
||||
# define si_fd _sifields._sigpoll.si_fd
|
||||
|
||||
|
||||
/* Values for `si_code'. Positive values are reserved for kernel-generated
|
||||
signals. */
|
||||
enum
|
||||
@ -256,7 +263,11 @@ enum
|
||||
|
||||
/* Structure to transport application-defined values with signals. */
|
||||
# define __SIGEV_MAX_SIZE 64
|
||||
# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
|
||||
# if __WORDSIZE == 64
|
||||
# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
|
||||
# else
|
||||
# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 3)
|
||||
# endif
|
||||
|
||||
/* Forward declaration of the `pthread_attr_t' type. */
|
||||
struct __pthread_attr_s;
|
@ -1,5 +1,5 @@
|
||||
/* System-specific socket constants and types. Linux/s390 version.
|
||||
Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
Copyright (C) 2001, 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
|
||||
@ -18,12 +18,14 @@
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef __BITS_SOCKET_H
|
||||
#define __BITS_SOCKET_H 1
|
||||
#define __BITS_SOCKET_H
|
||||
|
||||
#if !defined _SYS_SOCKET_H && !defined _NETINET_IN_H
|
||||
# error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
|
||||
#endif
|
||||
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
#define __need_size_t
|
||||
#define __need_NULL
|
||||
#include <stddef.h>
|
||||
@ -218,10 +220,18 @@ struct msghdr
|
||||
socklen_t msg_namelen; /* Length of address data. */
|
||||
|
||||
struct iovec *msg_iov; /* Vector of data to send/receive into. */
|
||||
#if __WORDSIZE == 64
|
||||
size_t msg_iovlen; /* Number of elements in the vector. */
|
||||
#else
|
||||
int msg_iovlen; /* Number of elements in the vector. */
|
||||
#endif
|
||||
|
||||
void *msg_control; /* Ancillary data (eg BSD filedesc passing). */
|
||||
#if __WORDSIZE == 64
|
||||
size_t msg_controllen; /* Ancillary data buffer length. */
|
||||
#else
|
||||
socklen_t msg_controllen; /* Ancillary data buffer length. */
|
||||
#endif
|
||||
|
||||
int msg_flags; /* Flags on received message. */
|
||||
};
|
||||
@ -269,7 +279,7 @@ __cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg) __THROW
|
||||
|
||||
__cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
|
||||
+ CMSG_ALIGN (__cmsg->cmsg_len));
|
||||
if ((unsigned char *) (__cmsg + 1) >= ((unsigned char *) __mhdr->msg_control
|
||||
if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control
|
||||
+ __mhdr->msg_controllen)
|
||||
|| ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len)
|
||||
> ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1992,95,96,97,98,99,2000,2001 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 2000, 2001, 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
|
||||
@ -20,61 +20,120 @@
|
||||
# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
|
||||
#endif
|
||||
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
#if __WORDSIZE == 64
|
||||
/* Versions of the `struct stat' data structure. */
|
||||
#define _STAT_VER_LINUX_OLD 1
|
||||
#define _STAT_VER_KERNEL 1
|
||||
#define _STAT_VER_SVR4 2
|
||||
#define _STAT_VER_LINUX 3
|
||||
#define _STAT_VER _STAT_VER_LINUX /* The one defined below. */
|
||||
# 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
|
||||
#else
|
||||
/* Versions of the `struct stat' data structure. */
|
||||
# define _STAT_VER_LINUX_OLD 1
|
||||
# define _STAT_VER_KERNEL 1
|
||||
# define _STAT_VER_SVR4 2
|
||||
# define _STAT_VER_LINUX 3
|
||||
# define _STAT_VER _STAT_VER_LINUX
|
||||
|
||||
/* Versions of the `xmknod' interface. */
|
||||
#define _MKNOD_VER_LINUX 1
|
||||
#define _MKNOD_VER_SVR4 2
|
||||
#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
|
||||
|
||||
# define _MKNOD_VER_LINUX 1
|
||||
# define _MKNOD_VER_SVR4 2
|
||||
# define _MKNOD_VER _MKNOD_VER_LINUX
|
||||
#endif
|
||||
|
||||
#if __WORDSIZE == 64
|
||||
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. */
|
||||
__time_t st_atime; /* Time of last access. */
|
||||
long int __reserved0; /* Reserved for atime.nanoseconds. */
|
||||
__time_t st_mtime; /* Time of last modification. */
|
||||
long int __reserved1; /* Reserved for mtime.nanoseconds. */
|
||||
__time_t st_ctime; /* Time of last status change. */
|
||||
long int __reserved2; /* Reserved for ctime.nanoseconds. */
|
||||
__blksize_t st_blksize; /* Optimal block size for I/O. */
|
||||
__blkcnt_t st_blocks; /* Nr. 512-byte blocks allocated. */
|
||||
long int __unused[3];
|
||||
};
|
||||
#else
|
||||
struct stat
|
||||
{
|
||||
__dev_t st_dev; /* Device. */
|
||||
unsigned int __pad1;
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
# ifndef __USE_FILE_OFFSET64
|
||||
__ino_t st_ino; /* File serial number. */
|
||||
#else
|
||||
# else
|
||||
__ino_t __st_ino; /* 32bit file serial number. */
|
||||
#endif
|
||||
# endif
|
||||
__mode_t st_mode; /* File mode. */
|
||||
__nlink_t st_nlink; /* Link count. */
|
||||
__uid_t st_uid; /* User ID of the file's owner. */
|
||||
__gid_t st_gid; /* Group ID of the file's group.*/
|
||||
__dev_t st_rdev; /* Device number, if device. */
|
||||
unsigned int __pad2;
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
# ifndef __USE_FILE_OFFSET64
|
||||
__off_t st_size; /* Size of file, in bytes. */
|
||||
#else
|
||||
# else
|
||||
__off64_t st_size; /* Size of file, in bytes. */
|
||||
#endif
|
||||
# endif
|
||||
__blksize_t st_blksize; /* Optimal block size for I/O. */
|
||||
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
# ifndef __USE_FILE_OFFSET64
|
||||
__blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */
|
||||
#else
|
||||
# else
|
||||
__blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
|
||||
#endif
|
||||
# endif
|
||||
__time_t st_atime; /* Time of last access. */
|
||||
unsigned long int __unused1;
|
||||
__time_t st_mtime; /* Time of last modification. */
|
||||
unsigned long int __unused2;
|
||||
__time_t st_ctime; /* Time of last status change. */
|
||||
unsigned long int __unused3;
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
# ifndef __USE_FILE_OFFSET64
|
||||
unsigned long int __unused4;
|
||||
unsigned long int __unused5;
|
||||
#else
|
||||
# else
|
||||
__ino64_t st_ino; /* File serial number. */
|
||||
#endif
|
||||
# endif
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef __USE_LARGEFILE64
|
||||
# if __WORDSIZE == 64
|
||||
/* 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. */
|
||||
__time_t st_atime; /* Time of last access. */
|
||||
long int __reserved0; /* Reserved for atime.nanoseconds. */
|
||||
__time_t st_mtime; /* Time of last modification. */
|
||||
long int __reserved1; /* Reserved for mtime.nanoseconds. */
|
||||
__time_t st_ctime; /* Time of last status change. */
|
||||
long int __reserved2; /* Reserved for ctime.nanoseconds. */
|
||||
__blksize_t st_blksize; /* Optimal block size for I/O. */
|
||||
__blkcnt64_t st_blocks; /* Nr. 512-byte blocks allocated. */
|
||||
long int __unused[3];
|
||||
};
|
||||
# else
|
||||
struct stat64
|
||||
{
|
||||
__dev_t st_dev; /* Device. */
|
||||
@ -99,6 +158,7 @@ struct stat64
|
||||
unsigned long int __unused3;
|
||||
__ino64_t st_ino; /* File serial number. */
|
||||
};
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Tell code we have these members. */
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 2001, 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
|
||||
@ -28,44 +28,61 @@
|
||||
#define __need_size_t
|
||||
#include <stddef.h>
|
||||
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
/* Convenience types. */
|
||||
typedef unsigned char __u_char;
|
||||
typedef unsigned short int __u_short;
|
||||
typedef unsigned short __u_short;
|
||||
typedef unsigned int __u_int;
|
||||
typedef unsigned long int __u_long;
|
||||
typedef unsigned long int __u_quad_t;
|
||||
typedef long int __quad_t;
|
||||
typedef unsigned long __u_long;
|
||||
#if __WORDSIZE == 64
|
||||
typedef unsigned long __u_quad_t;
|
||||
typedef long __quad_t;
|
||||
#else
|
||||
# ifdef __GLIBC_HAVE_LONG_LONG
|
||||
__extension__ typedef unsigned long long int __u_quad_t;
|
||||
__extension__ typedef long long int __quad_t;
|
||||
# else
|
||||
typedef struct
|
||||
{
|
||||
long int __val[2];
|
||||
} __quad_t;
|
||||
typedef struct
|
||||
{
|
||||
__u_long __val[2];
|
||||
} __u_quad_t;
|
||||
# endif
|
||||
#endif
|
||||
typedef signed char __int8_t;
|
||||
typedef unsigned char __uint8_t;
|
||||
typedef signed short int __int16_t;
|
||||
typedef unsigned short int __uint16_t;
|
||||
typedef signed int __int32_t;
|
||||
typedef unsigned int __uint32_t;
|
||||
#if __WORDSIZE == 64
|
||||
typedef signed long int __int64_t;
|
||||
typedef unsigned long int __uint64_t;
|
||||
#else
|
||||
# ifdef __GLIBC_HAVE_LONG_LONG
|
||||
__extension__ typedef signed long long int __int64_t;
|
||||
__extension__ typedef unsigned long long int __uint64_t;
|
||||
# endif
|
||||
#endif
|
||||
typedef __quad_t *__qaddr_t;
|
||||
|
||||
typedef __uint64_t __dev_t; /* Type of device numbers. */
|
||||
typedef __uint32_t __uid_t; /* Type of user identifications. */
|
||||
typedef __uint32_t __gid_t; /* Type of group identifications. */
|
||||
typedef __uint64_t __ino_t; /* Type of file serial numbers. */
|
||||
typedef __uint64_t __ino64_t; /* "" (LFS) */
|
||||
typedef __uint32_t __mode_t; /* Type of file attribute bitmasks. */
|
||||
typedef __uint64_t __nlink_t; /* Type of file link counts. */
|
||||
typedef __int64_t __off_t; /* Type of file sizes and offsets. */
|
||||
typedef __int64_t __off64_t; /* "" (LFS) */
|
||||
typedef __int64_t __loff_t; /* Type of file sizes and offsets. */
|
||||
typedef __int32_t __pid_t; /* Type of process identifications. */
|
||||
typedef __int64_t __ssize_t; /* Type of a byte count, or error. */
|
||||
typedef __uint64_t __rlim_t; /* Type of resource counts. */
|
||||
typedef __uint64_t __rlim64_t; /* "" (LFS) */
|
||||
typedef __int64_t __blkcnt_t; /* Type to count nr disk blocks. */
|
||||
typedef __int64_t __blkcnt64_t; /* "" (LFS) */
|
||||
typedef __uint64_t __fsblkcnt_t; /* Type to count file system blocks. */
|
||||
typedef __uint64_t __fsblkcnt64_t; /* "" (LFS) */
|
||||
typedef __uint64_t __fsfilcnt_t; /* Type to count file system inodes. */
|
||||
typedef __uint64_t __fsfilcnt64_t; /* "" (LFS) */
|
||||
typedef __uint32_t __id_t; /* General type for IDs. */
|
||||
typedef __u_quad_t __dev_t; /* Type of device numbers. */
|
||||
typedef __u_int __uid_t; /* Type of user identifications. */
|
||||
typedef __u_int __gid_t; /* Type of group identifications. */
|
||||
typedef __u_long __ino_t; /* Type of file serial numbers. */
|
||||
typedef __u_int __mode_t; /* Type of file attribute bitmasks. */
|
||||
typedef __u_long __nlink_t; /* Type of file link counts. */
|
||||
typedef long int __off_t; /* Type of file sizes and offsets. */
|
||||
typedef __quad_t __loff_t; /* Type of file sizes and offsets. */
|
||||
typedef int __pid_t; /* Type of process identifications. */
|
||||
typedef long __ssize_t; /* Type of a byte count, or error. */
|
||||
typedef __u_long __rlim_t; /* Type of resource counts. */
|
||||
typedef __u_quad_t __rlim64_t; /* Type of resource counts (LFS). */
|
||||
typedef __u_int __id_t; /* General type for ID. */
|
||||
|
||||
typedef struct
|
||||
{
|
||||
@ -73,14 +90,14 @@ typedef struct
|
||||
} __fsid_t; /* Type of file system IDs. */
|
||||
|
||||
/* Everythin' else. */
|
||||
typedef int __daddr_t; /* Type of a disk address. */
|
||||
typedef char *__caddr_t; /* Type of a core address. */
|
||||
typedef int __daddr_t; /* The type of a disk address. */
|
||||
typedef char *__caddr_t;
|
||||
typedef long int __time_t;
|
||||
typedef unsigned int __useconds_t;
|
||||
typedef long int __suseconds_t;
|
||||
typedef long int __swblk_t; /* Type of a swap block maybe? */
|
||||
|
||||
typedef long int __clock_t;
|
||||
typedef int __key_t; /* Type of a SYSV IPC key. */
|
||||
|
||||
/* Clock ID used in clock and timer functions. */
|
||||
typedef int __clockid_t;
|
||||
@ -88,15 +105,43 @@ typedef int __clockid_t;
|
||||
/* Timer ID returned by `timer_create'. */
|
||||
typedef int __timer_t;
|
||||
|
||||
/* Used in `struct shmid_ds'. */
|
||||
typedef int __ipc_pid_t;
|
||||
|
||||
/* type to represent block size. */
|
||||
typedef long int __blksize_t;
|
||||
|
||||
/* Number of descriptors that can fit in an `fd_set'. */
|
||||
#define __FD_SETSIZE 1024
|
||||
|
||||
|
||||
typedef int __key_t;
|
||||
|
||||
/* Used in `struct shmid_ds'. */
|
||||
#if __WORDSIZE == 64
|
||||
typedef int __ipc_pid_t;
|
||||
#else
|
||||
typedef unsigned short int __ipc_pid_t;
|
||||
#endif
|
||||
|
||||
/* Type to represent block size. */
|
||||
typedef long int __blksize_t;
|
||||
|
||||
/* Types from the Large File Support interface. */
|
||||
|
||||
/* Type to count number os disk blocks. */
|
||||
typedef long int __blkcnt_t;
|
||||
typedef __quad_t __blkcnt64_t;
|
||||
|
||||
/* Type to count file system blocks. */
|
||||
typedef __u_long __fsblkcnt_t;
|
||||
typedef __u_quad_t __fsblkcnt64_t;
|
||||
|
||||
/* Type to count file system inodes. */
|
||||
typedef __u_long __fsfilcnt_t;
|
||||
typedef __u_quad_t __fsfilcnt64_t;
|
||||
|
||||
/* Type of file serial numbers. */
|
||||
typedef __u_quad_t __ino64_t;
|
||||
|
||||
/* Type of file sizes and offsets. */
|
||||
typedef __loff_t __off64_t;
|
||||
|
||||
/* Used in XTI. */
|
||||
typedef int __t_scalar_t;
|
||||
typedef unsigned int __t_uscalar_t;
|
||||
@ -107,6 +152,7 @@ typedef long int __intptr_t;
|
||||
/* Duplicate info from sys/socket.h. */
|
||||
typedef unsigned int __socklen_t;
|
||||
|
||||
|
||||
/* Now add the thread types. */
|
||||
#if defined __USE_POSIX199506 || defined __USE_UNIX98
|
||||
# include <bits/pthreadtypes.h>
|
@ -1,174 +0,0 @@
|
||||
/* O_*, F_*, FD_* bit values for Linux for 64 bit S/390.
|
||||
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 _FCNTL_H
|
||||
# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
|
||||
#endif
|
||||
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
/* open/fcntl - O_SYNC is only implemented on blocks devices and on files
|
||||
located on an ext2 file system */
|
||||
#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 010000
|
||||
#define O_FSYNC O_SYNC
|
||||
#define O_ASYNC 020000
|
||||
#define O_DIRECT 040000
|
||||
|
||||
#ifdef __USE_GNU
|
||||
# define O_DIRECTORY 0200000 /* must be a directory */
|
||||
# define O_NOFOLLOW 0400000 /* don't follow links */
|
||||
#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 O_SYNC /* 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_XOPEN2K
|
||||
# define F_SETOWN 8 /* Get owner of socket (receiver of SIGIO). */
|
||||
# define F_GETOWN 9 /* Set owner of socket (receiver of 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. */
|
||||
#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. */
|
||||
#endif
|
||||
|
||||
/* For F_[GET|SET]FL. */
|
||||
#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
|
||||
|
||||
|
||||
/* 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 6 /* Don't need these pages. */
|
||||
# define POSIX_FADV_NOREUSE 7 /* Data will be accessed once. */
|
||||
#endif
|
@ -1,94 +0,0 @@
|
||||
/* Definitions for POSIX memory map interface. 64 bit S/390 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. */
|
||||
|
||||
#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. */
|
||||
|
||||
/* 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 0x0100 /* Stack-like segment. */
|
||||
# define MAP_GROWSUP 0x0200 /* Register stack-like segment */
|
||||
# define MAP_DENYWRITE 0x0800 /* ETXTBSY */
|
||||
# define MAP_EXECUTABLE 0x1000 /* Mark it as an executable. */
|
||||
# define MAP_LOCKED 0x2000 /* Lock the mapping. */
|
||||
# define MAP_NORESERVE 0x4000 /* Don't check for reservations. */
|
||||
#endif
|
||||
|
||||
/* Flags to `msync'. */
|
||||
#define MS_ASYNC 0x1 /* Sync memory asynchronously. */
|
||||
#define MS_SYNC 0x4 /* Synchronous memory sync. */
|
||||
#define MS_INVALIDATE 0x2 /* Invalidate the caches. */
|
||||
|
||||
/* 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
|
||||
#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. */
|
||||
#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
|
@ -1,201 +0,0 @@
|
||||
/* Bit values & structures for resource limits. 64 bit S/390 version.
|
||||
Copyright (C) 2001, 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_RESOURCE_H
|
||||
# error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
|
||||
#endif
|
||||
|
||||
#include <bits/types.h>
|
||||
|
||||
/* Transmute defines to enumerations. The macro re-definitions are
|
||||
necessary because some programs want to test for operating system
|
||||
features with #ifdef RUSAGE_SELF. In ISO C the reflexive
|
||||
definition is a no-op. */
|
||||
|
||||
/* Kinds of resource limit. */
|
||||
enum __rlimit_resource
|
||||
{
|
||||
/* Per-process CPU limit, in seconds. */
|
||||
RLIMIT_CPU = 0,
|
||||
#define RLIMIT_CPU RLIMIT_CPU
|
||||
|
||||
/* Largest file that can be created, in bytes. */
|
||||
RLIMIT_FSIZE = 1,
|
||||
#define RLIMIT_FSIZE RLIMIT_FSIZE
|
||||
|
||||
/* Maximum size of data segment, in bytes. */
|
||||
RLIMIT_DATA = 2,
|
||||
#define RLIMIT_DATA RLIMIT_DATA
|
||||
|
||||
/* Maximum size of stack segment, in bytes. */
|
||||
RLIMIT_STACK = 3,
|
||||
#define RLIMIT_STACK RLIMIT_STACK
|
||||
|
||||
/* Largest core file that can be created, in bytes. */
|
||||
RLIMIT_CORE = 4,
|
||||
#define RLIMIT_CORE RLIMIT_CORE
|
||||
|
||||
/* Largest resident set size, in bytes.
|
||||
This affects swapping; processes that are exceeding their
|
||||
resident set size will be more likely to have physical memory
|
||||
taken from them. */
|
||||
RLIMIT_RSS = 5,
|
||||
#define RLIMIT_RSS RLIMIT_RSS
|
||||
|
||||
/* Number of processes. */
|
||||
RLIMIT_NPROC = 6,
|
||||
#define RLIMIT_NPROC RLIMIT_NPROC
|
||||
|
||||
/* Number of open files. */
|
||||
RLIMIT_NOFILE = 7,
|
||||
RLIMIT_OFILE = RLIMIT_NOFILE, /* BSD name for same. */
|
||||
#define RLIMIT_NOFILE RLIMIT_NOFILE
|
||||
#define RLIMIT_OFILE RLIMIT_OFILE
|
||||
|
||||
/* Locked-in-memory address space. */
|
||||
RLIMIT_MEMLOCK = 8,
|
||||
#define RLIMIT_MEMLOCK RLIMIT_MEMLOCK
|
||||
|
||||
/* Address space limit (?) */
|
||||
RLIMIT_AS = 9,
|
||||
#define RLIMIT_AS RLIMIT_AS
|
||||
|
||||
/* Maximum number of file locks. */
|
||||
RLIMIT_LOCKS = 10,
|
||||
#define RLIMIT_LOCKS RLIMIT_LOCKS
|
||||
|
||||
RLIMIT_NLIMITS = 11,
|
||||
RLIM_NLIMITS = RLIMIT_NLIMITS
|
||||
#define RLIMIT_NLIMITS RLIMIT_NLIMITS
|
||||
#define RLIM_NLIMITS RLIM_NLIMITS
|
||||
};
|
||||
|
||||
/* Value to indicate that there is no limit. */
|
||||
# define RLIM_INFINITY ~0UL
|
||||
|
||||
#ifdef __USE_LARGEFILE64
|
||||
# define RLIM64_INFINITY ~0UL
|
||||
#endif
|
||||
|
||||
/* We can represent all limits. */
|
||||
#define RLIM_SAVED_MAX RLIM_INFINITY
|
||||
#define RLIM_SAVED_CUR RLIM_INFINITY
|
||||
|
||||
|
||||
/* Type for resource quantity measurement. */
|
||||
typedef __rlim64_t rlim_t;
|
||||
#ifdef __USE_LARGEFILE64
|
||||
typedef __rlim64_t rlim64_t;
|
||||
#endif
|
||||
|
||||
struct rlimit
|
||||
{
|
||||
/* The current (soft) limit. */
|
||||
rlim_t rlim_cur;
|
||||
/* The hard limit. */
|
||||
rlim_t rlim_max;
|
||||
};
|
||||
|
||||
#ifdef __USE_LARGEFILE64
|
||||
struct rlimit64
|
||||
{
|
||||
/* The current (soft) limit. */
|
||||
rlim64_t rlim_cur;
|
||||
/* The hard limit. */
|
||||
rlim64_t rlim_max;
|
||||
};
|
||||
#endif
|
||||
|
||||
/* Whose usage statistics do you want? */
|
||||
enum __rusage_who
|
||||
{
|
||||
/* The calling process. */
|
||||
RUSAGE_SELF = 0,
|
||||
#define RUSAGE_SELF RUSAGE_SELF
|
||||
|
||||
/* All of its terminated child processes. */
|
||||
RUSAGE_CHILDREN = -1,
|
||||
#define RUSAGE_CHILDREN RUSAGE_CHILDREN
|
||||
|
||||
/* Both. */
|
||||
RUSAGE_BOTH = -2
|
||||
#define RUSAGE_BOTH RUSAGE_BOTH
|
||||
};
|
||||
|
||||
#define __need_timeval
|
||||
#include <bits/time.h> /* For `struct timeval'. */
|
||||
|
||||
/* Structure which says how much of each resource has been used. */
|
||||
struct rusage
|
||||
{
|
||||
/* Total amount of user time used. */
|
||||
struct timeval ru_utime;
|
||||
/* Total amount of system time used. */
|
||||
struct timeval ru_stime;
|
||||
/* Maximum resident set size (in kilobytes). */
|
||||
long int ru_maxrss;
|
||||
/* Amount of sharing of text segment memory
|
||||
with other processes (kilobyte-seconds). */
|
||||
long int ru_ixrss;
|
||||
/* Amount of data segment memory used (kilobyte-seconds). */
|
||||
long int ru_idrss;
|
||||
/* Amount of stack memory used (kilobyte-seconds). */
|
||||
long int ru_isrss;
|
||||
/* Number of soft page faults (i.e. those serviced by reclaiming
|
||||
a page from the list of pages awaiting reallocation. */
|
||||
long int ru_minflt;
|
||||
/* Number of hard page faults (i.e. those that required I/O). */
|
||||
long int ru_majflt;
|
||||
/* Number of times a process was swapped out of physical memory. */
|
||||
long int ru_nswap;
|
||||
/* Number of input operations via the file system. Note: This
|
||||
and `ru_oublock' do not include operations with the cache. */
|
||||
long int ru_inblock;
|
||||
/* Number of output operations via the file system. */
|
||||
long int ru_oublock;
|
||||
/* Number of IPC messages sent. */
|
||||
long int ru_msgsnd;
|
||||
/* Number of IPC messages received. */
|
||||
long int ru_msgrcv;
|
||||
/* Number of signals delivered. */
|
||||
long int ru_nsignals;
|
||||
/* Number of voluntary context switches, i.e. because the process
|
||||
gave up the process before it had to (usually to wait for some
|
||||
resource to be available). */
|
||||
long int ru_nvcsw;
|
||||
/* Number of involuntary context switches, i.e. a higher priority process
|
||||
became runnable or the current process used up its time slice. */
|
||||
long int ru_nivcsw;
|
||||
};
|
||||
|
||||
/* Priority limits. */
|
||||
#define PRIO_MIN -20 /* Minimum priority a process can have. */
|
||||
#define PRIO_MAX 20 /* Maximum priority a process can have. */
|
||||
|
||||
/* The type of the WHICH argument to `getpriority' and `setpriority',
|
||||
indicating what flavor of entity the WHO argument specifies. */
|
||||
enum __priority_which
|
||||
{
|
||||
PRIO_PROCESS = 0, /* WHO is a process ID. */
|
||||
#define PRIO_PROCESS PRIO_PROCESS
|
||||
PRIO_PGRP = 1, /* WHO is a process group ID. */
|
||||
#define PRIO_PGRP PRIO_PGRP
|
||||
PRIO_USER = 2 /* WHO is a user ID. */
|
||||
#define PRIO_USER PRIO_USER
|
||||
};
|
@ -1,59 +0,0 @@
|
||||
/* sigstack, sigaltstack definitions. 64 bit S/390 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. */
|
||||
|
||||
#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. */
|
||||
#define MINSIGSTKSZ 2048
|
||||
|
||||
/* System default stack size. */
|
||||
#define SIGSTKSZ 8192
|
||||
|
||||
|
||||
/* Alternate, preferred interface. */
|
||||
typedef struct sigaltstack
|
||||
{
|
||||
__ptr_t ss_sp;
|
||||
int ss_flags;
|
||||
size_t ss_size;
|
||||
} stack_t;
|
||||
|
||||
#endif /* bits/sigstack.h */
|
@ -1,107 +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. */
|
||||
|
||||
#ifndef _SYS_STAT_H
|
||||
# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
|
||||
#endif
|
||||
|
||||
/* 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. */
|
||||
__time_t st_atime; /* Time of last access. */
|
||||
long int __reserved0; /* Reserved for atime.nanoseconds. */
|
||||
__time_t st_mtime; /* Time of last modification. */
|
||||
long int __reserved1; /* Reserved for mtime.nanoseconds. */
|
||||
__time_t st_ctime; /* Time of last status change. */
|
||||
long int __reserved2; /* Reserved for ctime.nanoseconds. */
|
||||
__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. */
|
||||
__time_t st_atime; /* Time of last access. */
|
||||
long int __reserved0; /* Reserved for atime.nanoseconds. */
|
||||
__time_t st_mtime; /* Time of last modification. */
|
||||
long int __reserved1; /* Reserved for mtime.nanoseconds. */
|
||||
__time_t st_ctime; /* Time of last status change. */
|
||||
long int __reserved2; /* Reserved for ctime.nanoseconds. */
|
||||
__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
|
||||
|
||||
/* 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. */
|
||||
#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. */
|
@ -1,118 +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. */
|
||||
|
||||
#ifndef _SYS_PROCFS_H
|
||||
#define _SYS_PROCFS_H 1
|
||||
|
||||
/* This is somewhat modelled after the file of the same name on SVR4
|
||||
systems. It provides a definition of the core file format for ELF
|
||||
used on Linux. It doesn't have anything to do with the /proc file
|
||||
system, even though Linux has one.
|
||||
|
||||
Anyway, the whole purpose of this file is for GDB and GDB only.
|
||||
Don't read too much into it. Don't use it for anything other than
|
||||
GDB unless you know what you are doing. */
|
||||
|
||||
#include <features.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/user.h>
|
||||
#include <sys/ucontext.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
typedef greg_t elf_greg_t;
|
||||
#define ELF_NGREG NGREG
|
||||
typedef gregset_t elf_gregset_t;
|
||||
typedef fpreg_t elf_fpreg_t;
|
||||
typedef fpregset_t elf_fpregset_t;
|
||||
|
||||
/* Signal info. */
|
||||
struct elf_siginfo
|
||||
{
|
||||
int si_signo; /* Signal number. */
|
||||
int si_code; /* Extra code. */
|
||||
int si_errno; /* Errno. */
|
||||
};
|
||||
|
||||
|
||||
/* 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. */
|
||||
|
||||
struct elf_prstatus
|
||||
{
|
||||
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. */
|
||||
__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. */
|
||||
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. */
|
||||
};
|
||||
|
||||
/* The rest of this file provides the types for emulation of the
|
||||
Solaris <proc_service.h> interfaces that should be implemented by
|
||||
users of libthread_db. */
|
||||
|
||||
/* Addresses. */
|
||||
typedef void *psaddr_t;
|
||||
|
||||
/* Register sets. Linux has different names. */
|
||||
typedef elf_gregset_t prgregset_t;
|
||||
typedef elf_fpregset_t prfpregset_t;
|
||||
|
||||
/* We don't have any differences between processes and threads,
|
||||
therefore have only one PID type. */
|
||||
typedef __pid_t lwpid_t;
|
||||
|
||||
/* Process status and info. In the end we do provide typedefs for them. */
|
||||
typedef struct elf_prstatus prstatus_t;
|
||||
typedef struct elf_prpsinfo prpsinfo_t;
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* sys/procfs.h */
|
@ -1,84 +0,0 @@
|
||||
/* Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com).
|
||||
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
|
||||
/* Forward definition to avoid parse errors */
|
||||
struct ucontext;
|
||||
typedef struct ucontext ucontext_t;
|
||||
#include <features.h>
|
||||
#include <signal.h>
|
||||
|
||||
/* We need the signal context definitions even if they are not used
|
||||
included in <signal.h>. */
|
||||
#include <bits/sigcontext.h>
|
||||
|
||||
/* Type for a program status word. */
|
||||
typedef struct
|
||||
{
|
||||
unsigned long mask;
|
||||
unsigned long addr;
|
||||
} __attribute__ ((aligned(8))) __psw_t;
|
||||
|
||||
/* Type for a general-purpose register. */
|
||||
typedef unsigned long greg_t;
|
||||
|
||||
/* And the whole bunch of them. We should have used `struct s390_regs',
|
||||
but to avoid name space pollution and since the tradition says that
|
||||
the register set is an array, we make gregset_t a simple array
|
||||
that has the same size as s390_regs. This is needed for the
|
||||
elf_prstatus structure. */
|
||||
#define NGREG 27
|
||||
/* Must match kernels psw_t alignment. */
|
||||
typedef greg_t gregset_t[NGREG] __attribute__ ((aligned(8)));
|
||||
|
||||
typedef union
|
||||
{
|
||||
double d;
|
||||
float f;
|
||||
} fpreg_t;
|
||||
|
||||
/* Register set for the floating-point registers. */
|
||||
typedef struct
|
||||
{
|
||||
unsigned int fpc;
|
||||
fpreg_t fprs[16];
|
||||
} fpregset_t;
|
||||
|
||||
/* Context to describe whole processor state. */
|
||||
typedef struct
|
||||
{
|
||||
__psw_t psw;
|
||||
unsigned long gregs[16];
|
||||
unsigned int aregs[16];
|
||||
fpregset_t fpregs;
|
||||
} mcontext_t;
|
||||
|
||||
/* Userlevel context. */
|
||||
struct ucontext
|
||||
{
|
||||
unsigned long int uc_flags;
|
||||
struct ucontext *uc_link;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
__sigset_t uc_sigmask;
|
||||
};
|
||||
|
||||
|
||||
#endif /* sys/ucontext.h */
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 2000, 2001, 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
|
||||
@ -86,8 +86,13 @@ struct elf_prpsinfo
|
||||
char pr_zomb; /* Zombie. */
|
||||
char pr_nice; /* Nice val. */
|
||||
unsigned long int pr_flag; /* Flags. */
|
||||
#if __WORDSIZE == 64
|
||||
unsigned int pr_uid;
|
||||
unsigned int pr_gid;
|
||||
#else
|
||||
unsigned short int pr_uid;
|
||||
unsigned short int pr_gid;
|
||||
#endif
|
||||
int pr_pid, pr_ppid, pr_pgrp, pr_sid;
|
||||
/* Lots missing */
|
||||
char pr_fname[16]; /* Filename of executable. */
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com).
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
@ -44,7 +44,11 @@ typedef unsigned long greg_t;
|
||||
the register set is an array, we make gregset_t a simple array
|
||||
that has the same size as s390_regs. This is needed for the
|
||||
elf_prstatus structure. */
|
||||
#define NGREG 36
|
||||
#if __WORDSIZE == 64
|
||||
# define NGREG 27
|
||||
#else
|
||||
# define NGREG 36
|
||||
#endif
|
||||
/* Must match kernels psw_t alignment. */
|
||||
typedef greg_t gregset_t[NGREG] __attribute__ ((aligned(8)));
|
||||
|
Loading…
Reference in New Issue
Block a user