diff options
Diffstat (limited to 'arch/um/include/asm/syscall-generic.h')
| -rw-r--r-- | arch/um/include/asm/syscall-generic.h | 78 |
1 files changed, 12 insertions, 66 deletions
diff --git a/arch/um/include/asm/syscall-generic.h b/arch/um/include/asm/syscall-generic.h index 9fb9cf8cd39a..98e50c50c12e 100644 --- a/arch/um/include/asm/syscall-generic.h +++ b/arch/um/include/asm/syscall-generic.h | |||
| @@ -53,84 +53,30 @@ static inline void syscall_set_return_value(struct task_struct *task, | |||
| 53 | 53 | ||
| 54 | static inline void syscall_get_arguments(struct task_struct *task, | 54 | static inline void syscall_get_arguments(struct task_struct *task, |
| 55 | struct pt_regs *regs, | 55 | struct pt_regs *regs, |
| 56 | unsigned int i, unsigned int n, | ||
| 57 | unsigned long *args) | 56 | unsigned long *args) |
| 58 | { | 57 | { |
| 59 | const struct uml_pt_regs *r = ®s->regs; | 58 | const struct uml_pt_regs *r = ®s->regs; |
| 60 | 59 | ||
| 61 | switch (i) { | 60 | *args++ = UPT_SYSCALL_ARG1(r); |
| 62 | case 0: | 61 | *args++ = UPT_SYSCALL_ARG2(r); |
| 63 | if (!n--) | 62 | *args++ = UPT_SYSCALL_ARG3(r); |
| 64 | break; | 63 | *args++ = UPT_SYSCALL_ARG4(r); |
| 65 | *args++ = UPT_SYSCALL_ARG1(r); | 64 | *args++ = UPT_SYSCALL_ARG5(r); |
| 66 | case 1: | 65 | *args = UPT_SYSCALL_ARG6(r); |
| 67 | if (!n--) | ||
| 68 | break; | ||
| 69 | *args++ = UPT_SYSCALL_ARG2(r); | ||
| 70 | case 2: | ||
| 71 | if (!n--) | ||
| 72 | break; | ||
| 73 | *args++ = UPT_SYSCALL_ARG3(r); | ||
| 74 | case 3: | ||
| 75 | if (!n--) | ||
| 76 | break; | ||
| 77 | *args++ = UPT_SYSCALL_ARG4(r); | ||
| 78 | case 4: | ||
| 79 | if (!n--) | ||
| 80 | break; | ||
| 81 | *args++ = UPT_SYSCALL_ARG5(r); | ||
| 82 | case 5: | ||
| 83 | if (!n--) | ||
| 84 | break; | ||
| 85 | *args++ = UPT_SYSCALL_ARG6(r); | ||
| 86 | case 6: | ||
| 87 | if (!n--) | ||
| 88 | break; | ||
| 89 | default: | ||
| 90 | BUG(); | ||
| 91 | break; | ||
| 92 | } | ||
| 93 | } | 66 | } |
| 94 | 67 | ||
| 95 | static inline void syscall_set_arguments(struct task_struct *task, | 68 | static inline void syscall_set_arguments(struct task_struct *task, |
| 96 | struct pt_regs *regs, | 69 | struct pt_regs *regs, |
| 97 | unsigned int i, unsigned int n, | ||
| 98 | const unsigned long *args) | 70 | const unsigned long *args) |
| 99 | { | 71 | { |
| 100 | struct uml_pt_regs *r = ®s->regs; | 72 | struct uml_pt_regs *r = ®s->regs; |
| 101 | 73 | ||
| 102 | switch (i) { | 74 | UPT_SYSCALL_ARG1(r) = *args++; |
| 103 | case 0: | 75 | UPT_SYSCALL_ARG2(r) = *args++; |
| 104 | if (!n--) | 76 | UPT_SYSCALL_ARG3(r) = *args++; |
| 105 | break; | 77 | UPT_SYSCALL_ARG4(r) = *args++; |
| 106 | UPT_SYSCALL_ARG1(r) = *args++; | 78 | UPT_SYSCALL_ARG5(r) = *args++; |
| 107 | case 1: | 79 | UPT_SYSCALL_ARG6(r) = *args; |
| 108 | if (!n--) | ||
| 109 | break; | ||
| 110 | UPT_SYSCALL_ARG2(r) = *args++; | ||
| 111 | case 2: | ||
| 112 | if (!n--) | ||
| 113 | break; | ||
| 114 | UPT_SYSCALL_ARG3(r) = *args++; | ||
| 115 | case 3: | ||
| 116 | if (!n--) | ||
| 117 | break; | ||
| 118 | UPT_SYSCALL_ARG4(r) = *args++; | ||
| 119 | case 4: | ||
| 120 | if (!n--) | ||
| 121 | break; | ||
| 122 | UPT_SYSCALL_ARG5(r) = *args++; | ||
| 123 | case 5: | ||
| 124 | if (!n--) | ||
| 125 | break; | ||
| 126 | UPT_SYSCALL_ARG6(r) = *args++; | ||
| 127 | case 6: | ||
| 128 | if (!n--) | ||
| 129 | break; | ||
| 130 | default: | ||
| 131 | BUG(); | ||
| 132 | break; | ||
| 133 | } | ||
| 134 | } | 80 | } |
| 135 | 81 | ||
| 136 | /* See arch/x86/um/asm/syscall.h for syscall_get_arch() definition. */ | 82 | /* See arch/x86/um/asm/syscall.h for syscall_get_arch() definition. */ |
