sys_avr32.c 674 B

12345678910111213141516171819202122232425
  1. /*
  2. * Copyright (C) 2004-2006 Atmel Corporation
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License version 2 as
  6. * published by the Free Software Foundation.
  7. */
  8. #include <linux/unistd.h>
  9. int kernel_execve(const char *file,
  10. const char *const *argv,
  11. const char *const *envp)
  12. {
  13. register long scno asm("r8") = __NR_execve;
  14. register long sc1 asm("r12") = (long)file;
  15. register long sc2 asm("r11") = (long)argv;
  16. register long sc3 asm("r10") = (long)envp;
  17. asm volatile("scall"
  18. : "=r"(sc1)
  19. : "r"(scno), "0"(sc1), "r"(sc2), "r"(sc3)
  20. : "cc", "memory");
  21. return sc1;
  22. }