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 TASK_SIZE 0x7fff8000UL 33/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 34#define STACK_TOP TASK_SIZE 35#define TASK_UNMAPPED_BASE ((TASK_SIZE / 3) & ~(PAGE_SIZE)) 36#define NUM_FPU_REGS 32 37typedef __u64 fpureg_t; 38/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 39struct mips_fpu_struct { 40 fpureg_t fpr[NUM_FPU_REGS]; 41 unsigned int fcr31; 42}; 43/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 44#define NUM_DSP_REGS 6 45typedef __u32 dspreg_t; 46struct mips_dsp_state { 47 dspreg_t dspr[NUM_DSP_REGS]; 48/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 49 unsigned int dspcontrol; 50}; 51#define INIT_CPUMASK { {0,} } 52typedef struct { 53/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 54 unsigned long seg; 55} mm_segment_t; 56#define ARCH_MIN_TASKALIGN 8 57struct mips_abi; 58/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 59struct thread_struct { 60 unsigned long reg16; 61 unsigned long reg17, reg18, reg19, reg20, reg21, reg22, reg23; 62 unsigned long reg29, reg30, reg31; 63/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 64 unsigned long cp0_status; 65 struct mips_fpu_struct fpu; 66 struct mips_dsp_state dsp; 67 unsigned long cp0_badvaddr; 68/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 69 unsigned long cp0_baduaddr; 70 unsigned long error_code; 71 unsigned long trap_no; 72 unsigned long irix_trampoline; 73/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 74 unsigned long irix_oldctx; 75 struct mips_abi *abi; 76}; 77#define FPAFF_INIT 78/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 79#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, } 80struct task_struct; 81#define release_thread(thread) do { } while(0) 82#define prepare_to_copy(tsk) do { } while (0) 83/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 84#define __KSTK_TOS(tsk) ((unsigned long)task_stack_page(tsk) + THREAD_SIZE - 32) 85#define task_pt_regs(tsk) ((struct pt_regs *)__KSTK_TOS(tsk) - 1) 86#define KSTK_EIP(tsk) (task_pt_regs(tsk)->cp0_epc) 87#define KSTK_ESP(tsk) (task_pt_regs(tsk)->regs[29]) 88/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 89#define KSTK_STATUS(tsk) (task_pt_regs(tsk)->cp0_status) 90#define cpu_relax() barrier() 91#define return_address() ({__asm__ __volatile__("":::"$31");__builtin_return_address(0);}) 92#endif 93/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 94