diff options
author | Andrew Hsieh <andrewhsieh@google.com> | 2014-10-21 16:32:42 -0700 |
---|---|---|
committer | Andrew Hsieh <andrewhsieh@google.com> | 2014-10-30 11:53:46 -0700 |
commit | b8a3ce7833113135d7ce573aa52433351bb6e14b (patch) | |
tree | 3645a107c5557215e74fa95418fc4b54e1f67b81 /9/platforms/android-21/arch-mips/usr/include/sys/user.h | |
parent | b8b71b64c959c6074ece0b5f7ba435cc09b86999 (diff) | |
download | prebuilts_ndk-b8a3ce7833113135d7ce573aa52433351bb6e14b.zip prebuilts_ndk-b8a3ce7833113135d7ce573aa52433351bb6e14b.tar.gz prebuilts_ndk-b8a3ce7833113135d7ce573aa52433351bb6e14b.tar.bz2 |
Add real android-21 32-bit headers/libs
Also corret __ANDROID_API__ in 64-bit android/api-level.h
Change-Id: Ia7f82f07d70eebb2daa62e03c227091b74d05fb6
Diffstat (limited to '9/platforms/android-21/arch-mips/usr/include/sys/user.h')
-rw-r--r-- | 9/platforms/android-21/arch-mips/usr/include/sys/user.h | 246 |
1 files changed, 246 insertions, 0 deletions
diff --git a/9/platforms/android-21/arch-mips/usr/include/sys/user.h b/9/platforms/android-21/arch-mips/usr/include/sys/user.h new file mode 100644 index 0000000..6e88d16 --- /dev/null +++ b/9/platforms/android-21/arch-mips/usr/include/sys/user.h @@ -0,0 +1,246 @@ +/* + * Copyright (C) 2013 The Android Open Source Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef _SYS_USER_H_ +#define _SYS_USER_H_ + +#include <sys/cdefs.h> +#include <limits.h> /* For PAGE_SIZE. */ + +__BEGIN_DECLS + +#if __i386__ + +struct user_fpregs_struct { + long cwd; + long swd; + long twd; + long fip; + long fcs; + long foo; + long fos; + long st_space[20]; +}; +struct user_fxsr_struct { + unsigned short cwd; + unsigned short swd; + unsigned short twd; + unsigned short fop; + long fip; + long fcs; + long foo; + long fos; + long mxcsr; + long reserved; + long st_space[32]; + long xmm_space[32]; + long padding[56]; +}; +struct user_regs_struct { + long ebx; + long ecx; + long edx; + long esi; + long edi; + long ebp; + long eax; + long xds; + long xes; + long xfs; + long xgs; + long orig_eax; + long eip; + long xcs; + long eflags; + long esp; + long xss; +}; +struct user { + struct user_regs_struct regs; + int u_fpvalid; + struct user_fpregs_struct i387; + unsigned long int u_tsize; + unsigned long int u_dsize; + unsigned long int u_ssize; + unsigned long start_code; + unsigned long start_stack; + long int signal; + int reserved; + unsigned long u_ar0; + struct user_fpregs_struct* u_fpstate; + unsigned long magic; + char u_comm[32]; + int u_debugreg[8]; +}; + +#elif defined(__x86_64__) + +struct user_fpregs_struct { + unsigned short cwd; + unsigned short swd; + unsigned short ftw; + unsigned short fop; + __u64 rip; + __u64 rdp; + __u32 mxcsr; + __u32 mxcsr_mask; + __u32 st_space[32]; + __u32 xmm_space[64]; + __u32 padding[24]; +}; +struct user_regs_struct { + unsigned long r15; + unsigned long r14; + unsigned long r13; + unsigned long r12; + unsigned long rbp; + unsigned long rbx; + unsigned long r11; + unsigned long r10; + unsigned long r9; + unsigned long r8; + unsigned long rax; + unsigned long rcx; + unsigned long rdx; + unsigned long rsi; + unsigned long rdi; + unsigned long orig_rax; + unsigned long rip; + unsigned long cs; + unsigned long eflags; + unsigned long rsp; + unsigned long ss; + unsigned long fs_base; + unsigned long gs_base; + unsigned long ds; + unsigned long es; + unsigned long fs; + unsigned long gs; +}; +struct user { + struct user_regs_struct regs; + int u_fpvalid; + int pad0; + struct user_fpregs_struct i387; + unsigned long int u_tsize; + unsigned long int u_dsize; + unsigned long int u_ssize; + unsigned long start_code; + unsigned long start_stack; + long int signal; + int reserved; + int pad1; + unsigned long u_ar0; + struct user_fpregs_struct* u_fpstate; + unsigned long magic; + char u_comm[32]; + unsigned long u_debugreg[8]; + unsigned long error_code; + unsigned long fault_address; +}; + +#elif defined(__mips__) +struct user_regs_struct +{ + unsigned long regs[180 / sizeof(unsigned long) + 64]; +}; + +struct user { + unsigned long regs[180 / sizeof(unsigned long) + 64]; + size_t u_tsize; + size_t u_dsize; + size_t u_ssize; + unsigned long start_code; + unsigned long start_data; + unsigned long start_stack; + long int signal; + unsigned long u_ar0; + unsigned long magic; + char u_comm[32]; +}; + +#elif defined(__arm__) + +struct user_fpregs { + struct fp_reg { + unsigned int sign1:1; + unsigned int unused:15; + unsigned int sign2:1; + unsigned int exponent:14; + unsigned int j:1; + unsigned int mantissa1:31; + unsigned int mantissa0:32; + } fpregs[8]; + unsigned int fpsr:32; + unsigned int fpcr:32; + unsigned char ftype[8]; + unsigned int init_flag; +}; +struct user_regs { + unsigned long uregs[18]; +}; +struct user_vfp { + unsigned long long fpregs[32]; + unsigned long fpscr; +}; +struct user_vfp_exc { + unsigned long fpexc; + unsigned long fpinst; + unsigned long fpinst2; +}; +struct user { + struct user_regs regs; + int u_fpvalid; + unsigned long int u_tsize; + unsigned long int u_dsize; + unsigned long int u_ssize; + unsigned long start_code; + unsigned long start_stack; + long int signal; + int reserved; + struct user_regs* u_ar0; + unsigned long magic; + char u_comm[32]; + int u_debugreg[8]; + struct user_fpregs u_fp; + struct user_fpregs* u_fp0; +}; + +#elif defined(__aarch64__) + +// There are no user structures for 64 bit arm. + +#else + +#error "Unsupported architecture." + +#endif + +__END_DECLS + +#endif /* _SYS_USER_H_ */ |