| 1 |
|
| 2 | #ifndef _ASM_POWERPC_CURRENT_H
|
| 3 | #define _ASM_POWERPC_CURRENT_H
|
| 4 | #ifdef __KERNEL__
|
| 5 |
|
| 6 | |
| 7 |
|
| 8 |
|
| 9 | struct task_struct;
|
| 10 |
|
| 11 | #ifdef __powerpc64__
|
| 12 | #include <linux/stddef.h>
|
| 13 | #include <asm/paca.h>
|
| 14 |
|
| 15 | static inline struct task_struct *get_current(void)
|
| 16 | {
|
| 17 | struct task_struct *task;
|
| 18 |
|
| 19 |
|
| 20 | asm ("ld %0,%1(13)"
|
| 21 | : "=r" (task)
|
| 22 | : "i" (offsetof(struct paca_struct, __current)));
|
| 23 |
|
| 24 | return task;
|
| 25 | }
|
| 26 | #define current get_current()
|
| 27 |
|
| 28 | #else
|
| 29 |
|
| 30 | |
| 31 | * We keep `current' in r2 for speed.
|
| 32 |
|
| 33 | register struct task_struct *current asm ("r2");
|
| 34 |
|
| 35 | #endif
|
| 36 |
|
| 37 | #endif
|
| 38 | #endif
|