diff options
author | Elliott Hughes <enh@google.com> | 2013-09-30 17:41:08 -0700 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2013-09-30 18:42:13 -0700 |
commit | d3e64a3f403918abf2cc3f9f0f9a2204a420ec96 (patch) | |
tree | ec7cb0e25587096a42ed0fce4a125bf4bba7affd /libc/kernel | |
parent | 76218efbeb2e124656ce15d4eb5a7039da065123 (diff) | |
download | bionic-d3e64a3f403918abf2cc3f9f0f9a2204a420ec96.zip bionic-d3e64a3f403918abf2cc3f9f0f9a2204a420ec96.tar.gz bionic-d3e64a3f403918abf2cc3f9f0f9a2204a420ec96.tar.bz2 |
Add x86_64 to the bionic headers.
Manual changes:
cpp.py: cope with macros that refer to other macros.
defaults.py: x86 no longer always implies __i386__; use __i386__ to replace
the kernel CONFIG_X86_32 flag.
asm/page.h: the upstream page.h isn't a uapi header and no longer includes
the stuff we were using it for. Let's just have our own static file, since
it's the same for all our architectures (both 32- and 64-bit).
sys/select.h: we used to use the various FD_SET-related macros from the
kernel header files, but they've gone. Adjust by adding trivial equivalent
definitions.
Automated changes:
libc/kernel/arch-x86, libc/kernel/common: regenerated from
external/kernel-headers.
Change-Id: I84fc0ed52dc742e043b4ae300fd3b58ee99b7fcd
Diffstat (limited to 'libc/kernel')
70 files changed, 1328 insertions, 167 deletions
diff --git a/libc/kernel/arch-x86/asm/acpi.h b/libc/kernel/arch-x86/asm/acpi.h index 92e6b7d..74843c3 100644 --- a/libc/kernel/arch-x86/asm/acpi.h +++ b/libc/kernel/arch-x86/asm/acpi.h @@ -18,7 +18,12 @@ ****************************************************************************/ #ifndef _ASM_X86_ACPI_H #define _ASM_X86_ACPI_H +#ifdef __i386__ #include "acpi_32.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#else +#include "acpi_64.h" +#endif #include <asm/processor.h> /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #endif diff --git a/libc/kernel/arch-x86/asm/alternative.h b/libc/kernel/arch-x86/asm/alternative.h index 107f551..35cd4f4 100644 --- a/libc/kernel/arch-x86/asm/alternative.h +++ b/libc/kernel/arch-x86/asm/alternative.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "alternative_32.h" +#else +#include "alternative_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/apic.h b/libc/kernel/arch-x86/asm/apic.h index bf6ac72..3885108 100644 --- a/libc/kernel/arch-x86/asm/apic.h +++ b/libc/kernel/arch-x86/asm/apic.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "apic_32.h" +#else +#include "apic_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/apicdef.h b/libc/kernel/arch-x86/asm/apicdef.h index af5b074..b1e0af0 100644 --- a/libc/kernel/arch-x86/asm/apicdef.h +++ b/libc/kernel/arch-x86/asm/apicdef.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "apicdef_32.h" +#else +#include "apicdef_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/atomic.h b/libc/kernel/arch-x86/asm/atomic.h index 9c65347..68d8a45 100644 --- a/libc/kernel/arch-x86/asm/atomic.h +++ b/libc/kernel/arch-x86/asm/atomic.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "atomic_32.h" +#else +#include "atomic_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/auxvec.h b/libc/kernel/arch-x86/asm/auxvec.h index 6a5978e..3ff7f71 100644 --- a/libc/kernel/arch-x86/asm/auxvec.h +++ b/libc/kernel/arch-x86/asm/auxvec.h @@ -18,8 +18,11 @@ ****************************************************************************/ #ifndef _ASM_X86_AUXVEC_H #define _ASM_X86_AUXVEC_H +#ifdef __i386__ #define AT_SYSINFO 32 -#define AT_SYSINFO_EHDR 33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif +#define AT_SYSINFO_EHDR 33 #define AT_VECTOR_SIZE_ARCH 2 #endif +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ diff --git a/libc/kernel/arch-x86/asm/bitops.h b/libc/kernel/arch-x86/asm/bitops.h index 491b611..a4a540d 100644 --- a/libc/kernel/arch-x86/asm/bitops.h +++ b/libc/kernel/arch-x86/asm/bitops.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "bitops_32.h" +#else +#include "bitops_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-mips/asm/page.h b/libc/kernel/arch-x86/asm/bitsperlong.h index 93eb390..2deae24 100644 --- a/libc/kernel/arch-mips/asm/page.h +++ b/libc/kernel/arch-x86/asm/bitsperlong.h @@ -16,13 +16,14 @@ *** **************************************************************************** ****************************************************************************/ -#ifndef _ASM_PAGE_H -#define _ASM_PAGE_H -#ifndef PAGE_SHIFT -#define PAGE_SHIFT 12 +#ifndef __ASM_X86_BITSPERLONG_H +#define __ASM_X86_BITSPERLONG_H +#ifdef __x86_64__ +#define __BITS_PER_LONG 64 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#else +#define __BITS_PER_LONG 32 #endif -#define PAGE_SIZE (1UL << PAGE_SHIFT) -#define PAGE_MASK (~((1 << PAGE_SHIFT) - 1)) -#endif +#include <asm-generic/bitsperlong.h> /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/byteorder.h b/libc/kernel/arch-x86/asm/byteorder.h index 74dc9d6..98fc6b1 100644 --- a/libc/kernel/arch-x86/asm/byteorder.h +++ b/libc/kernel/arch-x86/asm/byteorder.h @@ -22,37 +22,53 @@ #include <linux/compiler.h> /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #ifdef __GNUC__ +#ifdef __i386__ static __inline__ __attribute_const__ __u32 ___arch__swab32(__u32 x) { - __asm__("xchgb %b0,%h0\n\t" /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + __asm__("xchgb %b0,%h0\n\t" "rorl $16,%0\n\t" "xchgb %b0,%h0" :"=q" (x) - : "0" (x)); /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + : "0" (x)); return x; } static __inline__ __attribute_const__ __u64 ___arch__swab64(__u64 val) -{ /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +{ union { struct { __u32 a,b; } s; __u64 u; - } v; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + } v; v.u = val; v.s.a = ___arch__swab32(v.s.a); v.s.b = ___arch__swab32(v.s.b); - __asm__("xchgl %0,%1" : "=r" (v.s.a), "=r" (v.s.b) : "0" (v.s.a), "1" (v.s.b)); /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + __asm__("xchgl %0,%1" : "=r" (v.s.a), "=r" (v.s.b) : "0" (v.s.a), "1" (v.s.b)); return v.u; } +#else +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +static __inline__ __attribute_const__ __u64 ___arch__swab64(__u64 x) +{ + __asm__("bswapq %0" : "=r" (x) : "0" (x)); + return x; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +} +static __inline__ __attribute_const__ __u32 ___arch__swab32(__u32 x) +{ + __asm__("bswapl %0" : "=r" (x) : "0" (x)); +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + return x; +} +#endif #define __arch__swab64(x) ___arch__swab64(x) -#define __arch__swab32(x) ___arch__swab32(x) /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __arch__swab32(x) ___arch__swab32(x) #define __BYTEORDER_HAS_U64__ #endif #include <linux/byteorder/little_endian.h> -#endif /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/cmpxchg.h b/libc/kernel/arch-x86/asm/cmpxchg.h index 9447850..c26890c 100644 --- a/libc/kernel/arch-x86/asm/cmpxchg.h +++ b/libc/kernel/arch-x86/asm/cmpxchg.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "cmpxchg_32.h" +#else +#include "cmpxchg_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/cpufeature.h b/libc/kernel/arch-x86/asm/cpufeature.h index 7fcfacf..71f5220 100644 --- a/libc/kernel/arch-x86/asm/cpufeature.h +++ b/libc/kernel/arch-x86/asm/cpufeature.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "cpufeature_32.h" +#else +#include "cpufeature_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/current.h b/libc/kernel/arch-x86/asm/current.h index da85169..2f80cc2 100644 --- a/libc/kernel/arch-x86/asm/current.h +++ b/libc/kernel/arch-x86/asm/current.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "current_32.h" +#else +#include "current_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/desc.h b/libc/kernel/arch-x86/asm/desc.h index b60787e..d2d29a9 100644 --- a/libc/kernel/arch-x86/asm/desc.h +++ b/libc/kernel/arch-x86/asm/desc.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "desc_32.h" +#else +#include "desc_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/div64.h b/libc/kernel/arch-x86/asm/div64.h index 420d9e3..4621ca7 100644 --- a/libc/kernel/arch-x86/asm/div64.h +++ b/libc/kernel/arch-x86/asm/div64.h @@ -18,8 +18,13 @@ ****************************************************************************/ #ifndef _ASM_X86_DIV64_H #define _ASM_X86_DIV64_H +#ifdef __i386__ #include <linux/types.h> -#define do_div(n,base) ({ unsigned long __upper, __low, __high, __mod, __base; __base = (base); asm("":"=a" (__low), "=d" (__high):"A" (n)); __upper = __high; if (__high) { __upper = __high % (__base); __high = __high / (__base); } asm("divl %2":"=a" (__low), "=d" (__mod):"rm" (__base), "0" (__low), "1" (__upper)); asm("":"=A" (n):"a" (__low),"d" (__high)); __mod; }) /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define do_div(n,base) ({ unsigned long __upper, __low, __high, __mod, __base; __base = (base); asm("":"=a" (__low), "=d" (__high):"A" (n)); __upper = __high; if (__high) { __upper = __high % (__base); __high = __high / (__base); } asm("divl %2":"=a" (__low), "=d" (__mod):"rm" (__base), "0" (__low), "1" (__upper)); asm("":"=A" (n):"a" (__low),"d" (__high)); __mod; }) #define div_long_long_rem(a,b,c) div_ll_X_l_rem(a,b,c) +#else +#include <asm-generic/div64.h> +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif #endif diff --git a/libc/kernel/arch-x86/asm/dma-mapping.h b/libc/kernel/arch-x86/asm/dma-mapping.h index 0a9d23b..467d076 100644 --- a/libc/kernel/arch-x86/asm/dma-mapping.h +++ b/libc/kernel/arch-x86/asm/dma-mapping.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "dma-mapping_32.h" +#else +#include "dma-mapping_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/dma.h b/libc/kernel/arch-x86/asm/dma.h index 1e96d90..6b9c8a8 100644 --- a/libc/kernel/arch-x86/asm/dma.h +++ b/libc/kernel/arch-x86/asm/dma.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "dma_32.h" +#else +#include "dma_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/dwarf2.h b/libc/kernel/arch-x86/asm/dwarf2.h index 916bcb8..93df067 100644 --- a/libc/kernel/arch-x86/asm/dwarf2.h +++ b/libc/kernel/arch-x86/asm/dwarf2.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "dwarf2_32.h" +#else +#include "dwarf2_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/fixmap.h b/libc/kernel/arch-x86/asm/fixmap.h index f8a1d18..e4fd99a 100644 --- a/libc/kernel/arch-x86/asm/fixmap.h +++ b/libc/kernel/arch-x86/asm/fixmap.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "fixmap_32.h" +#else +#include "fixmap_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/genapic.h b/libc/kernel/arch-x86/asm/genapic.h index 3dc5e45..b55a8c1 100644 --- a/libc/kernel/arch-x86/asm/genapic.h +++ b/libc/kernel/arch-x86/asm/genapic.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "genapic_32.h" +#else +#include "genapic_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/hardirq.h b/libc/kernel/arch-x86/asm/hardirq.h index 4e3b8c1..a4b0fe3 100644 --- a/libc/kernel/arch-x86/asm/hardirq.h +++ b/libc/kernel/arch-x86/asm/hardirq.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "hardirq_32.h" +#else +#include "hardirq_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/hw_irq.h b/libc/kernel/arch-x86/asm/hw_irq.h index d69d8e9..1f7eca7 100644 --- a/libc/kernel/arch-x86/asm/hw_irq.h +++ b/libc/kernel/arch-x86/asm/hw_irq.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "hw_irq_32.h" +#else +#include "hw_irq_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/i387.h b/libc/kernel/arch-x86/asm/i387.h index 9333051..47f138a 100644 --- a/libc/kernel/arch-x86/asm/i387.h +++ b/libc/kernel/arch-x86/asm/i387.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "i387_32.h" +#else +#include "i387_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/io.h b/libc/kernel/arch-x86/asm/io.h index 4e81b8c..5ea43c2 100644 --- a/libc/kernel/arch-x86/asm/io.h +++ b/libc/kernel/arch-x86/asm/io.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "io_32.h" +#else +#include "io_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/io_apic.h b/libc/kernel/arch-x86/asm/io_apic.h index 54bf23a..26d5db0 100644 --- a/libc/kernel/arch-x86/asm/io_apic.h +++ b/libc/kernel/arch-x86/asm/io_apic.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "io_apic_32.h" +#else +#include "io_apic_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/irq.h b/libc/kernel/arch-x86/asm/irq.h index eaa65db..92a421e 100644 --- a/libc/kernel/arch-x86/asm/irq.h +++ b/libc/kernel/arch-x86/asm/irq.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "irq_32.h" +#else +#include "irq_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/irqflags.h b/libc/kernel/arch-x86/asm/irqflags.h index 4136598..f987af5 100644 --- a/libc/kernel/arch-x86/asm/irqflags.h +++ b/libc/kernel/arch-x86/asm/irqflags.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "irqflags_32.h" +#else +#include "irqflags_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/kmap_types.h b/libc/kernel/arch-x86/asm/kmap_types.h index ba6af93..5eec06a 100644 --- a/libc/kernel/arch-x86/asm/kmap_types.h +++ b/libc/kernel/arch-x86/asm/kmap_types.h @@ -18,7 +18,12 @@ ****************************************************************************/ #ifndef _ASM_X86_KMAP_TYPES_H #define _ASM_X86_KMAP_TYPES_H +#if defined(CONFIG_X86_32) && defined(CONFIG_DEBUG_HIGHMEM) +#define D(n) __KM_FENCE_##n , +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#else #define D(n) +#endif enum km_type { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ D(0) KM_BOUNCE_READ, diff --git a/libc/kernel/arch-x86/asm/linkage.h b/libc/kernel/arch-x86/asm/linkage.h index 3aae43d..6eb2ce0 100644 --- a/libc/kernel/arch-x86/asm/linkage.h +++ b/libc/kernel/arch-x86/asm/linkage.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "linkage_32.h" +#else +#include "linkage_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/local.h b/libc/kernel/arch-x86/asm/local.h index 99acf6d..6e5419b 100644 --- a/libc/kernel/arch-x86/asm/local.h +++ b/libc/kernel/arch-x86/asm/local.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "local_32.h" +#else +#include "local_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/mc146818rtc.h b/libc/kernel/arch-x86/asm/mc146818rtc.h index f7e8781..34c3aa9 100644 --- a/libc/kernel/arch-x86/asm/mc146818rtc.h +++ b/libc/kernel/arch-x86/asm/mc146818rtc.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "mc146818rtc_32.h" +#else +#include "mc146818rtc_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/module.h b/libc/kernel/arch-x86/asm/module.h index 296ed2b..454fc22 100644 --- a/libc/kernel/arch-x86/asm/module.h +++ b/libc/kernel/arch-x86/asm/module.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "module_32.h" +#else +#include "module_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/mpspec.h b/libc/kernel/arch-x86/asm/mpspec.h index 217a7d4..2c80358 100644 --- a/libc/kernel/arch-x86/asm/mpspec.h +++ b/libc/kernel/arch-x86/asm/mpspec.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "mpspec_32.h" +#else +#include "mpspec_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/msgbuf.h b/libc/kernel/arch-x86/asm/msgbuf.h index 99caf76..7580210 100644 --- a/libc/kernel/arch-x86/asm/msgbuf.h +++ b/libc/kernel/arch-x86/asm/msgbuf.h @@ -22,20 +22,28 @@ struct msqid64_ds { struct ipc64_perm msg_perm; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ __kernel_time_t msg_stime; +#ifdef __i386__ unsigned long __unused1; +#endif +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ __kernel_time_t msg_rtime; +#ifdef __i386__ unsigned long __unused2; +#endif /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ __kernel_time_t msg_ctime; +#ifdef __i386__ unsigned long __unused3; +#endif +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ unsigned long msg_cbytes; unsigned long msg_qnum; -/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ unsigned long msg_qbytes; __kernel_pid_t msg_lspid; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ __kernel_pid_t msg_lrpid; unsigned long __unused4; -/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ unsigned long __unused5; }; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #endif diff --git a/libc/kernel/arch-x86/asm/msr.h b/libc/kernel/arch-x86/asm/msr.h index 00fb800..63da0cc 100644 --- a/libc/kernel/arch-x86/asm/msr.h +++ b/libc/kernel/arch-x86/asm/msr.h @@ -23,4 +23,27 @@ /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #include <linux/types.h> #endif +#ifdef __i386__ +#else +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#ifndef __ASSEMBLY__ +#include <linux/errno.h> +#define rdmsr(msr,val1,val2) __asm__ __volatile__("rdmsr" : "=a" (val1), "=d" (val2) : "c" (msr)) +#define rdmsrl(msr,val) do { unsigned long a__,b__; __asm__ __volatile__("rdmsr" : "=a" (a__), "=d" (b__) : "c" (msr)); val = a__ | (b__<<32); } while(0) +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define wrmsr(msr,val1,val2) __asm__ __volatile__("wrmsr" : : "c" (msr), "a" (val1), "d" (val2)) +#define wrmsrl(msr,val) wrmsr(msr,(__u32)((__u64)(val)),((__u64)(val))>>32) +#define rdtsc(low,high) __asm__ __volatile__("rdtsc" : "=a" (low), "=d" (high)) +#define rdtscl(low) __asm__ __volatile__ ("rdtsc" : "=a" (low) : : "edx") +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define rdtscp(low,high,aux) __asm__ __volatile__ (".byte 0x0f,0x01,0xf9" : "=a" (low), "=d" (high), "=c" (aux)) +#define rdtscll(val) do { unsigned int __a,__d; __asm__ __volatile__("rdtsc" : "=a" (__a), "=d" (__d)); (val) = ((unsigned long)__a) | (((unsigned long)__d)<<32); } while(0) +#define rdtscpll(val, aux) do { unsigned long __a, __d; __asm__ __volatile__ (".byte 0x0f,0x01,0xf9" : "=a" (__a), "=d" (__d), "=c" (aux)); (val) = (__d << 32) | __a; } while (0) +#define write_tsc(val1,val2) wrmsr(0x10, val1, val2) +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define write_rdtscp_aux(val) wrmsr(0xc0000103, val, 0) +#define rdpmc(counter,low,high) __asm__ __volatile__("rdpmc" : "=a" (low), "=d" (high) : "c" (counter)) +#endif +#endif +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #endif diff --git a/libc/kernel/arch-x86/asm/percpu.h b/libc/kernel/arch-x86/asm/percpu.h index 607b92e..2c50ffd 100644 --- a/libc/kernel/arch-x86/asm/percpu.h +++ b/libc/kernel/arch-x86/asm/percpu.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "percpu_32.h" +#else +#include "percpu_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/pgalloc.h b/libc/kernel/arch-x86/asm/pgalloc.h index 9175367..a531e2d 100644 --- a/libc/kernel/arch-x86/asm/pgalloc.h +++ b/libc/kernel/arch-x86/asm/pgalloc.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "pgalloc_32.h" +#else +#include "pgalloc_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/pgtable.h b/libc/kernel/arch-x86/asm/pgtable.h index a9bed6b..7ad9d3a 100644 --- a/libc/kernel/arch-x86/asm/pgtable.h +++ b/libc/kernel/arch-x86/asm/pgtable.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "pgtable_32.h" +#else +#include "pgtable_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/posix_types.h b/libc/kernel/arch-x86/asm/posix_types.h index 4e26788..43aaaea 100644 --- a/libc/kernel/arch-x86/asm/posix_types.h +++ b/libc/kernel/arch-x86/asm/posix_types.h @@ -16,4 +16,11 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "posix_types_32.h" +#elif defined(__ILP32__) +#include "posix_types_x32.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#else +#include "posix_types_64.h" +#endif diff --git a/libc/kernel/arch-x86/asm/posix_types_32.h b/libc/kernel/arch-x86/asm/posix_types_32.h index 90136d2..f625905 100644 --- a/libc/kernel/arch-x86/asm/posix_types_32.h +++ b/libc/kernel/arch-x86/asm/posix_types_32.h @@ -16,63 +16,21 @@ *** **************************************************************************** ****************************************************************************/ -#ifndef __ARCH_I386_POSIX_TYPES_H -#define __ARCH_I386_POSIX_TYPES_H -typedef unsigned long __kernel_ino_t; +#ifndef _ASM_X86_POSIX_TYPES_32_H +#define _ASM_X86_POSIX_TYPES_32_H typedef unsigned short __kernel_mode_t; +#define __kernel_mode_t __kernel_mode_t /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ typedef unsigned short __kernel_nlink_t; -typedef long __kernel_off_t; -typedef int __kernel_pid_t; +#define __kernel_nlink_t __kernel_nlink_t typedef unsigned short __kernel_ipc_pid_t; +#define __kernel_ipc_pid_t __kernel_ipc_pid_t /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ typedef unsigned short __kernel_uid_t; typedef unsigned short __kernel_gid_t; -typedef unsigned int __kernel_size_t; -typedef int __kernel_ssize_t; -/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ -typedef int __kernel_ptrdiff_t; -typedef long __kernel_time_t; -typedef long __kernel_suseconds_t; -typedef long __kernel_clock_t; -/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ -typedef int __kernel_timer_t; -typedef int __kernel_clockid_t; -typedef int __kernel_daddr_t; -typedef char * __kernel_caddr_t; -/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ -typedef unsigned short __kernel_uid16_t; -typedef unsigned short __kernel_gid16_t; -typedef unsigned int __kernel_uid32_t; -typedef unsigned int __kernel_gid32_t; -/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ -typedef unsigned short __kernel_old_uid_t; -typedef unsigned short __kernel_old_gid_t; +#define __kernel_uid_t __kernel_uid_t typedef unsigned short __kernel_old_dev_t; -#ifdef __GNUC__ -/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ -typedef long long __kernel_loff_t; -#endif -typedef struct { -#ifdef __USE_ALL /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ - int val[2]; -#else - int __val[2]; +#define __kernel_old_dev_t __kernel_old_dev_t +#include <asm-generic/posix_types.h> #endif -/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ -} __kernel_fsid_t; -#if !defined(__GLIBC__) || __GLIBC__ < 2 -#undef __FD_SET -#define __FD_SET(fd,fdsetp) __asm__ __volatile__("btsl %1,%0": "+m" (*(__kernel_fd_set *) (fdsetp)):"r" ((int) (fd))) -/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ -#undef __FD_CLR -#define __FD_CLR(fd,fdsetp) __asm__ __volatile__("btrl %1,%0": "+m" (*(__kernel_fd_set *) (fdsetp)):"r" ((int) (fd))) -#undef __FD_ISSET -#define __FD_ISSET(fd,fdsetp) (__extension__ ({ unsigned char __result; __asm__ __volatile__("btl %1,%2 ; setb %0" :"=q" (__result) :"r" ((int) (fd)), "m" (*(__kernel_fd_set *) (fdsetp))); __result; })) -/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ -#undef __FD_ZERO -#define __FD_ZERO(fdsetp) do { int __d0, __d1; __asm__ __volatile__("cld ; rep ; stosl" :"=m" (*(__kernel_fd_set *) (fdsetp)), "=&c" (__d0), "=&D" (__d1) :"a" (0), "1" (__FDSET_LONGS), "2" ((__kernel_fd_set *) (fdsetp)) : "memory"); } while (0) -#endif -#endif -/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ diff --git a/libc/kernel/arch-x86/asm/page.h b/libc/kernel/arch-x86/asm/posix_types_64.h index 3b45383..e35b769 100644 --- a/libc/kernel/arch-x86/asm/page.h +++ b/libc/kernel/arch-x86/asm/posix_types_64.h @@ -16,4 +16,14 @@ *** **************************************************************************** ****************************************************************************/ -#include "page_32.h" +#ifndef _ASM_X86_POSIX_TYPES_64_H +#define _ASM_X86_POSIX_TYPES_64_H +typedef unsigned short __kernel_old_uid_t; +typedef unsigned short __kernel_old_gid_t; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __kernel_old_uid_t __kernel_old_uid_t +typedef unsigned long __kernel_old_dev_t; +#define __kernel_old_dev_t __kernel_old_dev_t +#include <asm-generic/posix_types.h> +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/processor.h b/libc/kernel/arch-x86/asm/processor.h index e9eaec8..f23b921 100644 --- a/libc/kernel/arch-x86/asm/processor.h +++ b/libc/kernel/arch-x86/asm/processor.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "processor_32.h" +#else +#include "processor_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/ptrace-abi.h b/libc/kernel/arch-x86/asm/ptrace-abi.h index bbc7e86..85306ea 100644 --- a/libc/kernel/arch-x86/asm/ptrace-abi.h +++ b/libc/kernel/arch-x86/asm/ptrace-abi.h @@ -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 diff --git a/libc/kernel/arch-x86/asm/ptrace.h b/libc/kernel/arch-x86/asm/ptrace.h index 2914411..2cb1c8f 100644 --- a/libc/kernel/arch-x86/asm/ptrace.h +++ b/libc/kernel/arch-x86/asm/ptrace.h @@ -22,28 +22,60 @@ #include <asm/ptrace-abi.h> /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #ifndef __ASSEMBLY__ +#ifdef __i386__ struct pt_regs { long ebx; - long ecx; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + long ecx; long edx; long esi; long edi; - long ebp; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + long ebp; long eax; int xds; int xes; - int xfs; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + int xfs; long orig_eax; long eip; int xcs; - long eflags; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + long eflags; long esp; int xss; }; -#endif /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#else +struct pt_regs { + unsigned long r15; + unsigned long r14; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long r13; + unsigned long r12; + unsigned long rbp; + unsigned long rbx; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long r11; + unsigned long r10; + unsigned long r9; + unsigned long r8; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long rax; + unsigned long rcx; + unsigned long rdx; + unsigned long rsi; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long rdi; + unsigned long orig_rax; + unsigned long rip; + unsigned long cs; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long eflags; + unsigned long rsp; + unsigned long ss; +}; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif +#endif #endif diff --git a/libc/kernel/arch-x86/asm/scatterlist.h b/libc/kernel/arch-x86/asm/scatterlist.h index b691d08..1754cbb 100644 --- a/libc/kernel/arch-x86/asm/scatterlist.h +++ b/libc/kernel/arch-x86/asm/scatterlist.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "scatterlist_32.h" +#else +#include "scatterlist_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/segment.h b/libc/kernel/arch-x86/asm/segment.h index 145e21d..b3be77c 100644 --- a/libc/kernel/arch-x86/asm/segment.h +++ b/libc/kernel/arch-x86/asm/segment.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "segment_32.h" +#else +#include "segment_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/semaphore.h b/libc/kernel/arch-x86/asm/semaphore.h index 7a2223e..ee4f48e 100644 --- a/libc/kernel/arch-x86/asm/semaphore.h +++ b/libc/kernel/arch-x86/asm/semaphore.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "semaphore_32.h" +#else +#include "semaphore_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/shmbuf.h b/libc/kernel/arch-x86/asm/shmbuf.h index 5ecfe08..81cce3e 100644 --- a/libc/kernel/arch-x86/asm/shmbuf.h +++ b/libc/kernel/arch-x86/asm/shmbuf.h @@ -23,32 +23,39 @@ struct shmid64_ds { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ size_t shm_segsz; __kernel_time_t shm_atime; +#ifdef __i386__ unsigned long __unused1; - __kernel_time_t shm_dtime; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif + __kernel_time_t shm_dtime; +#ifdef __i386__ unsigned long __unused2; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif __kernel_time_t shm_ctime; +#ifdef __i386__ unsigned long __unused3; - __kernel_pid_t shm_cpid; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif + __kernel_pid_t shm_cpid; __kernel_pid_t shm_lpid; unsigned long shm_nattch; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ unsigned long __unused4; unsigned long __unused5; -/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ }; struct shminfo64 { +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ unsigned long shmmax; unsigned long shmmin; -/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ unsigned long shmmni; unsigned long shmseg; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ unsigned long shmall; unsigned long __unused1; -/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ unsigned long __unused2; unsigned long __unused3; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ unsigned long __unused4; }; -/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #endif diff --git a/libc/kernel/arch-x86/asm/sigcontext.h b/libc/kernel/arch-x86/asm/sigcontext.h index 390189f..b0b5fd4 100644 --- a/libc/kernel/arch-x86/asm/sigcontext.h +++ b/libc/kernel/arch-x86/asm/sigcontext.h @@ -21,73 +21,130 @@ #include <linux/compiler.h> #include <asm/types.h> /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#ifdef __i386__ struct _fpreg { unsigned short significand[4]; unsigned short exponent; -}; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +}; struct _fpxreg { unsigned short significand[4]; unsigned short exponent; - unsigned short padding[3]; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned short padding[3]; }; struct _xmmreg { unsigned long element[4]; -}; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +}; struct _fpstate { unsigned long cw; unsigned long sw; - unsigned long tag; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long tag; unsigned long ipoff; unsigned long cssel; unsigned long dataoff; - unsigned long datasel; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long datasel; struct _fpreg _st[8]; unsigned short status; unsigned short magic; - unsigned long _fxsr_env[6]; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long _fxsr_env[6]; unsigned long mxcsr; unsigned long reserved; struct _fpxreg _fxsr_st[8]; - struct _xmmreg _xmm[8]; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + struct _xmmreg _xmm[8]; unsigned long padding[56]; }; #define X86_FXSR_MAGIC 0x0000 -struct sigcontext { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +struct sigcontext { unsigned short gs, __gsh; unsigned short fs, __fsh; unsigned short es, __esh; - unsigned short ds, __dsh; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned short ds, __dsh; unsigned long edi; unsigned long esi; unsigned long ebp; - unsigned long esp; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long esp; unsigned long ebx; unsigned long edx; unsigned long ecx; - unsigned long eax; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long eax; unsigned long trapno; unsigned long err; unsigned long eip; - unsigned short cs, __csh; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned short cs, __csh; unsigned long eflags; unsigned long esp_at_signal; unsigned short ss, __ssh; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct _fpstate __user * fpstate; + unsigned long oldmask; + unsigned long cr2; +}; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#else +struct _fpstate { + __u16 cwd; + __u16 swd; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + __u16 twd; + __u16 fop; + __u64 rip; + __u64 rdp; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + __u32 mxcsr; + __u32 mxcsr_mask; + __u32 st_space[32]; + __u32 xmm_space[64]; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + __u32 reserved2[24]; +}; +struct sigcontext { + unsigned long r8; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long r9; + unsigned long r10; + unsigned long r11; + unsigned long r12; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long r13; + unsigned long r14; + unsigned long r15; + unsigned long rdi; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long rsi; + unsigned long rbp; + unsigned long rbx; + unsigned long rdx; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long rax; + unsigned long rcx; + unsigned long rsp; + unsigned long rip; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long eflags; + unsigned short cs; + unsigned short gs; + unsigned short fs; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned short __pad0; + unsigned long err; + unsigned long trapno; unsigned long oldmask; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ unsigned long cr2; + struct _fpstate __user *fpstate; + unsigned long reserved1[8]; }; -#endif /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif +#endif diff --git a/libc/kernel/arch-x86/asm/signal.h b/libc/kernel/arch-x86/asm/signal.h index 1c8f2f6..a15028c 100644 --- a/libc/kernel/arch-x86/asm/signal.h +++ b/libc/kernel/arch-x86/asm/signal.h @@ -93,20 +93,35 @@ typedef unsigned long sigset_t; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #include <asm-generic/signal.h> #ifndef __ASSEMBLY__ +#ifdef __i386__ struct sigaction { - union { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + union { __sighandler_t _sa_handler; void (*_sa_sigaction)(int, struct siginfo *, void *); } _u; - sigset_t sa_mask; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + sigset_t sa_mask; unsigned long sa_flags; void (*sa_restorer)(void); }; -#define sa_handler _u._sa_handler /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define sa_handler _u._sa_handler #define sa_sigaction _u._sa_sigaction +#else +struct sigaction { +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + __sighandler_t sa_handler; + unsigned long sa_flags; + __sigrestore_t sa_restorer; + sigset_t sa_mask; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +}; +struct k_sigaction { + struct sigaction sa; +}; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif typedef struct sigaltstack { void __user *ss_sp; int ss_flags; diff --git a/libc/kernel/arch-x86/asm/smp.h b/libc/kernel/arch-x86/asm/smp.h index 4e439d5..276475d 100644 --- a/libc/kernel/arch-x86/asm/smp.h +++ b/libc/kernel/arch-x86/asm/smp.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "smp_32.h" +#else +#include "smp_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/spinlock.h b/libc/kernel/arch-x86/asm/spinlock.h index 286bf86..e15abda 100644 --- a/libc/kernel/arch-x86/asm/spinlock.h +++ b/libc/kernel/arch-x86/asm/spinlock.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "spinlock_32.h" +#else +#include "spinlock_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/stat.h b/libc/kernel/arch-x86/asm/stat.h index 3878c88..97de74b 100644 --- a/libc/kernel/arch-x86/asm/stat.h +++ b/libc/kernel/arch-x86/asm/stat.h @@ -19,73 +19,111 @@ #ifndef _ASM_X86_STAT_H #define _ASM_X86_STAT_H #define STAT_HAVE_NSEC 1 -struct stat { +#ifdef __i386__ /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +struct stat { unsigned long st_dev; unsigned long st_ino; unsigned short st_mode; - unsigned short st_nlink; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned short st_nlink; unsigned short st_uid; unsigned short st_gid; unsigned long st_rdev; - unsigned long st_size; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long st_size; unsigned long st_blksize; unsigned long st_blocks; unsigned long st_atime; - unsigned long st_atime_nsec; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long st_atime_nsec; unsigned long st_mtime; unsigned long st_mtime_nsec; unsigned long st_ctime; - unsigned long st_ctime_nsec; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long st_ctime_nsec; unsigned long __unused4; unsigned long __unused5; }; -#define STAT64_HAS_BROKEN_ST_INO 1 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define STAT64_HAS_BROKEN_ST_INO 1 struct stat64 { unsigned long long st_dev; unsigned char __pad0[4]; - unsigned long __st_ino; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long __st_ino; unsigned int st_mode; unsigned int st_nlink; unsigned long st_uid; - unsigned long st_gid; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long st_gid; unsigned long long st_rdev; unsigned char __pad3[4]; long long st_size; - unsigned long st_blksize; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long st_blksize; unsigned long long st_blocks; unsigned long st_atime; unsigned long st_atime_nsec; - unsigned long st_mtime; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long st_mtime; unsigned int st_mtime_nsec; unsigned long st_ctime; unsigned long st_ctime_nsec; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ unsigned long long st_ino; +}; +#else +struct stat { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long st_dev; + unsigned long st_ino; + unsigned long st_nlink; + unsigned int st_mode; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned int st_uid; + unsigned int st_gid; + unsigned int __pad0; + unsigned long st_rdev; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + long st_size; + long st_blksize; + long st_blocks; + unsigned long st_atime; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long st_atime_nsec; + unsigned long st_mtime; + unsigned long st_mtime_nsec; + unsigned long st_ctime; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long st_ctime_nsec; + long __linux_unused[3]; }; +#endif +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct __old_kernel_stat { unsigned short st_dev; unsigned short st_ino; -/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ unsigned short st_mode; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ unsigned short st_nlink; unsigned short st_uid; unsigned short st_gid; -/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ unsigned short st_rdev; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#ifdef __i386__ unsigned long st_size; unsigned long st_atime; unsigned long st_mtime; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ unsigned long st_ctime; +#else + unsigned int st_size; + unsigned int st_atime; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned int st_mtime; + unsigned int st_ctime; +#endif }; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #endif diff --git a/libc/kernel/arch-x86/asm/statfs.h b/libc/kernel/arch-x86/asm/statfs.h index 7472605..f137d17 100644 --- a/libc/kernel/arch-x86/asm/statfs.h +++ b/libc/kernel/arch-x86/asm/statfs.h @@ -18,6 +18,58 @@ ****************************************************************************/ #ifndef _ASM_X86_STATFS_H #define _ASM_X86_STATFS_H +#ifdef __i386__ #include <asm-generic/statfs.h> -#endif /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#else +struct statfs { + long f_type; + long f_bsize; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + long f_blocks; + long f_bfree; + long f_bavail; + long f_files; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + long f_ffree; + __kernel_fsid_t f_fsid; + long f_namelen; + long f_frsize; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + long f_spare[5]; +}; +struct statfs64 { + long f_type; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + long f_bsize; + long f_blocks; + long f_bfree; + long f_bavail; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + long f_files; + long f_ffree; + __kernel_fsid_t f_fsid; + long f_namelen; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + long f_frsize; + long f_spare[5]; +}; +struct compat_statfs64 { +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + __u32 f_type; + __u32 f_bsize; + __u64 f_blocks; + __u64 f_bfree; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + __u64 f_bavail; + __u64 f_files; + __u64 f_ffree; + __kernel_fsid_t f_fsid; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + __u32 f_namelen; + __u32 f_frsize; + __u32 f_spare[5]; +} __attribute__((packed)); +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif +#endif diff --git a/libc/kernel/arch-x86/asm/string.h b/libc/kernel/arch-x86/asm/string.h index 874b2f0..ae9e3b4 100644 --- a/libc/kernel/arch-x86/asm/string.h +++ b/libc/kernel/arch-x86/asm/string.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "string_32.h" +#else +#include "string_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/system.h b/libc/kernel/arch-x86/asm/system.h index 12767cd..bdf9b0f 100644 --- a/libc/kernel/arch-x86/asm/system.h +++ b/libc/kernel/arch-x86/asm/system.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "system_32.h" +#else +#include "system_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/thread_info.h b/libc/kernel/arch-x86/asm/thread_info.h index d15e362..18c3f8d 100644 --- a/libc/kernel/arch-x86/asm/thread_info.h +++ b/libc/kernel/arch-x86/asm/thread_info.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "thread_info_32.h" +#else +#include "thread_info_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/tlbflush.h b/libc/kernel/arch-x86/asm/tlbflush.h index fd576df..5a4b110 100644 --- a/libc/kernel/arch-x86/asm/tlbflush.h +++ b/libc/kernel/arch-x86/asm/tlbflush.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "tlbflush_32.h" +#else +#include "tlbflush_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/types.h b/libc/kernel/arch-x86/asm/types.h index b71d89b..f5aa99e 100644 --- a/libc/kernel/arch-x86/asm/types.h +++ b/libc/kernel/arch-x86/asm/types.h @@ -28,11 +28,17 @@ typedef unsigned short __u16; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ typedef __signed__ int __s32; typedef unsigned int __u32; +#ifdef __i386__ #ifdef __GNUC__ -__extension__ typedef __signed__ long long __s64; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +__extension__ typedef __signed__ long long __s64; __extension__ typedef unsigned long long __u64; #endif +#else +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +typedef __signed__ long long __s64; +typedef unsigned long long __u64; #endif #endif /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/uaccess.h b/libc/kernel/arch-x86/asm/uaccess.h index b167f6d..23da5d2 100644 --- a/libc/kernel/arch-x86/asm/uaccess.h +++ b/libc/kernel/arch-x86/asm/uaccess.h @@ -16,4 +16,9 @@ *** **************************************************************************** ****************************************************************************/ +#ifdef __i386__ #include "uaccess_32.h" +#else +#include "uaccess_64.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/unistd.h b/libc/kernel/arch-x86/asm/unistd.h index d109f5f..3e8df69 100644 --- a/libc/kernel/arch-x86/asm/unistd.h +++ b/libc/kernel/arch-x86/asm/unistd.h @@ -16,4 +16,16 @@ *** **************************************************************************** ****************************************************************************/ -#include "unistd_32.h" +#ifndef _ASM_X86_UNISTD_H +#define _ASM_X86_UNISTD_H 1 +#define __X32_SYSCALL_BIT 0x40000000 +#ifdef __i386__ +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#include <asm/unistd_32.h> +#elif defined(__ILP32__) +#include <asm/unistd_x32.h> +#else +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#include <asm/unistd_64.h> +#endif +#endif diff --git a/libc/kernel/arch-x86/asm/unistd_64.h b/libc/kernel/arch-x86/asm/unistd_64.h new file mode 100644 index 0000000..169e9ea --- /dev/null +++ b/libc/kernel/arch-x86/asm/unistd_64.h @@ -0,0 +1,411 @@ +/**************************************************************************** + **************************************************************************** + *** + *** This header was automatically generated from a Linux kernel header + *** of the same name, to make information necessary for userspace to + *** call into the kernel available to libc. It contains only constants, + *** structures, and macros generated from the original header, and thus, + *** contains no copyrightable information. + *** + *** To edit the content of this header, modify the corresponding + *** source file (e.g. under external/kernel-headers/original/) then + *** run bionic/libc/kernel/tools/update_all.py + *** + *** Any manual change here will be lost the next time this script will + *** be run. You've been warned! + *** + **************************************************************************** + ****************************************************************************/ +#ifndef _ASM_X86_UNISTD_64_H +#define _ASM_X86_UNISTD_64_H 1 +#define __NR_read 0 +#define __NR_write 1 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_open 2 +#define __NR_close 3 +#define __NR_stat 4 +#define __NR_fstat 5 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_lstat 6 +#define __NR_poll 7 +#define __NR_lseek 8 +#define __NR_mmap 9 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_mprotect 10 +#define __NR_munmap 11 +#define __NR_brk 12 +#define __NR_rt_sigaction 13 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_rt_sigprocmask 14 +#define __NR_rt_sigreturn 15 +#define __NR_ioctl 16 +#define __NR_pread64 17 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_pwrite64 18 +#define __NR_readv 19 +#define __NR_writev 20 +#define __NR_access 21 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_pipe 22 +#define __NR_select 23 +#define __NR_sched_yield 24 +#define __NR_mremap 25 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_msync 26 +#define __NR_mincore 27 +#define __NR_madvise 28 +#define __NR_shmget 29 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_shmat 30 +#define __NR_shmctl 31 +#define __NR_dup 32 +#define __NR_dup2 33 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_pause 34 +#define __NR_nanosleep 35 +#define __NR_getitimer 36 +#define __NR_alarm 37 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_setitimer 38 +#define __NR_getpid 39 +#define __NR_sendfile 40 +#define __NR_socket 41 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_connect 42 +#define __NR_accept 43 +#define __NR_sendto 44 +#define __NR_recvfrom 45 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_sendmsg 46 +#define __NR_recvmsg 47 +#define __NR_shutdown 48 +#define __NR_bind 49 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_listen 50 +#define __NR_getsockname 51 +#define __NR_getpeername 52 +#define __NR_socketpair 53 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_setsockopt 54 +#define __NR_getsockopt 55 +#define __NR_clone 56 +#define __NR_fork 57 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_vfork 58 +#define __NR_execve 59 +#define __NR_exit 60 +#define __NR_wait4 61 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_kill 62 +#define __NR_uname 63 +#define __NR_semget 64 +#define __NR_semop 65 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_semctl 66 +#define __NR_shmdt 67 +#define __NR_msgget 68 +#define __NR_msgsnd 69 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_msgrcv 70 +#define __NR_msgctl 71 +#define __NR_fcntl 72 +#define __NR_flock 73 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_fsync 74 +#define __NR_fdatasync 75 +#define __NR_truncate 76 +#define __NR_ftruncate 77 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_getdents 78 +#define __NR_getcwd 79 +#define __NR_chdir 80 +#define __NR_fchdir 81 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_rename 82 +#define __NR_mkdir 83 +#define __NR_rmdir 84 +#define __NR_creat 85 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_link 86 +#define __NR_unlink 87 +#define __NR_symlink 88 +#define __NR_readlink 89 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_chmod 90 +#define __NR_fchmod 91 +#define __NR_chown 92 +#define __NR_fchown 93 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_lchown 94 +#define __NR_umask 95 +#define __NR_gettimeofday 96 +#define __NR_getrlimit 97 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_getrusage 98 +#define __NR_sysinfo 99 +#define __NR_times 100 +#define __NR_ptrace 101 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_getuid 102 +#define __NR_syslog 103 +#define __NR_getgid 104 +#define __NR_setuid 105 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_setgid 106 +#define __NR_geteuid 107 +#define __NR_getegid 108 +#define __NR_setpgid 109 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_getppid 110 +#define __NR_getpgrp 111 +#define __NR_setsid 112 +#define __NR_setreuid 113 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_setregid 114 +#define __NR_getgroups 115 +#define __NR_setgroups 116 +#define __NR_setresuid 117 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_getresuid 118 +#define __NR_setresgid 119 +#define __NR_getresgid 120 +#define __NR_getpgid 121 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_setfsuid 122 +#define __NR_setfsgid 123 +#define __NR_getsid 124 +#define __NR_capget 125 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_capset 126 +#define __NR_rt_sigpending 127 +#define __NR_rt_sigtimedwait 128 +#define __NR_rt_sigqueueinfo 129 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_rt_sigsuspend 130 +#define __NR_sigaltstack 131 +#define __NR_utime 132 +#define __NR_mknod 133 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_uselib 134 +#define __NR_personality 135 +#define __NR_ustat 136 +#define __NR_statfs 137 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_fstatfs 138 +#define __NR_sysfs 139 +#define __NR_getpriority 140 +#define __NR_setpriority 141 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_sched_setparam 142 +#define __NR_sched_getparam 143 +#define __NR_sched_setscheduler 144 +#define __NR_sched_getscheduler 145 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_sched_get_priority_max 146 +#define __NR_sched_get_priority_min 147 +#define __NR_sched_rr_get_interval 148 +#define __NR_mlock 149 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_munlock 150 +#define __NR_mlockall 151 +#define __NR_munlockall 152 +#define __NR_vhangup 153 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_modify_ldt 154 +#define __NR_pivot_root 155 +#define __NR__sysctl 156 +#define __NR_prctl 157 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_arch_prctl 158 +#define __NR_adjtimex 159 +#define __NR_setrlimit 160 +#define __NR_chroot 161 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_sync 162 +#define __NR_acct 163 +#define __NR_settimeofday 164 +#define __NR_mount 165 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_umount2 166 +#define __NR_swapon 167 +#define __NR_swapoff 168 +#define __NR_reboot 169 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_sethostname 170 +#define __NR_setdomainname 171 +#define __NR_iopl 172 +#define __NR_ioperm 173 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_create_module 174 +#define __NR_init_module 175 +#define __NR_delete_module 176 +#define __NR_get_kernel_syms 177 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_query_module 178 +#define __NR_quotactl 179 +#define __NR_nfsservctl 180 +#define __NR_getpmsg 181 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_putpmsg 182 +#define __NR_afs_syscall 183 +#define __NR_tuxcall 184 +#define __NR_security 185 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_gettid 186 +#define __NR_readahead 187 +#define __NR_setxattr 188 +#define __NR_lsetxattr 189 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_fsetxattr 190 +#define __NR_getxattr 191 +#define __NR_lgetxattr 192 +#define __NR_fgetxattr 193 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_listxattr 194 +#define __NR_llistxattr 195 +#define __NR_flistxattr 196 +#define __NR_removexattr 197 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_lremovexattr 198 +#define __NR_fremovexattr 199 +#define __NR_tkill 200 +#define __NR_time 201 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_futex 202 +#define __NR_sched_setaffinity 203 +#define __NR_sched_getaffinity 204 +#define __NR_set_thread_area 205 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_io_setup 206 +#define __NR_io_destroy 207 +#define __NR_io_getevents 208 +#define __NR_io_submit 209 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_io_cancel 210 +#define __NR_get_thread_area 211 +#define __NR_lookup_dcookie 212 +#define __NR_epoll_create 213 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_epoll_ctl_old 214 +#define __NR_epoll_wait_old 215 +#define __NR_remap_file_pages 216 +#define __NR_getdents64 217 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_set_tid_address 218 +#define __NR_restart_syscall 219 +#define __NR_semtimedop 220 +#define __NR_fadvise64 221 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_timer_create 222 +#define __NR_timer_settime 223 +#define __NR_timer_gettime 224 +#define __NR_timer_getoverrun 225 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_timer_delete 226 +#define __NR_clock_settime 227 +#define __NR_clock_gettime 228 +#define __NR_clock_getres 229 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_clock_nanosleep 230 +#define __NR_exit_group 231 +#define __NR_epoll_wait 232 +#define __NR_epoll_ctl 233 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_tgkill 234 +#define __NR_utimes 235 +#define __NR_vserver 236 +#define __NR_mbind 237 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_set_mempolicy 238 +#define __NR_get_mempolicy 239 +#define __NR_mq_open 240 +#define __NR_mq_unlink 241 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_mq_timedsend 242 +#define __NR_mq_timedreceive 243 +#define __NR_mq_notify 244 +#define __NR_mq_getsetattr 245 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_kexec_load 246 +#define __NR_waitid 247 +#define __NR_add_key 248 +#define __NR_request_key 249 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_keyctl 250 +#define __NR_ioprio_set 251 +#define __NR_ioprio_get 252 +#define __NR_inotify_init 253 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_inotify_add_watch 254 +#define __NR_inotify_rm_watch 255 +#define __NR_migrate_pages 256 +#define __NR_openat 257 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_mkdirat 258 +#define __NR_mknodat 259 +#define __NR_fchownat 260 +#define __NR_futimesat 261 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_newfstatat 262 +#define __NR_unlinkat 263 +#define __NR_renameat 264 +#define __NR_linkat 265 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_symlinkat 266 +#define __NR_readlinkat 267 +#define __NR_fchmodat 268 +#define __NR_faccessat 269 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_pselect6 270 +#define __NR_ppoll 271 +#define __NR_unshare 272 +#define __NR_set_robust_list 273 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_get_robust_list 274 +#define __NR_splice 275 +#define __NR_tee 276 +#define __NR_sync_file_range 277 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_vmsplice 278 +#define __NR_move_pages 279 +#define __NR_utimensat 280 +#define __NR_epoll_pwait 281 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_signalfd 282 +#define __NR_timerfd_create 283 +#define __NR_eventfd 284 +#define __NR_fallocate 285 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_timerfd_settime 286 +#define __NR_timerfd_gettime 287 +#define __NR_accept4 288 +#define __NR_signalfd4 289 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_eventfd2 290 +#define __NR_epoll_create1 291 +#define __NR_dup3 292 +#define __NR_pipe2 293 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_inotify_init1 294 +#define __NR_preadv 295 +#define __NR_pwritev 296 +#define __NR_rt_tgsigqueueinfo 297 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_perf_event_open 298 +#define __NR_recvmmsg 299 +#define __NR_fanotify_init 300 +#define __NR_fanotify_mark 301 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_prlimit64 302 +#define __NR_name_to_handle_at 303 +#define __NR_open_by_handle_at 304 +#define __NR_clock_adjtime 305 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_syncfs 306 +#define __NR_sendmmsg 307 +#define __NR_setns 308 +#define __NR_getcpu 309 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define __NR_process_vm_readv 310 +#define __NR_process_vm_writev 311 +#endif diff --git a/libc/kernel/arch-x86/asm/user.h b/libc/kernel/arch-x86/asm/user.h index 054182e..066bf4e 100644 --- a/libc/kernel/arch-x86/asm/user.h +++ b/libc/kernel/arch-x86/asm/user.h @@ -16,4 +16,36 @@ *** **************************************************************************** ****************************************************************************/ +#ifndef _ASM_X86_USER_H +#define _ASM_X86_USER_H +#ifdef __i386__ #include "user_32.h" +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#else +#include "user_64.h" +#endif +#include <asm/types.h> +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +struct user_ymmh_regs { + __u32 ymmh_space[64]; +}; +struct user_xsave_hdr { +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + __u64 xstate_bv; + __u64 reserved1[2]; + __u64 reserved2[5]; +}; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define USER_XSTATE_FX_SW_WORDS 6 +#define USER_XSTATE_XCR0_WORD 0 +struct user_xstateregs { + struct { +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + __u64 fpx_space[58]; + __u64 xstate_fx_sw[USER_XSTATE_FX_SW_WORDS]; + } i387; + struct user_xsave_hdr xsave_hdr; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + struct user_ymmh_regs ymmh; +}; +#endif diff --git a/libc/kernel/arch-x86/asm/user_32.h b/libc/kernel/arch-x86/asm/user_32.h index 6825b35..7be3118 100644 --- a/libc/kernel/arch-x86/asm/user_32.h +++ b/libc/kernel/arch-x86/asm/user_32.h @@ -16,8 +16,8 @@ *** **************************************************************************** ****************************************************************************/ -#ifndef _I386_USER_H -#define _I386_USER_H +#ifndef _ASM_X86_USER_32_H +#define _ASM_X86_USER_32_H #include <asm/page.h> struct user_i387_struct { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ @@ -52,40 +52,53 @@ struct user_fxsr_struct { }; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct user_regs_struct { - long ebx, ecx, edx, esi, edi, ebp, eax; - unsigned short ds, __ds, es, __es; - unsigned short fs, __fs, gs, __gs; + unsigned long bx; + unsigned long cx; + unsigned long dx; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ - long orig_eax, eip; - unsigned short cs, __cs; - long eflags, esp; - unsigned short ss, __ss; + unsigned long si; + unsigned long di; + unsigned long bp; + unsigned long ax; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long ds; + unsigned long es; + unsigned long fs; + unsigned long gs; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long orig_ax; + unsigned long ip; + unsigned long cs; + unsigned long flags; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long sp; + unsigned long ss; }; struct user{ +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct user_regs_struct regs; int u_fpvalid; -/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct user_i387_struct i387; unsigned long int u_tsize; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ unsigned long int u_dsize; unsigned long int u_ssize; -/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ unsigned long start_code; unsigned long start_stack; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ long int signal; int reserved; + unsigned long u_ar0; + struct user_i387_struct *u_fpstate; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ - struct user_pt_regs * u_ar0; - struct user_i387_struct* u_fpstate; unsigned long magic; char u_comm[32]; -/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ int u_debugreg[8]; }; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define NBPG PAGE_SIZE #define UPAGES 1 -/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define HOST_TEXT_START_ADDR (u.start_code) #define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG) +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #endif diff --git a/libc/kernel/arch-x86/asm/user_64.h b/libc/kernel/arch-x86/asm/user_64.h new file mode 100644 index 0000000..7c5bf01 --- /dev/null +++ b/libc/kernel/arch-x86/asm/user_64.h @@ -0,0 +1,108 @@ +/**************************************************************************** + **************************************************************************** + *** + *** This header was automatically generated from a Linux kernel header + *** of the same name, to make information necessary for userspace to + *** call into the kernel available to libc. It contains only constants, + *** structures, and macros generated from the original header, and thus, + *** contains no copyrightable information. + *** + *** To edit the content of this header, modify the corresponding + *** source file (e.g. under external/kernel-headers/original/) then + *** run bionic/libc/kernel/tools/update_all.py + *** + *** Any manual change here will be lost the next time this script will + *** be run. You've been warned! + *** + **************************************************************************** + ****************************************************************************/ +#ifndef _ASM_X86_USER_64_H +#define _ASM_X86_USER_64_H +#include <asm/types.h> +#include <asm/page.h> +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +struct user_i387_struct { + unsigned short cwd; + unsigned short swd; + unsigned short twd; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned short fop; + __u64 rip; + __u64 rdp; + __u32 mxcsr; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + __u32 mxcsr_mask; + __u32 st_space[32]; + __u32 xmm_space[64]; + __u32 padding[24]; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +}; +struct user_regs_struct { + unsigned long r15; + unsigned long r14; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long r13; + unsigned long r12; + unsigned long bp; + unsigned long bx; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long r11; + unsigned long r10; + unsigned long r9; + unsigned long r8; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long ax; + unsigned long cx; + unsigned long dx; + unsigned long si; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long di; + unsigned long orig_ax; + unsigned long ip; + unsigned long cs; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long flags; + unsigned long sp; + unsigned long ss; + unsigned long fs_base; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long gs_base; + unsigned long ds; + unsigned long es; + unsigned long fs; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long gs; +}; +struct user { + struct user_regs_struct regs; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + int u_fpvalid; + int pad0; + struct user_i387_struct i387; + unsigned long int u_tsize; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long int u_dsize; + unsigned long int u_ssize; + unsigned long start_code; + unsigned long start_stack; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + long int signal; + int reserved; + int pad1; + unsigned long u_ar0; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + struct user_i387_struct *u_fpstate; + unsigned long magic; + char u_comm[32]; + unsigned long u_debugreg[8]; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long error_code; + unsigned long fault_address; +}; +#define NBPG PAGE_SIZE +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define UPAGES 1 +#define HOST_TEXT_START_ADDR (u.start_code) +#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG) +#endif +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ diff --git a/libc/kernel/arch-arm/asm/page.h b/libc/kernel/common/asm-generic/bitsperlong.h index 3c45724..6f50133 100644 --- a/libc/kernel/arch-arm/asm/page.h +++ b/libc/kernel/common/asm-generic/bitsperlong.h @@ -16,10 +16,10 @@ *** **************************************************************************** ****************************************************************************/ -#ifndef _ASMARM_PAGE_H -#define _ASMARM_PAGE_H -#define PAGE_SHIFT 12 -#define PAGE_SIZE (1UL << PAGE_SHIFT) +#ifndef __ASM_GENERIC_BITS_PER_LONG +#define __ASM_GENERIC_BITS_PER_LONG +#ifndef __BITS_PER_LONG +#define __BITS_PER_LONG 32 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ -#define PAGE_MASK (~(PAGE_SIZE-1)) +#endif #endif diff --git a/libc/kernel/common/asm-generic/posix_types.h b/libc/kernel/common/asm-generic/posix_types.h new file mode 100644 index 0000000..a64a7e2 --- /dev/null +++ b/libc/kernel/common/asm-generic/posix_types.h @@ -0,0 +1,104 @@ +/**************************************************************************** + **************************************************************************** + *** + *** This header was automatically generated from a Linux kernel header + *** of the same name, to make information necessary for userspace to + *** call into the kernel available to libc. It contains only constants, + *** structures, and macros generated from the original header, and thus, + *** contains no copyrightable information. + *** + *** To edit the content of this header, modify the corresponding + *** source file (e.g. under external/kernel-headers/original/) then + *** run bionic/libc/kernel/tools/update_all.py + *** + *** Any manual change here will be lost the next time this script will + *** be run. You've been warned! + *** + **************************************************************************** + ****************************************************************************/ +#ifndef __ASM_GENERIC_POSIX_TYPES_H +#define __ASM_GENERIC_POSIX_TYPES_H +#include <asm/bitsperlong.h> +#ifndef __kernel_long_t +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +typedef long __kernel_long_t; +typedef unsigned long __kernel_ulong_t; +#endif +#ifndef __kernel_ino_t +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +typedef __kernel_ulong_t __kernel_ino_t; +#endif +#ifndef __kernel_mode_t +typedef unsigned int __kernel_mode_t; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif +#ifndef __kernel_nlink_t +typedef __kernel_ulong_t __kernel_nlink_t; +#endif +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#ifndef __kernel_pid_t +typedef int __kernel_pid_t; +#endif +#ifndef __kernel_ipc_pid_t +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +typedef int __kernel_ipc_pid_t; +#endif +#ifndef __kernel_uid_t +typedef unsigned int __kernel_uid_t; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +typedef unsigned int __kernel_gid_t; +#endif +#ifndef __kernel_suseconds_t +typedef __kernel_long_t __kernel_suseconds_t; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif +#ifndef __kernel_daddr_t +typedef int __kernel_daddr_t; +#endif +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#ifndef __kernel_uid32_t +typedef unsigned int __kernel_uid32_t; +typedef unsigned int __kernel_gid32_t; +#endif +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#ifndef __kernel_old_uid_t +typedef __kernel_uid_t __kernel_old_uid_t; +typedef __kernel_gid_t __kernel_old_gid_t; +#endif +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#ifndef __kernel_old_dev_t +typedef unsigned int __kernel_old_dev_t; +#endif +#ifndef __kernel_size_t +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#if __BITS_PER_LONG != 64 +typedef unsigned int __kernel_size_t; +typedef int __kernel_ssize_t; +typedef int __kernel_ptrdiff_t; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#else +typedef __kernel_ulong_t __kernel_size_t; +typedef __kernel_long_t __kernel_ssize_t; +typedef __kernel_long_t __kernel_ptrdiff_t; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif +#endif +#ifndef __kernel_fsid_t +typedef struct { +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + int val[2]; +} __kernel_fsid_t; +#endif +typedef __kernel_long_t __kernel_off_t; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +typedef long long __kernel_loff_t; +typedef __kernel_long_t __kernel_time_t; +typedef __kernel_long_t __kernel_clock_t; +typedef int __kernel_timer_t; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +typedef int __kernel_clockid_t; +typedef char * __kernel_caddr_t; +typedef unsigned short __kernel_uid16_t; +typedef unsigned short __kernel_gid16_t; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif diff --git a/libc/kernel/arch-x86/asm/page_32.h b/libc/kernel/common/linux/const.h index 5e864ad..d348300 100644 --- a/libc/kernel/arch-x86/asm/page_32.h +++ b/libc/kernel/common/linux/const.h @@ -16,13 +16,16 @@ *** **************************************************************************** ****************************************************************************/ -#ifndef _I386_PAGE_H -#define _I386_PAGE_H -#define PAGE_SHIFT 12 -#define PAGE_SIZE (1UL << PAGE_SHIFT) +#ifndef _LINUX_CONST_H +#define _LINUX_CONST_H +#ifdef __ASSEMBLY__ +#define _AC(X,Y) X /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ -#define PAGE_MASK (~(PAGE_SIZE-1)) -#define LARGE_PAGE_MASK (~(LARGE_PAGE_SIZE-1)) -#define LARGE_PAGE_SIZE (1UL << PMD_SHIFT) -#endif +#define _AT(T,X) X +#else +#define __AC(X,Y) (X##Y) +#define _AC(X,Y) __AC(X,Y) /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define _AT(T,X) ((T)(X)) +#endif +#endif diff --git a/libc/kernel/common/linux/posix_types.h b/libc/kernel/common/linux/posix_types.h index d629e22..c197519 100644 --- a/libc/kernel/common/linux/posix_types.h +++ b/libc/kernel/common/linux/posix_types.h @@ -19,21 +19,11 @@ #ifndef _LINUX_POSIX_TYPES_H #define _LINUX_POSIX_TYPES_H #include <linux/stddef.h> -#undef __NFDBITS -/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ -#define __NFDBITS (8 * sizeof(unsigned long)) #undef __FD_SETSIZE -#define __FD_SETSIZE 1024 -#undef __FDSET_LONGS /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ -#define __FDSET_LONGS (__FD_SETSIZE/__NFDBITS) -#undef __FDELT -#define __FDELT(d) ((d) / __NFDBITS) -#undef __FDMASK -/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ -#define __FDMASK(d) (1UL << ((d) % __NFDBITS)) +#define __FD_SETSIZE 1024 typedef struct { - unsigned long fds_bits [__FDSET_LONGS]; + unsigned long fds_bits[__FD_SETSIZE / (8 * sizeof(long))]; } __kernel_fd_set; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ typedef void (*__kernel_sighandler_t)(int); diff --git a/libc/kernel/tools/cpp.py b/libc/kernel/tools/cpp.py index b8aa775..e3a9038 100644 --- a/libc/kernel/tools/cpp.py +++ b/libc/kernel/tools/cpp.py @@ -1345,7 +1345,11 @@ class CppExpr: if macros[name] == kCppUndefinedMacro: return ("int", 0) else: - return ("int", 1) + try: + value = int(macros[name]) + return ("int", value) + except: + return ("defined", macros[name]) if kernel_remove_config_macros and name.startswith("CONFIG_"): return ("int", 0) diff --git a/libc/kernel/tools/defaults.py b/libc/kernel/tools/defaults.py index da02481..77bfc47 100644 --- a/libc/kernel/tools/defaults.py +++ b/libc/kernel/tools/defaults.py @@ -7,7 +7,7 @@ from utils import * # the list of supported architectures # -kernel_archs = [ 'arm', 'x86', 'mips' ] +kernel_archs = [ 'arm', 'mips', 'x86' ] # the list of include directories that belong to the kernel # tree. used when looking for sources... @@ -33,6 +33,7 @@ kernel_known_macros = { "__KERNEL_STRICT_NAMES":"1", "__CHECKER__": kCppUndefinedMacro, "__CHECK_ENDIAN__": kCppUndefinedMacro, + "CONFIG_X86_32": "__i386__", } # define to true if you want to remove all defined(CONFIG_FOO) tests @@ -44,14 +45,14 @@ kernel_remove_config_macros = True # toolchain preprocessor kernel_default_arch_macros = { "arm": {}, - "x86": {"__i386__": "1", "CONFIG_X86_32": "1"}, "mips": {"CONFIG_32BIT":"1"}, + "x86": {}, } kernel_arch_token_replacements = { "arm": {}, - "x86": {}, "mips": {"off_t":"__kernel_off_t"}, + "x86": {}, } # Replace tokens in the output according to this mapping kernel_token_replacements = { @@ -63,13 +64,7 @@ kernel_token_replacements = { # in the final ARM headers. this is only used to keep optimized byteswapping # static functions and stuff like that. kernel_known_arm_statics = set( - [ "___arch__swab32", # asm-arm/byteorder.h - ] - ) - -kernel_known_x86_statics = set( - [ "___arch__swab32", # asm-x86/byteorder.h - "___arch__swab64", # asm-x86/byteorder.h + [ "___arch__swab32", # asm-arm/byteorder.h ] ) @@ -78,6 +73,12 @@ kernel_known_mips_statics = set( ] ) +kernel_known_x86_statics = set( + [ "___arch__swab32", # asm-x86/byteorder.h + "___arch__swab64", # asm-x86/byteorder.h + ] + ) + kernel_known_generic_statics = set( [ "__invalid_size_argument_for_IOC", # asm-generic/ioctl.h "__cmsg_nxthdr", # linux/socket.h @@ -92,8 +93,8 @@ kernel_known_generic_statics = set( # kernel_known_statics = { "arm" : kernel_known_arm_statics, + "mips" : kernel_known_mips_statics, "x86" : kernel_known_x86_statics, - "mips" : kernel_known_mips_statics } # this is a list of macros which we want to specifically exclude from |