diff options
Diffstat (limited to 'arch/um/include')
-rw-r--r-- | arch/um/include/common-offsets.h | 11 | ||||
-rw-r--r-- | arch/um/include/kern_util.h | 1 | ||||
-rw-r--r-- | arch/um/include/longjmp.h | 3 | ||||
-rw-r--r-- | arch/um/include/mconsole.h | 1 | ||||
-rw-r--r-- | arch/um/include/mconsole_kern.h | 1 | ||||
-rw-r--r-- | arch/um/include/os.h | 1 | ||||
-rw-r--r-- | arch/um/include/sysdep-i386/barrier.h | 9 | ||||
-rw-r--r-- | arch/um/include/sysdep-i386/kernel-offsets.h | 5 | ||||
-rw-r--r-- | arch/um/include/sysdep-x86_64/barrier.h | 7 | ||||
-rw-r--r-- | arch/um/include/sysdep-x86_64/kernel-offsets.h | 5 | ||||
-rw-r--r-- | arch/um/include/um_malloc.h | 17 | ||||
-rw-r--r-- | arch/um/include/user.h | 6 | ||||
-rw-r--r-- | arch/um/include/user_util.h | 1 |
13 files changed, 51 insertions, 17 deletions
diff --git a/arch/um/include/common-offsets.h b/arch/um/include/common-offsets.h index 356390d1f8b9..461175f8b1d9 100644 --- a/arch/um/include/common-offsets.h +++ b/arch/um/include/common-offsets.h | |||
@@ -1,9 +1,16 @@ | |||
1 | /* for use by sys-$SUBARCH/kernel-offsets.c */ | 1 | /* for use by sys-$SUBARCH/kernel-offsets.c */ |
2 | 2 | ||
3 | DEFINE(KERNEL_MADV_REMOVE, MADV_REMOVE); | ||
4 | #ifdef CONFIG_MODE_TT | ||
5 | OFFSET(HOST_TASK_EXTERN_PID, task_struct, thread.mode.tt.extern_pid); | ||
6 | #endif | ||
7 | |||
3 | OFFSET(HOST_TASK_REGS, task_struct, thread.regs); | 8 | OFFSET(HOST_TASK_REGS, task_struct, thread.regs); |
4 | OFFSET(HOST_TASK_PID, task_struct, pid); | 9 | OFFSET(HOST_TASK_PID, task_struct, pid); |
10 | |||
5 | DEFINE(UM_KERN_PAGE_SIZE, PAGE_SIZE); | 11 | DEFINE(UM_KERN_PAGE_SIZE, PAGE_SIZE); |
6 | DEFINE(UM_NSEC_PER_SEC, NSEC_PER_SEC); | 12 | DEFINE(UM_NSEC_PER_SEC, NSEC_PER_SEC); |
13 | |||
7 | DEFINE_STR(UM_KERN_EMERG, KERN_EMERG); | 14 | DEFINE_STR(UM_KERN_EMERG, KERN_EMERG); |
8 | DEFINE_STR(UM_KERN_ALERT, KERN_ALERT); | 15 | DEFINE_STR(UM_KERN_ALERT, KERN_ALERT); |
9 | DEFINE_STR(UM_KERN_CRIT, KERN_CRIT); | 16 | DEFINE_STR(UM_KERN_CRIT, KERN_CRIT); |
@@ -12,6 +19,10 @@ DEFINE_STR(UM_KERN_WARNING, KERN_WARNING); | |||
12 | DEFINE_STR(UM_KERN_NOTICE, KERN_NOTICE); | 19 | DEFINE_STR(UM_KERN_NOTICE, KERN_NOTICE); |
13 | DEFINE_STR(UM_KERN_INFO, KERN_INFO); | 20 | DEFINE_STR(UM_KERN_INFO, KERN_INFO); |
14 | DEFINE_STR(UM_KERN_DEBUG, KERN_DEBUG); | 21 | DEFINE_STR(UM_KERN_DEBUG, KERN_DEBUG); |
22 | |||
15 | DEFINE(UM_ELF_CLASS, ELF_CLASS); | 23 | DEFINE(UM_ELF_CLASS, ELF_CLASS); |
16 | DEFINE(UM_ELFCLASS32, ELFCLASS32); | 24 | DEFINE(UM_ELFCLASS32, ELFCLASS32); |
17 | DEFINE(UM_ELFCLASS64, ELFCLASS64); | 25 | DEFINE(UM_ELFCLASS64, ELFCLASS64); |
26 | |||
27 | /* For crypto assembler code. */ | ||
28 | DEFINE(crypto_tfm_ctx_offset, offsetof(struct crypto_tfm, __crt_ctx)); | ||
diff --git a/arch/um/include/kern_util.h b/arch/um/include/kern_util.h index 59cfa9e0cad0..cec9fcc57bf5 100644 --- a/arch/um/include/kern_util.h +++ b/arch/um/include/kern_util.h | |||
@@ -6,7 +6,6 @@ | |||
6 | #ifndef __KERN_UTIL_H__ | 6 | #ifndef __KERN_UTIL_H__ |
7 | #define __KERN_UTIL_H__ | 7 | #define __KERN_UTIL_H__ |
8 | 8 | ||
9 | #include "linux/threads.h" | ||
10 | #include "sysdep/ptrace.h" | 9 | #include "sysdep/ptrace.h" |
11 | #include "sysdep/faultinfo.h" | 10 | #include "sysdep/faultinfo.h" |
12 | 11 | ||
diff --git a/arch/um/include/longjmp.h b/arch/um/include/longjmp.h index e93c6d3e893b..e860bc5848e0 100644 --- a/arch/um/include/longjmp.h +++ b/arch/um/include/longjmp.h | |||
@@ -12,7 +12,8 @@ extern void longjmp(jmp_buf, int); | |||
12 | } while(0) | 12 | } while(0) |
13 | 13 | ||
14 | #define UML_SETJMP(buf) ({ \ | 14 | #define UML_SETJMP(buf) ({ \ |
15 | int n, enable; \ | 15 | int n; \ |
16 | volatile int enable; \ | ||
16 | enable = get_signals(); \ | 17 | enable = get_signals(); \ |
17 | n = setjmp(*buf); \ | 18 | n = setjmp(*buf); \ |
18 | if(n != 0) \ | 19 | if(n != 0) \ |
diff --git a/arch/um/include/mconsole.h b/arch/um/include/mconsole.h index 58f67d391105..2666815b6af5 100644 --- a/arch/um/include/mconsole.h +++ b/arch/um/include/mconsole.h | |||
@@ -61,6 +61,7 @@ struct mc_request | |||
61 | 61 | ||
62 | struct mconsole_request request; | 62 | struct mconsole_request request; |
63 | struct mconsole_command *cmd; | 63 | struct mconsole_command *cmd; |
64 | union uml_pt_regs regs; | ||
64 | }; | 65 | }; |
65 | 66 | ||
66 | extern char mconsole_socket_name[]; | 67 | extern char mconsole_socket_name[]; |
diff --git a/arch/um/include/mconsole_kern.h b/arch/um/include/mconsole_kern.h index d0b690197fd7..1ea6d928e1cd 100644 --- a/arch/um/include/mconsole_kern.h +++ b/arch/um/include/mconsole_kern.h | |||
@@ -14,6 +14,7 @@ struct mconsole_entry { | |||
14 | struct mc_request request; | 14 | struct mc_request request; |
15 | }; | 15 | }; |
16 | 16 | ||
17 | /* All these methods are called in process context. */ | ||
17 | struct mc_device { | 18 | struct mc_device { |
18 | struct list_head list; | 19 | struct list_head list; |
19 | char *name; | 20 | char *name; |
diff --git a/arch/um/include/os.h b/arch/um/include/os.h index 120ca21a513a..6516f6dca96d 100644 --- a/arch/um/include/os.h +++ b/arch/um/include/os.h | |||
@@ -201,6 +201,7 @@ extern int os_getpgrp(void); | |||
201 | 201 | ||
202 | #ifdef UML_CONFIG_MODE_TT | 202 | #ifdef UML_CONFIG_MODE_TT |
203 | extern void init_new_thread_stack(void *sig_stack, void (*usr1_handler)(int)); | 203 | extern void init_new_thread_stack(void *sig_stack, void (*usr1_handler)(int)); |
204 | extern void stop(void); | ||
204 | #endif | 205 | #endif |
205 | extern void init_new_thread_signals(void); | 206 | extern void init_new_thread_signals(void); |
206 | extern int run_kernel_thread(int (*fn)(void *), void *arg, void **jmp_ptr); | 207 | extern int run_kernel_thread(int (*fn)(void *), void *arg, void **jmp_ptr); |
diff --git a/arch/um/include/sysdep-i386/barrier.h b/arch/um/include/sysdep-i386/barrier.h new file mode 100644 index 000000000000..b58d52c5b2f4 --- /dev/null +++ b/arch/um/include/sysdep-i386/barrier.h | |||
@@ -0,0 +1,9 @@ | |||
1 | #ifndef __SYSDEP_I386_BARRIER_H | ||
2 | #define __SYSDEP_I386_BARRIER_H | ||
3 | |||
4 | /* Copied from include/asm-i386 for use by userspace. i386 has the option | ||
5 | * of using mfence, but I'm just using this, which works everywhere, for now. | ||
6 | */ | ||
7 | #define mb() asm volatile("lock; addl $0,0(%esp)") | ||
8 | |||
9 | #endif | ||
diff --git a/arch/um/include/sysdep-i386/kernel-offsets.h b/arch/um/include/sysdep-i386/kernel-offsets.h index 2c13de321f2f..97ec9d894d75 100644 --- a/arch/um/include/sysdep-i386/kernel-offsets.h +++ b/arch/um/include/sysdep-i386/kernel-offsets.h | |||
@@ -1,6 +1,7 @@ | |||
1 | #include <linux/stddef.h> | 1 | #include <linux/stddef.h> |
2 | #include <linux/sched.h> | 2 | #include <linux/sched.h> |
3 | #include <linux/elf.h> | 3 | #include <linux/elf.h> |
4 | #include <linux/crypto.h> | ||
4 | #include <asm/mman.h> | 5 | #include <asm/mman.h> |
5 | 6 | ||
6 | #define DEFINE(sym, val) \ | 7 | #define DEFINE(sym, val) \ |
@@ -17,9 +18,5 @@ | |||
17 | void foo(void) | 18 | void foo(void) |
18 | { | 19 | { |
19 | OFFSET(HOST_TASK_DEBUGREGS, task_struct, thread.arch.debugregs); | 20 | OFFSET(HOST_TASK_DEBUGREGS, task_struct, thread.arch.debugregs); |
20 | DEFINE(KERNEL_MADV_REMOVE, MADV_REMOVE); | ||
21 | #ifdef CONFIG_MODE_TT | ||
22 | OFFSET(HOST_TASK_EXTERN_PID, task_struct, thread.mode.tt.extern_pid); | ||
23 | #endif | ||
24 | #include <common-offsets.h> | 21 | #include <common-offsets.h> |
25 | } | 22 | } |
diff --git a/arch/um/include/sysdep-x86_64/barrier.h b/arch/um/include/sysdep-x86_64/barrier.h new file mode 100644 index 000000000000..7b610befdc8f --- /dev/null +++ b/arch/um/include/sysdep-x86_64/barrier.h | |||
@@ -0,0 +1,7 @@ | |||
1 | #ifndef __SYSDEP_X86_64_BARRIER_H | ||
2 | #define __SYSDEP_X86_64_BARRIER_H | ||
3 | |||
4 | /* Copied from include/asm-x86_64 for use by userspace. */ | ||
5 | #define mb() asm volatile("mfence":::"memory") | ||
6 | |||
7 | #endif | ||
diff --git a/arch/um/include/sysdep-x86_64/kernel-offsets.h b/arch/um/include/sysdep-x86_64/kernel-offsets.h index 91d129fb3930..a307237b7964 100644 --- a/arch/um/include/sysdep-x86_64/kernel-offsets.h +++ b/arch/um/include/sysdep-x86_64/kernel-offsets.h | |||
@@ -2,6 +2,7 @@ | |||
2 | #include <linux/sched.h> | 2 | #include <linux/sched.h> |
3 | #include <linux/time.h> | 3 | #include <linux/time.h> |
4 | #include <linux/elf.h> | 4 | #include <linux/elf.h> |
5 | #include <linux/crypto.h> | ||
5 | #include <asm/page.h> | 6 | #include <asm/page.h> |
6 | #include <asm/mman.h> | 7 | #include <asm/mman.h> |
7 | 8 | ||
@@ -18,9 +19,5 @@ | |||
18 | 19 | ||
19 | void foo(void) | 20 | void foo(void) |
20 | { | 21 | { |
21 | DEFINE(KERNEL_MADV_REMOVE, MADV_REMOVE); | ||
22 | #ifdef CONFIG_MODE_TT | ||
23 | OFFSET(HOST_TASK_EXTERN_PID, task_struct, thread.mode.tt.extern_pid); | ||
24 | #endif | ||
25 | #include <common-offsets.h> | 22 | #include <common-offsets.h> |
26 | } | 23 | } |
diff --git a/arch/um/include/um_malloc.h b/arch/um/include/um_malloc.h new file mode 100644 index 000000000000..0363a9b53f8d --- /dev/null +++ b/arch/um/include/um_malloc.h | |||
@@ -0,0 +1,17 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2005 Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> | ||
3 | * Licensed under the GPL | ||
4 | */ | ||
5 | |||
6 | #ifndef __UM_MALLOC_H__ | ||
7 | #define __UM_MALLOC_H__ | ||
8 | |||
9 | extern void *um_kmalloc(int size); | ||
10 | extern void *um_kmalloc_atomic(int size); | ||
11 | extern void kfree(const void *ptr); | ||
12 | |||
13 | extern void *um_vmalloc(int size); | ||
14 | extern void *um_vmalloc_atomic(int size); | ||
15 | extern void vfree(void *ptr); | ||
16 | |||
17 | #endif /* __UM_MALLOC_H__ */ | ||
diff --git a/arch/um/include/user.h b/arch/um/include/user.h index 39f8c8801076..acadce3f271f 100644 --- a/arch/um/include/user.h +++ b/arch/um/include/user.h | |||
@@ -11,17 +11,11 @@ extern void panic(const char *fmt, ...) | |||
11 | extern int printk(const char *fmt, ...) | 11 | extern int printk(const char *fmt, ...) |
12 | __attribute__ ((format (printf, 1, 2))); | 12 | __attribute__ ((format (printf, 1, 2))); |
13 | extern void schedule(void); | 13 | extern void schedule(void); |
14 | extern void *um_kmalloc(int size); | ||
15 | extern void *um_kmalloc_atomic(int size); | ||
16 | extern void kfree(void *ptr); | ||
17 | extern int in_aton(char *str); | 14 | extern int in_aton(char *str); |
18 | extern int open_gdb_chan(void); | 15 | extern int open_gdb_chan(void); |
19 | /* These use size_t, however unsigned long is correct on both i386 and x86_64. */ | 16 | /* These use size_t, however unsigned long is correct on both i386 and x86_64. */ |
20 | extern unsigned long strlcpy(char *, const char *, unsigned long); | 17 | extern unsigned long strlcpy(char *, const char *, unsigned long); |
21 | extern unsigned long strlcat(char *, const char *, unsigned long); | 18 | extern unsigned long strlcat(char *, const char *, unsigned long); |
22 | extern void *um_vmalloc(int size); | ||
23 | extern void *um_vmalloc_atomic(int size); | ||
24 | extern void vfree(void *ptr); | ||
25 | 19 | ||
26 | #endif | 20 | #endif |
27 | 21 | ||
diff --git a/arch/um/include/user_util.h b/arch/um/include/user_util.h index 802d7842514d..06625fefef33 100644 --- a/arch/um/include/user_util.h +++ b/arch/um/include/user_util.h | |||
@@ -52,7 +52,6 @@ extern int linux_main(int argc, char **argv); | |||
52 | extern void set_cmdline(char *cmd); | 52 | extern void set_cmdline(char *cmd); |
53 | extern void input_cb(void (*proc)(void *), void *arg, int arg_len); | 53 | extern void input_cb(void (*proc)(void *), void *arg, int arg_len); |
54 | extern int get_pty(void); | 54 | extern int get_pty(void); |
55 | extern void *um_kmalloc(int size); | ||
56 | extern int switcheroo(int fd, int prot, void *from, void *to, int size); | 55 | extern int switcheroo(int fd, int prot, void *from, void *to, int size); |
57 | extern void do_exec(int old_pid, int new_pid); | 56 | extern void do_exec(int old_pid, int new_pid); |
58 | extern void tracer_panic(char *msg, ...) | 57 | extern void tracer_panic(char *msg, ...) |