aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/x86_64
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2012-05-31 16:11:11 -0700
committerH.J. Lu <hjl.tools@gmail.com>2012-05-31 16:11:11 -0700
commit8bca20f013c201778c96df943e1d465971bc695c (patch)
tree03f0560a72ab84fb3935f62cad68232e4b22d812 /sysdeps/unix/sysv/linux/x86_64
parentf9e890a99c576c2244539431b9fa4fb14a5898b3 (diff)
downloadglibc-8bca20f013c201778c96df943e1d465971bc695c.zip
glibc-8bca20f013c201778c96df943e1d465971bc695c.tar.gz
glibc-8bca20f013c201778c96df943e1d465971bc695c.tar.bz2
Use x86_64 sys/{ucontext,user}.h for i386 and x86_64
Diffstat (limited to 'sysdeps/unix/sysv/linux/x86_64')
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h246
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sys/user.h180
2 files changed, 0 insertions, 426 deletions
diff --git a/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h b/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h
deleted file mode 100644
index 7a3938c..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h
+++ /dev/null
@@ -1,246 +0,0 @@
-/* Copyright (C) 2001-2012 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, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_UCONTEXT_H
-#define _SYS_UCONTEXT_H 1
-
-#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>
-
-#ifdef __x86_64__
-
-/* Type for general register. */
-__extension__ typedef long long int greg_t;
-
-/* Number of general registers. */
-#define NGREG 23
-
-/* Container for all general registers. */
-typedef greg_t gregset_t[NGREG];
-
-#ifdef __USE_GNU
-/* Number of each register in the `gregset_t' array. */
-enum
-{
- REG_R8 = 0,
-# define REG_R8 REG_R8
- REG_R9,
-# define REG_R9 REG_R9
- REG_R10,
-# define REG_R10 REG_R10
- REG_R11,
-# define REG_R11 REG_R11
- REG_R12,
-# define REG_R12 REG_R12
- REG_R13,
-# define REG_R13 REG_R13
- REG_R14,
-# define REG_R14 REG_R14
- REG_R15,
-# define REG_R15 REG_R15
- REG_RDI,
-# define REG_RDI REG_RDI
- REG_RSI,
-# define REG_RSI REG_RSI
- REG_RBP,
-# define REG_RBP REG_RBP
- REG_RBX,
-# define REG_RBX REG_RBX
- REG_RDX,
-# define REG_RDX REG_RDX
- REG_RAX,
-# define REG_RAX REG_RAX
- REG_RCX,
-# define REG_RCX REG_RCX
- REG_RSP,
-# define REG_RSP REG_RSP
- REG_RIP,
-# define REG_RIP REG_RIP
- REG_EFL,
-# define REG_EFL REG_EFL
- REG_CSGSFS, /* Actually short cs, gs, fs, __pad0. */
-# define REG_CSGSFS REG_CSGSFS
- REG_ERR,
-# define REG_ERR REG_ERR
- REG_TRAPNO,
-# define REG_TRAPNO REG_TRAPNO
- REG_OLDMASK,
-# define REG_OLDMASK REG_OLDMASK
- REG_CR2
-# define REG_CR2 REG_CR2
-};
-#endif
-
-struct _libc_fpxreg
-{
- unsigned short int significand[4];
- unsigned short int exponent;
- unsigned short int padding[3];
-};
-
-struct _libc_xmmreg
-{
- __uint32_t element[4];
-};
-
-struct _libc_fpstate
-{
- /* 64-bit FXSAVE format. */
- __uint16_t cwd;
- __uint16_t swd;
- __uint16_t ftw;
- __uint16_t fop;
- __uint64_t rip;
- __uint64_t rdp;
- __uint32_t mxcsr;
- __uint32_t mxcr_mask;
- struct _libc_fpxreg _st[8];
- struct _libc_xmmreg _xmm[16];
- __uint32_t padding[24];
-};
-
-/* Structure to describe FPU registers. */
-typedef struct _libc_fpstate *fpregset_t;
-
-/* Context to describe whole processor state. */
-typedef struct
- {
- gregset_t gregs;
- /* Note that fpregs is a pointer. */
- fpregset_t fpregs;
- __extension__ unsigned long long __reserved1 [8];
-} mcontext_t;
-
-/* Userlevel context. */
-typedef struct ucontext
- {
- unsigned long int uc_flags;
- struct ucontext *uc_link;
- stack_t uc_stack;
- mcontext_t uc_mcontext;
- __sigset_t uc_sigmask;
- struct _libc_fpstate __fpregs_mem;
- } ucontext_t;
-
-#else /* !__x86_64__ */
-
-/* Type for general register. */
-typedef int greg_t;
-
-/* Number of general registers. */
-#define NGREG 19
-
-/* Container for all general registers. */
-typedef greg_t gregset_t[NGREG];
-
-#ifdef __USE_GNU
-/* Number of each register is the `gregset_t' array. */
-enum
-{
- REG_GS = 0,
-# define REG_GS REG_GS
- REG_FS,
-# define REG_FS REG_FS
- REG_ES,
-# define REG_ES REG_ES
- REG_DS,
-# define REG_DS REG_DS
- REG_EDI,
-# define REG_EDI REG_EDI
- REG_ESI,
-# define REG_ESI REG_ESI
- REG_EBP,
-# define REG_EBP REG_EBP
- REG_ESP,
-# define REG_ESP REG_ESP
- REG_EBX,
-# define REG_EBX REG_EBX
- REG_EDX,
-# define REG_EDX REG_EDX
- REG_ECX,
-# define REG_ECX REG_ECX
- REG_EAX,
-# define REG_EAX REG_EAX
- REG_TRAPNO,
-# define REG_TRAPNO REG_TRAPNO
- REG_ERR,
-# define REG_ERR REG_ERR
- REG_EIP,
-# define REG_EIP REG_EIP
- REG_CS,
-# define REG_CS REG_CS
- REG_EFL,
-# define REG_EFL REG_EFL
- REG_UESP,
-# define REG_UESP REG_UESP
- REG_SS
-# define REG_SS REG_SS
-};
-#endif
-
-/* Definitions taken from the kernel headers. */
-struct _libc_fpreg
-{
- unsigned short int significand[4];
- unsigned short int exponent;
-};
-
-struct _libc_fpstate
-{
- unsigned long int cw;
- unsigned long int sw;
- unsigned long int tag;
- unsigned long int ipoff;
- unsigned long int cssel;
- unsigned long int dataoff;
- unsigned long int datasel;
- struct _libc_fpreg _st[8];
- unsigned long int status;
-};
-
-/* Structure to describe FPU registers. */
-typedef struct _libc_fpstate *fpregset_t;
-
-/* Context to describe whole processor state. */
-typedef struct
- {
- gregset_t gregs;
- /* Due to Linux's history we have to use a pointer here. The SysV/i386
- ABI requires a struct with the values. */
- fpregset_t fpregs;
- unsigned long int oldmask;
- unsigned long int cr2;
- } mcontext_t;
-
-/* Userlevel context. */
-typedef struct ucontext
- {
- unsigned long int uc_flags;
- struct ucontext *uc_link;
- stack_t uc_stack;
- mcontext_t uc_mcontext;
- __sigset_t uc_sigmask;
- struct _libc_fpstate __fpregs_mem;
- } ucontext_t;
-
-#endif /* !__x86_64__ */
-
-#endif /* sys/ucontext.h */
diff --git a/sysdeps/unix/sysv/linux/x86_64/sys/user.h b/sysdeps/unix/sysv/linux/x86_64/sys/user.h
deleted file mode 100644
index 9db2937..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/sys/user.h
+++ /dev/null
@@ -1,180 +0,0 @@
-/* Copyright (C) 2001-2012 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, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_USER_H
-#define _SYS_USER_H 1
-
-/* 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. */
-
-#ifdef __x86_64__
-
-struct user_fpregs_struct
-{
- unsigned short int cwd;
- unsigned short int swd;
- unsigned short int ftw;
- unsigned short int fop;
- __extension__ unsigned long long int rip;
- __extension__ unsigned long long int rdp;
- unsigned int mxcsr;
- unsigned int mxcr_mask;
- unsigned int st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */
- unsigned int xmm_space[64]; /* 16*16 bytes for each XMM-reg = 256 bytes */
- unsigned int padding[24];
-};
-
-struct user_regs_struct
-{
- __extension__ unsigned long long int r15;
- __extension__ unsigned long long int r14;
- __extension__ unsigned long long int r13;
- __extension__ unsigned long long int r12;
- __extension__ unsigned long long int rbp;
- __extension__ unsigned long long int rbx;
- __extension__ unsigned long long int r11;
- __extension__ unsigned long long int r10;
- __extension__ unsigned long long int r9;
- __extension__ unsigned long long int r8;
- __extension__ unsigned long long int rax;
- __extension__ unsigned long long int rcx;
- __extension__ unsigned long long int rdx;
- __extension__ unsigned long long int rsi;
- __extension__ unsigned long long int rdi;
- __extension__ unsigned long long int orig_rax;
- __extension__ unsigned long long int rip;
- __extension__ unsigned long long int cs;
- __extension__ unsigned long long int eflags;
- __extension__ unsigned long long int rsp;
- __extension__ unsigned long long int ss;
- __extension__ unsigned long long int fs_base;
- __extension__ unsigned long long int gs_base;
- __extension__ unsigned long long int ds;
- __extension__ unsigned long long int es;
- __extension__ unsigned long long int fs;
- __extension__ unsigned long long int gs;
-};
-
-struct user
-{
- struct user_regs_struct regs;
- int u_fpvalid;
- struct user_fpregs_struct i387;
- __extension__ unsigned long long int u_tsize;
- __extension__ unsigned long long int u_dsize;
- __extension__ unsigned long long int u_ssize;
- __extension__ unsigned long long int start_code;
- __extension__ unsigned long long int start_stack;
- __extension__ long long int signal;
- int reserved;
- __extension__ union
- {
- struct user_regs_struct* u_ar0;
- __extension__ unsigned long long int __u_ar0_word;
- };
- __extension__ union
- {
- struct user_fpregs_struct* u_fpstate;
- __extension__ unsigned long long int __u_fpstate_word;
- };
- __extension__ unsigned long long int magic;
- char u_comm [32];
- __extension__ unsigned long long int u_debugreg [8];
-};
-
-#else
-/* These are the 32-bit x86 structures. */
-struct user_fpregs_struct
-{
- long int cwd;
- long int swd;
- long int twd;
- long int fip;
- long int fcs;
- long int foo;
- long int fos;
- long int st_space [20];
-};
-
-struct user_fpxregs_struct
-{
- unsigned short int cwd;
- unsigned short int swd;
- unsigned short int twd;
- unsigned short int fop;
- long int fip;
- long int fcs;
- long int foo;
- long int fos;
- long int mxcsr;
- long int reserved;
- long int st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */
- long int xmm_space[32]; /* 8*16 bytes for each XMM-reg = 128 bytes */
- long int padding[56];
-};
-
-struct user_regs_struct
-{
- long int ebx;
- long int ecx;
- long int edx;
- long int esi;
- long int edi;
- long int ebp;
- long int eax;
- long int xds;
- long int xes;
- long int xfs;
- long int xgs;
- long int orig_eax;
- long int eip;
- long int xcs;
- long int eflags;
- long int esp;
- long int xss;
-};
-
-struct user
-{
- struct user_regs_struct regs;
- int u_fpvalid;
- struct user_fpregs_struct i387;
- unsigned long int u_tsize;
- unsigned long int u_dsize;
- unsigned long int u_ssize;
- unsigned long int start_code;
- unsigned long int start_stack;
- long int signal;
- int reserved;
- struct user_regs_struct* u_ar0;
- struct user_fpregs_struct* u_fpstate;
- unsigned long int magic;
- char u_comm [32];
- int u_debugreg [8];
-};
-#endif /* __x86_64__ */
-
-#define PAGE_SHIFT 12
-#define PAGE_SIZE (1UL << PAGE_SHIFT)
-#define PAGE_MASK (~(PAGE_SIZE-1))
-#define NBPG PAGE_SIZE
-#define UPAGES 1
-#define HOST_TEXT_START_ADDR (u.start_code)
-#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
-
-#endif /* _SYS_USER_H */