Go to the documentation of this file. 1 #ifndef __ASM_SH_MMU_CONTEXT_64_H
2 #define __ASM_SH_MMU_CONTEXT_64_H
15 #include <asm/cacheflush.h>
17 #define SR_ASID_MASK 0xffffffffff00ffffULL
18 #define SR_ASID_SHIFT 16
30 static inline unsigned long get_asid(
void)
32 unsigned long long sr;
34 asm volatile (
"getcon " __SR ", %0\n\t"
38 return (
unsigned long)
sr;
42 static inline void set_asid(
unsigned long asid)
44 unsigned long long sr,
pc;
46 asm volatile (
"getcon " __SR ", %0" :
"=r" (
sr));
56 asm volatile (
"movi 1, %1\n\t"
57 "shlli %1, 28, %1\n\t"
59 "putcon %1, " __SR "\n\t"
60 "putcon %0, " __SSR "\n\t"
63 "putcon %1, " __SPC "\n\t"
66 :
"=r" (
sr),
"=r" (pc) :
"0" (
sr));
75 #define set_TTB(pgd) (mmu_pdtp_cache = (pgd))
76 #define get_TTB() (mmu_pdtp_cache)