0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #ifndef __ASM_ARC_PROCESSOR_H
0012 #define __ASM_ARC_PROCESSOR_H
0013
0014 #ifndef __ASSEMBLY__
0015
0016 #include <asm/ptrace.h>
0017 #include <asm/dsp.h>
0018 #include <asm/fpu.h>
0019
0020
0021
0022
0023
0024 struct thread_struct {
0025 unsigned long ksp;
0026 unsigned long callee_reg;
0027 unsigned long fault_address;
0028 #ifdef CONFIG_ARC_DSP_SAVE_RESTORE_REGS
0029 struct dsp_callee_regs dsp;
0030 #endif
0031 #ifdef CONFIG_ARC_FPU_SAVE_RESTORE
0032 struct arc_fpu fpu;
0033 #endif
0034 };
0035
0036 #define INIT_THREAD { \
0037 .ksp = sizeof(init_stack) + (unsigned long) init_stack, \
0038 }
0039
0040
0041 struct task_struct;
0042
0043 #define task_pt_regs(p) \
0044 ((struct pt_regs *)(THREAD_SIZE + (void *)task_stack_page(p)) - 1)
0045
0046
0047 #define release_thread(thread) do { } while (0)
0048
0049
0050
0051
0052
0053 #define cpu_relax() barrier()
0054
0055 #define KSTK_EIP(tsk) (task_pt_regs(tsk)->ret)
0056 #define KSTK_ESP(tsk) (task_pt_regs(tsk)->sp)
0057
0058
0059
0060
0061
0062 #define TSK_K_ESP(tsk) (tsk->thread.ksp)
0063
0064 #define TSK_K_REG(tsk, off) (*((unsigned long *)(TSK_K_ESP(tsk) + \
0065 sizeof(struct callee_regs) + off)))
0066
0067 #define TSK_K_BLINK(tsk) TSK_K_REG(tsk, 4)
0068 #define TSK_K_FP(tsk) TSK_K_REG(tsk, 0)
0069
0070 extern void start_thread(struct pt_regs * regs, unsigned long pc,
0071 unsigned long usp);
0072
0073 extern unsigned int __get_wchan(struct task_struct *p);
0074
0075 #endif
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091 #define TASK_SIZE 0x60000000
0092
0093 #define VMALLOC_START (PAGE_OFFSET - (CONFIG_ARC_KVADDR_SIZE << 20))
0094
0095
0096 #define VMALLOC_SIZE ((CONFIG_ARC_KVADDR_SIZE << 20) - PMD_SIZE * 4)
0097
0098 #define VMALLOC_END (VMALLOC_START + VMALLOC_SIZE)
0099
0100 #define USER_KERNEL_GUTTER (VMALLOC_START - TASK_SIZE)
0101
0102 #define STACK_TOP TASK_SIZE
0103 #define STACK_TOP_MAX STACK_TOP
0104
0105
0106
0107
0108 #define TASK_UNMAPPED_BASE (TASK_SIZE / 3)
0109
0110 #endif