diff options
Diffstat (limited to 'arch/blackfin/include/asm/processor.h')
| -rw-r--r-- | arch/blackfin/include/asm/processor.h | 35 |
1 files changed, 3 insertions, 32 deletions
diff --git a/arch/blackfin/include/asm/processor.h b/arch/blackfin/include/asm/processor.h index 3040415523b2..d0be99be8308 100644 --- a/arch/blackfin/include/asm/processor.h +++ b/arch/blackfin/include/asm/processor.h | |||
| @@ -7,9 +7,8 @@ | |||
| 7 | */ | 7 | */ |
| 8 | #define current_text_addr() ({ __label__ _l; _l: &&_l;}) | 8 | #define current_text_addr() ({ __label__ _l; _l: &&_l;}) |
| 9 | 9 | ||
| 10 | #include <asm/ptrace.h> | ||
| 10 | #include <asm/blackfin.h> | 11 | #include <asm/blackfin.h> |
| 11 | #include <asm/segment.h> | ||
| 12 | #include <linux/compiler.h> | ||
| 13 | 12 | ||
| 14 | static inline unsigned long rdusp(void) | 13 | static inline unsigned long rdusp(void) |
| 15 | { | 14 | { |
| @@ -59,36 +58,8 @@ struct thread_struct { | |||
| 59 | PS_S, 0, 0 \ | 58 | PS_S, 0, 0 \ |
| 60 | } | 59 | } |
| 61 | 60 | ||
| 62 | /* | 61 | extern void start_thread(struct pt_regs *regs, unsigned long new_ip, |
| 63 | * Do necessary setup to start up a newly executed thread. | 62 | unsigned long new_sp); |
| 64 | * | ||
| 65 | * pass the data segment into user programs if it exists, | ||
| 66 | * it can't hurt anything as far as I can tell | ||
| 67 | */ | ||
| 68 | #ifndef CONFIG_SMP | ||
| 69 | #define start_thread(_regs, _pc, _usp) \ | ||
| 70 | do { \ | ||
| 71 | set_fs(USER_DS); \ | ||
| 72 | (_regs)->pc = (_pc); \ | ||
| 73 | if (current->mm) \ | ||
| 74 | (_regs)->p5 = current->mm->start_data; \ | ||
| 75 | task_thread_info(current)->l1_task_info.stack_start \ | ||
| 76 | = (void *)current->mm->context.stack_start; \ | ||
| 77 | task_thread_info(current)->l1_task_info.lowest_sp = (void *)(_usp); \ | ||
| 78 | memcpy(L1_SCRATCH_TASK_INFO, &task_thread_info(current)->l1_task_info, \ | ||
| 79 | sizeof(*L1_SCRATCH_TASK_INFO)); \ | ||
| 80 | wrusp(_usp); \ | ||
| 81 | } while(0) | ||
| 82 | #else | ||
| 83 | #define start_thread(_regs, _pc, _usp) \ | ||
| 84 | do { \ | ||
| 85 | set_fs(USER_DS); \ | ||
| 86 | (_regs)->pc = (_pc); \ | ||
| 87 | if (current->mm) \ | ||
| 88 | (_regs)->p5 = current->mm->start_data; \ | ||
| 89 | wrusp(_usp); \ | ||
| 90 | } while (0) | ||
| 91 | #endif | ||
| 92 | 63 | ||
| 93 | /* Forward declaration, a strange C thing */ | 64 | /* Forward declaration, a strange C thing */ |
| 94 | struct task_struct; | 65 | struct task_struct; |
