Commit | Line | Data |
---|---|---|
fbcd54b1 JL |
1 | #ifndef _ASM_POWERPC_SECTIONS_H |
2 | #define _ASM_POWERPC_SECTIONS_H | |
88ced031 | 3 | #ifdef __KERNEL__ |
1da177e4 | 4 | |
2d291e90 JB |
5 | #include <linux/elf.h> |
6 | #include <linux/uaccess.h> | |
1da177e4 LT |
7 | #include <asm-generic/sections.h> |
8 | ||
fbcd54b1 | 9 | #ifdef __powerpc64__ |
1da177e4 | 10 | |
fbcd54b1 | 11 | extern char _end[]; |
1da177e4 LT |
12 | |
13 | static inline int in_kernel_text(unsigned long addr) | |
14 | { | |
15 | if (addr >= (unsigned long)_stext && addr < (unsigned long)__init_end) | |
16 | return 1; | |
17 | ||
18 | return 0; | |
19 | } | |
20 | ||
549e8152 PM |
21 | static inline int overlaps_kernel_text(unsigned long start, unsigned long end) |
22 | { | |
23 | return start < (unsigned long)__init_end && | |
24 | (unsigned long)_stext < end; | |
25 | } | |
26 | ||
deac93df | 27 | #undef dereference_function_descriptor |
2d291e90 JB |
28 | static inline void *dereference_function_descriptor(void *ptr) |
29 | { | |
30 | struct ppc64_opd_entry *desc = ptr; | |
31 | void *p; | |
32 | ||
33 | if (!probe_kernel_address(&desc->funcaddr, p)) | |
34 | ptr = p; | |
35 | return ptr; | |
36 | } | |
deac93df | 37 | |
1da177e4 | 38 | #endif |
fbcd54b1 | 39 | |
88ced031 | 40 | #endif /* __KERNEL__ */ |
fbcd54b1 | 41 | #endif /* _ASM_POWERPC_SECTIONS_H */ |