github.com/afumu/libc@v0.0.6/musl/src/thread/sh/__unmapself.c (about) 1 #include "pthread_impl.h" 2 3 hidden void __unmapself_sh_mmu(void *, size_t); 4 hidden void __unmapself_sh_nommu(void *, size_t); 5 6 #if !defined(__SH3__) && !defined(__SH4__) 7 #define __unmapself __unmapself_sh_nommu 8 #include "dynlink.h" 9 #undef CRTJMP 10 #define CRTJMP(pc,sp) __asm__ __volatile__( \ 11 "mov.l @%0+,r0 ; mov.l @%0,r12 ; jmp @r0 ; mov %1,r15" \ 12 : : "r"(pc), "r"(sp) : "r0", "memory" ) 13 #include "../__unmapself.c" 14 #undef __unmapself 15 extern hidden unsigned __sh_nommu; 16 #else 17 #define __sh_nommu 0 18 #endif 19 20 void __unmapself(void *base, size_t size) 21 { 22 if (__sh_nommu) __unmapself_sh_nommu(base, size); 23 else __unmapself_sh_mmu(base, size); 24 }