sys.c 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /*
  2. * linux/arch/unicore32/kernel/sys.c
  3. *
  4. * Code specific to PKUnity SoC and UniCore ISA
  5. *
  6. * Copyright (C) 2001-2010 GUAN Xue-tao
  7. *
  8. * This program is free software; you can redistribute it and/or modify
  9. * it under the terms of the GNU General Public License version 2 as
  10. * published by the Free Software Foundation.
  11. */
  12. #include <linux/module.h>
  13. #include <linux/errno.h>
  14. #include <linux/sched.h>
  15. #include <linux/slab.h>
  16. #include <linux/mm.h>
  17. #include <linux/sem.h>
  18. #include <linux/msg.h>
  19. #include <linux/shm.h>
  20. #include <linux/stat.h>
  21. #include <linux/syscalls.h>
  22. #include <linux/mman.h>
  23. #include <linux/fs.h>
  24. #include <linux/file.h>
  25. #include <linux/ipc.h>
  26. #include <linux/uaccess.h>
  27. #include <asm/syscalls.h>
  28. #include <asm/cacheflush.h>
  29. /* Clone a task - this clones the calling program thread.
  30. * This is called indirectly via a small wrapper
  31. */
  32. asmlinkage long __sys_clone(unsigned long clone_flags, unsigned long newsp,
  33. void __user *parent_tid, void __user *child_tid,
  34. struct pt_regs *regs)
  35. {
  36. if (!newsp)
  37. newsp = regs->UCreg_sp;
  38. return do_fork(clone_flags, newsp, regs, 0,
  39. parent_tid, child_tid);
  40. }
  41. /* Note: used by the compat code even in 64-bit Linux. */
  42. SYSCALL_DEFINE6(mmap2, unsigned long, addr, unsigned long, len,
  43. unsigned long, prot, unsigned long, flags,
  44. unsigned long, fd, unsigned long, off_4k)
  45. {
  46. return sys_mmap_pgoff(addr, len, prot, flags, fd,
  47. off_4k);
  48. }
  49. /* Provide the actual syscall number to call mapping. */
  50. #undef __SYSCALL
  51. #define __SYSCALL(nr, call) [nr] = (call),
  52. /* Note that we don't include <linux/unistd.h> but <asm/unistd.h> */
  53. void *sys_call_table[__NR_syscalls] = {
  54. [0 ... __NR_syscalls-1] = sys_ni_syscall,
  55. #include <asm/unistd.h>
  56. };