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