1 /**************************************************************************** 2 **************************************************************************** 3 *** 4 *** This header was automatically generated from a Linux kernel header 5 *** of the same name, to make information necessary for userspace to 6 *** call into the kernel available to libc. It contains only constants, 7 *** structures, and macros generated from the original header, and thus, 8 *** contains no copyrightable information. 9 *** 10 *** To edit the content of this header, modify the corresponding 11 *** source file (e.g. under external/kernel-headers/original/) then 12 *** run bionic/libc/kernel/tools/update_all.py 13 *** 14 *** Any manual change here will be lost the next time this script will 15 *** be run. You've been warned! 16 *** 17 **************************************************************************** 18 ****************************************************************************/ 19 #ifndef _ASM_PROCESSOR_H 20 #define _ASM_PROCESSOR_H 21 #include <linux/cpumask.h> 22 #include <linux/threads.h> 23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 24 #include <asm/cachectl.h> 25 #include <asm/cpu.h> 26 #include <asm/cpu-info.h> 27 #include <asm/mipsregs.h> 28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 29 #include <asm/prefetch.h> 30 #include <asm/system.h> 31 #define current_text_addr() ({ __label__ _l; _l: &&_l;}) 32 #define NUM_FPU_REGS 32 33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 34 typedef __u64 fpureg_t; 35 struct mips_fpu_struct { 36 fpureg_t fpr[NUM_FPU_REGS]; 37 unsigned int fcr31; 38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 39 }; 40 #define NUM_DSP_REGS 6 41 typedef __u32 dspreg_t; 42 struct mips_dsp_state { 43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 44 dspreg_t dspr[NUM_DSP_REGS]; 45 unsigned int dspcontrol; 46 }; 47 #define INIT_CPUMASK { {0,} } 48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 49 typedef struct { 50 unsigned long seg; 51 } mm_segment_t; 52 #define ARCH_MIN_TASKALIGN 8 53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 54 struct mips_abi; 55 struct thread_struct { 56 unsigned long reg16; 57 unsigned long reg17, reg18, reg19, reg20, reg21, reg22, reg23; 58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 59 unsigned long reg29, reg30, reg31; 60 unsigned long cp0_status; 61 struct mips_fpu_struct fpu; 62 struct mips_dsp_state dsp; 63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 64 unsigned long cp0_badvaddr; 65 unsigned long cp0_baduaddr; 66 unsigned long error_code; 67 unsigned long trap_no; 68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 69 unsigned long irix_trampoline; 70 unsigned long irix_oldctx; 71 struct mips_abi *abi; 72 }; 73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 74 #define FPAFF_INIT 75 #define INIT_THREAD { .reg16 = 0, .reg17 = 0, .reg18 = 0, .reg19 = 0, .reg20 = 0, .reg21 = 0, .reg22 = 0, .reg23 = 0, .reg29 = 0, .reg30 = 0, .reg31 = 0, .cp0_status = 0, .fpu = { .fpr = {0,}, .fcr31 = 0, }, FPAFF_INIT .dsp = { .dspr = {0, }, .dspcontrol = 0, }, .cp0_badvaddr = 0, .cp0_baduaddr = 0, .error_code = 0, .trap_no = 0, .irix_trampoline = 0, .irix_oldctx = 0, } 76 struct task_struct; 77 #define release_thread(thread) do { } while(0) 78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 79 #define prepare_to_copy(tsk) do { } while (0) 80 #define __KSTK_TOS(tsk) ((unsigned long)task_stack_page(tsk) + THREAD_SIZE - 32) 81 #define task_pt_regs(tsk) ((struct pt_regs *)__KSTK_TOS(tsk) - 1) 82 #define KSTK_EIP(tsk) (task_pt_regs(tsk)->cp0_epc) 83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 84 #define KSTK_ESP(tsk) (task_pt_regs(tsk)->regs[29]) 85 #define KSTK_STATUS(tsk) (task_pt_regs(tsk)->cp0_status) 86 #define cpu_relax() barrier() 87 #define return_address() ({__asm__ __volatile__("":::"$31");__builtin_return_address(0);}) 88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 89 #endif 90