diff options
Diffstat (limited to 'arch/um/include/asm/processor-generic.h')
| -rw-r--r-- | arch/um/include/asm/processor-generic.h | 72 |
1 files changed, 21 insertions, 51 deletions
diff --git a/arch/um/include/asm/processor-generic.h b/arch/um/include/asm/processor-generic.h index c03cd5a02364..7854d51b6639 100644 --- a/arch/um/include/asm/processor-generic.h +++ b/arch/um/include/asm/processor-generic.h @@ -1,6 +1,6 @@ +/* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) - * Licensed under the GPL */ #ifndef __UM_PROCESSOR_GENERIC_H @@ -11,65 +11,40 @@ struct pt_regs; struct task_struct; #include <asm/ptrace.h> -#include <registers.h> #include <sysdep/archsetjmp.h> #include <linux/prefetch.h> +#include <asm/cpufeatures.h> + struct mm_struct; struct thread_struct { - struct task_struct *saved_task; - struct pt_regs regs; - int singlestep_syscall; - void *fault_addr; - jmp_buf *fault_catcher; + struct pt_regs *segv_regs; struct task_struct *prev_sched; - unsigned long temp_stack; struct arch_thread arch; jmp_buf switch_buf; - int mm_count; struct { - int op; - union { - struct { - int pid; - } fork, exec; - struct { - int (*proc)(void *); - void *arg; - } thread; - struct { - void (*proc)(void *); - void *arg; - } cb; - } u; + struct { + int (*proc)(void *); + void *arg; + } thread; } request; + + void *segv_continue; + + /* Contains variable sized FP registers */ + struct pt_regs regs; }; #define INIT_THREAD \ { \ .regs = EMPTY_REGS, \ - .fault_addr = NULL, \ .prev_sched = NULL, \ - .temp_stack = 0, \ .arch = INIT_ARCH_THREAD, \ - .request = { 0 } \ -} - -static inline void release_thread(struct task_struct *task) -{ + .request = { } \ } -extern unsigned long thread_saved_pc(struct task_struct *t); - -static inline void mm_copy_segments(struct mm_struct *from_mm, - struct mm_struct *new_mm) -{ -} - -#define init_stack (init_thread_union.stack) - /* * User space process size: 3GB (default). */ @@ -96,23 +71,18 @@ extern void start_thread(struct pt_regs *regs, unsigned long entry, struct cpuinfo_um { unsigned long loops_per_jiffy; - int ipi_pipe[2]; + int cache_alignment; + union { + __u32 x86_capability[NCAPINTS + NBUGINTS]; + unsigned long x86_capability_alignment; + }; }; extern struct cpuinfo_um boot_cpu_data; -#define my_cpu_data cpu_data[smp_processor_id()] - -#ifdef CONFIG_SMP -extern struct cpuinfo_um cpu_data[]; -#define current_cpu_data cpu_data[smp_processor_id()] -#else -#define cpu_data (&boot_cpu_data) -#define current_cpu_data boot_cpu_data -#endif - +#define cache_line_size() (boot_cpu_data.cache_alignment) #define KSTK_REG(tsk, reg) get_thread_reg(reg, &tsk->thread.switch_buf) -extern unsigned long get_wchan(struct task_struct *p); +extern unsigned long __get_wchan(struct task_struct *p); #endif |
