Go to the documentation of this file. 1 #ifndef __ASM_SH_PROCESSOR_64_H
2 #define __ASM_SH_PROCESSOR_64_H
17 #include <linux/compiler.h>
19 #include <asm/types.h>
26 #define current_text_addr() ({ \
28 unsigned long long __dummy = 0; \
29 __asm__("gettr tr0, %1\n\t" \
33 :"=r" (pc), "=r" (__dummy) \
42 #define TASK_SIZE 0x7ffff000UL
44 #define STACK_TOP TASK_SIZE
45 #define STACK_TOP_MAX STACK_TOP
50 #define TASK_UNMAPPED_BASE (TASK_SIZE / 3)
66 #if defined(CONFIG_SH64_SR_WATCH)
67 #define SR_MMU 0x84000000
69 #define SR_MMU 0x80000000
72 #define SR_IMASK 0x000000f0
73 #define SR_FD 0x00008000
74 #define SR_SSTEP 0x08000000
132 { &init_mm, 0, 0, NULL, PAGE_SHARED, VM_READ | VM_WRITE | VM_EXEC, 1, NULL, NULL }
134 #define INIT_THREAD { \
135 .sp = sizeof(init_stack) + \
136 (long) &init_stack, \
138 .kregs = &fake_swapper_regs, \
147 #define SR_USER (SR_MMU | SR_FD)
149 #define start_thread(_regs, new_pc, new_sp) \
150 _regs->sr = SR_USER; \
151 _regs->pc = new_pc - 4; \
153 _regs->regs[18] = 0; \
154 _regs->regs[15] = new_sp
169 #define copy_segments(p, mm) do { } while (0)
170 #define release_segments(mm) do { } while (0)
171 #define forget_segments() do { } while (0)
178 unsigned long long __dummy;
183 "putcon %0, " __SR "\n\t"
190 unsigned long long __dummy;
195 "putcon %0, " __SR "\n\t"
203 #if defined(CONFIG_SH64_FPU_DENORM_FLUSH)
204 #define FPSCR_INIT 0x00040000
206 #define FPSCR_INIT 0x00000000
213 #define fpinit(fpregs) do { } while (0)
221 #define thread_saved_pc(tsk) (tsk->thread.pc)
225 #define KSTK_EIP(tsk) ((tsk)->thread.pc)
226 #define KSTK_ESP(tsk) ((tsk)->thread.sp)