111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/**************************************************************************** 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** This header was automatically generated from a Linux kernel header 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** of the same name, to make information necessary for userspace to 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** call into the kernel available to libc. It contains only constants, 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** structures, and macros generated from the original header, and thus, 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** contains no copyrightable information. 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** To edit the content of this header, modify the corresponding 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** source file (e.g. under external/kernel-headers/original/) then 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** run bionic/libc/kernel/tools/update_all.py 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** Any manual change here will be lost the next time this script will 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** be run. You've been warned! 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/ 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _ASM_PROCESSOR_H 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _ASM_PROCESSOR_H 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/cpumask.h> 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/threads.h> 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <asm/cachectl.h> 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <asm/cpu.h> 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <asm/cpu-info.h> 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <asm/mipsregs.h> 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <asm/prefetch.h> 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <asm/system.h> 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define current_text_addr() ({ __label__ _l; _l: &&_l;}) 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TASK_SIZE 0x7fff8000UL 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define STACK_TOP TASK_SIZE 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TASK_UNMAPPED_BASE ((TASK_SIZE / 3) & ~(PAGE_SIZE)) 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NUM_FPU_REGS 32 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef __u64 fpureg_t; 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct mips_fpu_struct { 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert fpureg_t fpr[NUM_FPU_REGS]; 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int fcr31; 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NUM_DSP_REGS 6 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef __u32 dspreg_t; 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct mips_dsp_state { 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert dspreg_t dspr[NUM_DSP_REGS]; 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int dspcontrol; 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define INIT_CPUMASK { {0,} } 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct { 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long seg; 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} mm_segment_t; 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ARCH_MIN_TASKALIGN 8 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct mips_abi; 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct thread_struct { 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long reg16; 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long reg17, reg18, reg19, reg20, reg21, reg22, reg23; 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long reg29, reg30, reg31; 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long cp0_status; 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct mips_fpu_struct fpu; 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct mips_dsp_state dsp; 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long cp0_badvaddr; 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long cp0_baduaddr; 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long error_code; 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long trap_no; 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long irix_trampoline; 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long irix_oldctx; 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct mips_abi *abi; 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FPAFF_INIT 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#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, } 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct task_struct; 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define release_thread(thread) do { } while(0) 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define prepare_to_copy(tsk) do { } while (0) 8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __KSTK_TOS(tsk) ((unsigned long)task_stack_page(tsk) + THREAD_SIZE - 32) 8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define task_pt_regs(tsk) ((struct pt_regs *)__KSTK_TOS(tsk) - 1) 8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KSTK_EIP(tsk) (task_pt_regs(tsk)->cp0_epc) 8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KSTK_ESP(tsk) (task_pt_regs(tsk)->regs[29]) 8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KSTK_STATUS(tsk) (task_pt_regs(tsk)->cp0_status) 9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define cpu_relax() barrier() 9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define return_address() ({__asm__ __volatile__("":::"$31");__builtin_return_address(0);}) 9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 94