syscall.h 768 B

1234567891011121314151617181920212223242526272829303132333435
  1. #pragma once
  2. #include <stdint.h>
  3. // 系统调用号
  4. #define SYS_NOT_EXISTS 0
  5. #define SYS_PUT_STRING 1
  6. #define SYS_OPEN 2
  7. #define SYS_CLOSE 3
  8. #define SYS_READ 4
  9. #define SYS_WRITE 5
  10. #define SYS_LSEEK 6
  11. #define SYS_FORK 7
  12. #define SYS_VFORK 8
  13. #define SYS_BRK 9
  14. #define SYS_SBRK 10
  15. #define SYS_REBOOT 11
  16. #define SYS_CHDIR 12 // 切换工作目录
  17. #define SYS_GET_DENTS 13 // 获取目录中的数据
  18. /**
  19. * @brief 用户态系统调用函数
  20. *
  21. * @param syscall_id
  22. * @param arg0
  23. * @param arg1
  24. * @param arg2
  25. * @param arg3
  26. * @param arg4
  27. * @param arg5
  28. * @param arg6
  29. * @param arg7
  30. * @return long
  31. */
  32. long syscall_invoke(uint64_t syscall_id, uint64_t arg0, uint64_t arg1, uint64_t arg2, uint64_t arg3, uint64_t arg4, uint64_t arg5, uint64_t arg6, uint64_t arg7);