Blame view
arch/h8300/kernel/sys_h8300.c
1.69 KB
1da177e4c Linux-2.6.12-rc2 |
1 2 3 4 5 6 7 8 9 10 11 12 |
/* * linux/arch/h8300/kernel/sys_h8300.c * * This file contains various random system calls that * have a non-standard calling sequence on the H8/300 * platform. */ #include <linux/errno.h> #include <linux/sched.h> #include <linux/mm.h> #include <linux/smp.h> |
1da177e4c Linux-2.6.12-rc2 |
13 14 15 16 17 18 19 |
#include <linux/sem.h> #include <linux/msg.h> #include <linux/shm.h> #include <linux/stat.h> #include <linux/syscalls.h> #include <linux/mman.h> #include <linux/file.h> |
0cd82ef1f h8300: missing in... |
20 |
#include <linux/fs.h> |
cba4fbbff remove include/as... |
21 |
#include <linux/ipc.h> |
1da177e4c Linux-2.6.12-rc2 |
22 23 24 25 26 |
#include <asm/setup.h> #include <asm/uaccess.h> #include <asm/cachectl.h> #include <asm/traps.h> |
fe74290d5 [PATCH] provide k... |
27 |
#include <asm/unistd.h> |
1da177e4c Linux-2.6.12-rc2 |
28 |
|
1da177e4c Linux-2.6.12-rc2 |
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
/* sys_cacheflush -- no support. */ asmlinkage int sys_cacheflush (unsigned long addr, int scope, int cache, unsigned long len) { return -EINVAL; } asmlinkage int sys_getpagesize(void) { return PAGE_SIZE; } #if defined(CONFIG_SYSCALL_PRINT) asmlinkage void syscall_print(void *dummy,...) { struct pt_regs *regs = (struct pt_regs *) ((unsigned char *)&dummy-4); printk("call %06lx:%ld 1:%08lx,2:%08lx,3:%08lx,ret:%08lx ", ((regs->pc)&0xffffff)-2,regs->orig_er0,regs->er1,regs->er2,regs->er3,regs->er0); } #endif |
fe74290d5 [PATCH] provide k... |
50 51 52 53 54 |
/* * Do a system call from kernel instead of calling sys_execve so we * end up with proper pt_regs. */ |
d7627467b Make do_execve() ... |
55 56 57 |
int kernel_execve(const char *filename, const char *const argv[], const char *const envp[]) |
fe74290d5 [PATCH] provide k... |
58 59 |
{ register long res __asm__("er0"); |
1e72910e2 h8300: Fix missin... |
60 61 |
register const char *const *_c __asm__("er3") = envp; register const char *const *_b __asm__("er2") = argv; |
fe74290d5 [PATCH] provide k... |
62 |
register const char * _a __asm__("er1") = filename; |
fe74290d5 [PATCH] provide k... |
63 64 65 66 67 68 69 70 71 72 73 74 |
__asm__ __volatile__ ("mov.l %1,er0 \t" "trapa #0 \t" : "=r" (res) : "g" (__NR_execve), "g" (_a), "g" (_b), "g" (_c) : "cc", "memory"); return res; } |