Merge "Headers update from bionic for x86_64 support"

This commit is contained in:
Andrew Hsieh
2014-04-02 08:21:48 +00:00
committed by Gerrit Code Review
5 changed files with 274 additions and 220 deletions

View File

@@ -0,0 +1,63 @@
/* $NetBSD: elf_machdep.h,v 1.10 2009/05/30 05:56:52 skrll Exp $ */
#define ELF32_MACHDEP_ENDIANNESS ELFDATA2LSB
#define ELF32_MACHDEP_ID_CASES \
case EM_386: \
case EM_486: \
break;
#define ELF64_MACHDEP_ENDIANNESS XXX /* break compilation */
#define ELF64_MACHDEP_ID_CASES \
/* no 64-bit ELF machine types supported */
#define ELF32_MACHDEP_ID EM_386
#define ARCH_ELFSIZE 32 /* MD native binary size */
/* i386 relocations */
#define R_386_NONE 0
#define R_386_32 1
#define R_386_PC32 2
#define R_386_GOT32 3
#define R_386_PLT32 4
#define R_386_COPY 5
#define R_386_GLOB_DAT 6
#define R_386_JMP_SLOT 7
#define R_386_RELATIVE 8
#define R_386_GOTOFF 9
#define R_386_GOTPC 10
/* TLS relocations */
#define R_386_TLS_TPOFF 14
#define R_386_TLS_IE 15
#define R_386_TLS_GOTIE 16
#define R_386_TLS_LE 17
#define R_386_TLS_GD 18
#define R_386_TLS_LDM 19
/* The following relocations are GNU extensions. */
#define R_386_16 20
#define R_386_PC16 21
#define R_386_8 22
#define R_386_PC8 23
/* More TLS relocations */
#define R_386_TLS_GD_32 24
#define R_386_TLS_GD_PUSH 25
#define R_386_TLS_GD_CALL 26
#define R_386_TLS_GD_POP 27
#define R_386_TLS_LDM_32 28
#define R_386_TLS_LDM_PUSH 29
#define R_386_TLS_LDM_CALL 30
#define R_386_TLS_LDM_POP 31
#define R_386_TLS_LDO_32 32
#define R_386_TLS_IE_32 33
#define R_386_TLS_LE_32 34
#define R_386_TLS_DTPMOD32 35
#define R_386_TLS_DTPOFF32 36
#define R_386_TLS_TPOFF32 37
#define R_386_TLS_GOTDESC 39
#define R_386_TLS_DESC_CALL 40
#define R_386_TLS_DESC 41
#define R_TYPE(name) __CONCAT(R_386_,name)

View File

@@ -1,25 +0,0 @@
/*
* Copyright (C) 2013 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef __ASM_PAGE_H
#define __ASM_PAGE_H
/* New code should use sysconf(_SC_PAGESIZE) instead. */
#define PAGE_SHIFT 12
#define PAGE_SIZE (1ULL << PAGE_SHIFT)
#define PAGE_MASK (~(PAGE_SIZE - 1))
#endif

View File

@@ -25,172 +25,49 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#ifndef _STDINT_H
#define _STDINT_H
#include <stddef.h>
#include <sys/_types.h>
#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
# define __STDINT_LIMITS
#endif
#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS)
# define __STDINT_MACROS
#endif
typedef __int8_t int8_t;
typedef __uint8_t uint8_t;
typedef __int16_t int16_t;
typedef __uint16_t uint16_t;
typedef __int32_t int32_t;
typedef __uint32_t uint32_t;
typedef __int64_t int64_t;
typedef __uint64_t uint64_t;
/*
* int8_t & uint8_t
*/
typedef int8_t int_least8_t;
typedef int8_t int_fast8_t;
typedef uint8_t uint_least8_t;
typedef uint8_t uint_fast8_t;
#ifdef __STDINT_LIMITS
# define INT8_MIN (-128)
# define INT8_MAX (127)
# define INT_LEAST8_MIN INT8_MIN
# define INT_LEAST8_MAX INT8_MAX
# define INT_FAST8_MIN INT8_MIN
# define INT_FAST8_MAX INT8_MAX
# define UINT8_MAX (255)
# define UINT_LEAST8_MAX UINT8_MAX
# define UINT_FAST8_MAX UINT8_MAX
#endif
#ifdef __STDINT_MACROS
# define INT8_C(c) c
# define INT_LEAST8_C(c) INT8_C(c)
# define INT_FAST8_C(c) INT8_C(c)
# define UINT8_C(c) c
# define UINT_LEAST8_C(c) UINT8_C(c)
# define UINT_FAST8_C(c) UINT8_C(c)
#endif
/*
* int16_t & uint16_t
*/
typedef int16_t int_least16_t;
typedef int32_t int_fast16_t;
typedef uint16_t uint_least16_t;
typedef uint32_t uint_fast16_t;
#ifdef __STDINT_LIMITS
# define INT16_MIN (-32768)
# define INT16_MAX (32767)
# define INT_LEAST16_MIN INT16_MIN
# define INT_LEAST16_MAX INT16_MAX
# define INT_FAST16_MIN INT32_MIN
# define INT_FAST16_MAX INT32_MAX
# define UINT16_MAX (65535)
# define UINT_LEAST16_MAX UINT16_MAX
# define UINT_FAST16_MAX UINT32_MAX
#endif
#ifdef __STDINT_MACROS
# define INT16_C(c) c
# define INT_LEAST16_C(c) INT16_C(c)
# define INT_FAST16_C(c) INT32_C(c)
# define UINT16_C(c) c
# define UINT_LEAST16_C(c) UINT16_C(c)
# define UINT_FAST16_C(c) UINT32_C(c)
#endif
/*
* int32_t & uint32_t
*/
typedef int32_t int_least32_t;
typedef int32_t int_fast32_t;
typedef uint32_t uint_least32_t;
typedef uint32_t uint_fast32_t;
#ifdef __STDINT_LIMITS
# define INT32_MIN (-2147483647-1)
# define INT32_MAX (2147483647)
# define INT_LEAST32_MIN INT32_MIN
# define INT_LEAST32_MAX INT32_MAX
# define INT_FAST32_MIN INT32_MIN
# define INT_FAST32_MAX INT32_MAX
# define UINT32_MAX (4294967295U)
# define UINT_LEAST32_MAX UINT32_MAX
# define UINT_FAST32_MAX UINT32_MAX
#endif
#ifdef __STDINT_MACROS
# define INT32_C(c) c
# define INT_LEAST32_C(c) INT32_C(c)
# define INT_FAST32_C(c) INT32_C(c)
# define UINT32_C(c) c ## U
# define UINT_LEAST32_C(c) UINT32_C(c)
# define UINT_FAST32_C(c) UINT32_C(c)
#endif
/*
* int64_t
*/
typedef int64_t int_least64_t;
typedef int64_t int_fast64_t;
typedef uint64_t uint_least64_t;
typedef uint64_t uint_fast64_t;
#ifdef __STDINT_LIMITS
# define INT64_MIN (__INT64_C(-9223372036854775807)-1)
# define INT64_MAX (__INT64_C(9223372036854775807))
# define INT_LEAST64_MIN INT64_MIN
# define INT_LEAST64_MAX INT64_MAX
# define INT_FAST64_MIN INT64_MIN
# define INT_FAST64_MAX INT64_MAX
# define UINT64_MAX (__UINT64_C(18446744073709551615))
# define UINT_LEAST64_MAX UINT64_MAX
# define UINT_FAST64_MAX UINT64_MAX
#endif
#define __INT64_C(c) c ## LL
#define __UINT64_C(c) c ## ULL
#ifdef __STDINT_MACROS
# define INT64_C(c) __INT64_C(c)
# define INT_LEAST64_C(c) INT64_C(c)
# define INT_FAST64_C(c) INT64_C(c)
# define UINT64_C(c) __UINT64_C(c)
# define UINT_LEAST64_C(c) UINT64_C(c)
# define UINT_FAST64_C(c) UINT64_C(c)
#endif
# define __PRI64_RANK "ll"
# define __PRIFAST_RANK ""
# define __PRIPTR_RANK ""
/*
* intptr_t & uintptr_t
*/
#ifdef __LP64__
typedef long intptr_t;
typedef unsigned long uintptr_t;
@@ -199,64 +76,130 @@ typedef int intptr_t;
typedef unsigned int uintptr_t;
#endif
#ifdef __STDINT_LIMITS
# define INTPTR_MIN INT32_MIN
# define INTPTR_MAX INT32_MAX
# define UINTPTR_MAX UINT32_MAX
# define PTRDIFF_MIN INT32_MIN
# define PTRDIFF_MAX INT32_MAX
#endif
#ifdef __STDINT_MACROS
# define INTPTR_C(c) INT32_C(c)
# define UINTPTR_C(c) UINT32_C(c)
# define PTRDIFF_C(c) INT32_C(c)
#endif
/*
* intmax_t & uintmax_t
*/
typedef uint64_t uintmax_t;
typedef int64_t intmax_t;
#ifdef __STDINT_LIMITS
# define INTMAX_MIN INT64_MIN
# define INTMAX_MAX INT64_MAX
# define UINTMAX_MAX UINT64_MAX
#endif
#ifdef __STDINT_MACROS
# define INTMAX_C(c) INT64_C(c)
# define UINTMAX_C(c) UINT64_C(c)
#endif
/* Limits of sig_atomic_t. */
#ifdef __STDINT_LIMITS
# define SIG_ATOMIC_MIN INT32_MIN
# define SIG_ATOMIC_MAX INT32_MAX
#endif
/* Limits of wchar_t. */
#ifdef __STDINT_LIMITS
#include <sys/_wchar_limits.h>
#endif
/* Limits of wint_t. */
#ifdef __STDINT_LIMITS
# define WINT_MIN INT32_MIN
# define WINT_MAX INT32_MAX
#endif
/* size_t is defined by the GCC-specific <stddef.h> */
#ifndef _SSIZE_T_DEFINED_
#define _SSIZE_T_DEFINED_
typedef long int ssize_t;
#endif
#define _BITSIZE 32
/* Keep the kernel from trying to define these types... */
#define __BIT_TYPES_DEFINED__
#define INT8_C(c) c
#define INT_LEAST8_C(c) INT8_C(c)
#define INT_FAST8_C(c) INT8_C(c)
#define UINT8_C(c) c
#define UINT_LEAST8_C(c) UINT8_C(c)
#define UINT_FAST8_C(c) UINT8_C(c)
#define INT16_C(c) c
#define INT_LEAST16_C(c) INT16_C(c)
#define INT_FAST16_C(c) INT32_C(c)
#define UINT16_C(c) c
#define UINT_LEAST16_C(c) UINT16_C(c)
#define UINT_FAST16_C(c) UINT32_C(c)
#define INT32_C(c) c
#define INT_LEAST32_C(c) INT32_C(c)
#define INT_FAST32_C(c) INT32_C(c)
#define UINT32_C(c) c ## U
#define UINT_LEAST32_C(c) UINT32_C(c)
#define UINT_FAST32_C(c) UINT32_C(c)
#define INT_LEAST64_C(c) INT64_C(c)
#define INT_FAST64_C(c) INT64_C(c)
#define UINT_LEAST64_C(c) UINT64_C(c)
#define UINT_FAST64_C(c) UINT64_C(c)
#define INTMAX_C(c) INT64_C(c)
#define UINTMAX_C(c) UINT64_C(c)
#ifdef __LP64__
# define INT64_C(c) c ## L
# define UINT64_C(c) c ## UL
# define INTPTR_C(c) INT64_C(c)
# define UINTPTR_C(c) UINT64_C(c)
# define PTRDIFF_C(c) INT64_C(c)
#else
# define INT64_C(c) c ## LL
# define UINT64_C(c) c ## ULL
# define INTPTR_C(c) INT32_C(c)
# define UINTPTR_C(c) UINT32_C(c)
# define PTRDIFF_C(c) INT32_C(c)
#endif
#define INT8_MIN (-128)
#define INT8_MAX (127)
#define INT_LEAST8_MIN INT8_MIN
#define INT_LEAST8_MAX INT8_MAX
#define INT_FAST8_MIN INT8_MIN
#define INT_FAST8_MAX INT8_MAX
#define UINT8_MAX (255)
#define UINT_LEAST8_MAX UINT8_MAX
#define UINT_FAST8_MAX UINT8_MAX
#define INT16_MIN (-32768)
#define INT16_MAX (32767)
#define INT_LEAST16_MIN INT16_MIN
#define INT_LEAST16_MAX INT16_MAX
#define INT_FAST16_MIN INT32_MIN
#define INT_FAST16_MAX INT32_MAX
#define UINT16_MAX (65535)
#define UINT_LEAST16_MAX UINT16_MAX
#define UINT_FAST16_MAX UINT32_MAX
#define INT32_MIN (-2147483647-1)
#define INT32_MAX (2147483647)
#define INT_LEAST32_MIN INT32_MIN
#define INT_LEAST32_MAX INT32_MAX
#define INT_FAST32_MIN INT32_MIN
#define INT_FAST32_MAX INT32_MAX
#define UINT32_MAX (4294967295U)
#define UINT_LEAST32_MAX UINT32_MAX
#define UINT_FAST32_MAX UINT32_MAX
#define INT64_MIN (INT64_C(-9223372036854775807)-1)
#define INT64_MAX (INT64_C(9223372036854775807))
#define INT_LEAST64_MIN INT64_MIN
#define INT_LEAST64_MAX INT64_MAX
#define INT_FAST64_MIN INT64_MIN
#define INT_FAST64_MAX INT64_MAX
#define UINT64_MAX (UINT64_C(18446744073709551615))
#define UINT_LEAST64_MAX UINT64_MAX
#define UINT_FAST64_MAX UINT64_MAX
#define INTMAX_MIN INT64_MIN
#define INTMAX_MAX INT64_MAX
#define UINTMAX_MAX UINT64_MAX
#define SIG_ATOMIC_MAX INT32_MAX
#define SIG_ATOMIC_MIN INT32_MIN
#ifndef WCHAR_MAX /* These might also have been defined by <wchar.h>. */
# define WCHAR_MAX INT32_MAX
# define WCHAR_MIN INT32_MIN
#endif
#define WINT_MAX INT32_MAX
#define WINT_MIN INT32_MIN
#ifdef __LP64__
# define INTPTR_MIN INT64_MIN
# define INTPTR_MAX INT64_MAX
# define UINTPTR_MAX UINT64_MAX
# define PTRDIFF_MIN INT64_MIN
# define PTRDIFF_MAX INT64_MAX
# define SIZE_MAX UINT64_MAX
#else
# define INTPTR_MIN INT32_MIN
# define INTPTR_MAX INT32_MAX
# define UINTPTR_MAX UINT32_MAX
# define PTRDIFF_MIN INT32_MIN
# define PTRDIFF_MAX INT32_MAX
# define SIZE_MAX UINT32_MAX
#endif
#endif /* _STDINT_H */

View File

@@ -18,28 +18,63 @@
****************************************************************************/
#ifndef _ASM_X86_PTRACE_ABI_H
#define _ASM_X86_PTRACE_ABI_H
#ifdef __i386__
#define EBX 0
#define ECX 1
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define ECX 1
#define EDX 2
#define ESI 3
#define EDI 4
#define EBP 5
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define EBP 5
#define EAX 6
#define DS 7
#define ES 8
#define FS 9
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FS 9
#define GS 10
#define ORIG_EAX 11
#define EIP 12
#define CS 13
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define CS 13
#define EFL 14
#define UESP 15
#define SS 16
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FRAME_SIZE 17
#else
#if defined(__ASSEMBLY__) || defined(__FRAME_OFFSETS)
#define R15 0
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define R14 8
#define R13 16
#define R12 24
#define RBP 32
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define RBX 40
#define R11 48
#define R10 56
#define R9 64
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define R8 72
#define RAX 80
#define RCX 88
#define RDX 96
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define RSI 104
#define RDI 112
#define ORIG_RAX 120
#define RIP 128
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define CS 136
#define EFLAGS 144
#define RSP 152
#define SS 160
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define ARGOFFSET R11
#endif
#define FRAME_SIZE 168
#endif
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define PTRACE_GETREGS 12
#define PTRACE_SETREGS 13
@@ -54,10 +89,13 @@
#define PTRACE_SET_THREAD_AREA 26
#ifdef __x86_64__
#define PTRACE_ARCH_PRCTL 30
#else
#endif
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define PTRACE_SYSEMU 31
#define PTRACE_SYSEMU_SINGLESTEP 32
#endif
#endif
#define PTRACE_SINGLEBLOCK 33
#ifndef __ASSEMBLY__
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#include <linux/types.h>
#endif
#endif

View File

@@ -16,34 +16,69 @@
***
****************************************************************************
****************************************************************************/
#ifndef _ASM_X86_PTRACE_H
#define _ASM_X86_PTRACE_H
#include <linux/compiler.h>
#ifndef _UAPI_ASM_X86_PTRACE_H
#define _UAPI_ASM_X86_PTRACE_H
#include <linux/compiler.h>
#include <asm/ptrace-abi.h>
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#include <asm/processor-flags.h>
#ifndef __ASSEMBLY__
#ifdef __i386__
struct pt_regs {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
long ebx;
long ecx;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
long edx;
long esi;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
long edi;
long ebp;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
long eax;
int xds;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
int xes;
int xfs;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
int xgs;
long orig_eax;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
long eip;
int xcs;
long eflags;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
long esp;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
int xss;
};
#else
struct pt_regs {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
unsigned long r15;
unsigned long r14;
unsigned long r13;
unsigned long r12;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
unsigned long rbp;
unsigned long rbx;
unsigned long r11;
unsigned long r10;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
unsigned long r9;
unsigned long r8;
unsigned long rax;
unsigned long rcx;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
unsigned long rdx;
unsigned long rsi;
unsigned long rdi;
unsigned long orig_rax;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
unsigned long rip;
unsigned long cs;
unsigned long eflags;
unsigned long rsp;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
unsigned long ss;
};
#endif
#endif
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#endif