#include <basics.h>
#include <isr.h>
Go to the source code of this file.
|
| void | int80_handler (InterruptFrame *frame) |
| | Wrapper for the dispatcher which gets called for interrupt number 0x80.
|
| void | syscall_handler (syscall_frame_t *f) |
| | Wrapper for the dispatcher which gets called for running the syscall instruction.
|
| uint64_t | syscall_dispatch (uint64_t nr, uint64_t arg1, uint64_t arg2, uint64_t arg3, uint64_t arg4, uint64_t arg5, uint64_t arg6) |
| | Dispatches syscall based on the syscall number.
|
- Author
- Pradosh (prado.nosp@m.shga.nosp@m.me@gm.nosp@m.ail..nosp@m.com)
- Version
- 0.1
- Date
- 2024-01-05
- Copyright
- Copyright (c) Pradosh 2024
Definition in file syscalls.h.
◆ FW_SYS_GETC
| #define FW_SYS_GETC 0x1000 |
◆ FW_SYS_GETC_NB
| #define FW_SYS_GETC_NB 0x1001 |
◆ FW_SYS_LOGIN
| #define FW_SYS_LOGIN 0x1055 |
◆ FW_SYS_PUTC
| #define FW_SYS_PUTC 0x1002 |
◆ IA32_FS_BASE_MSR
| #define IA32_FS_BASE_MSR 0xC0000100 |
◆ LINUX_ARCH_GET_FS
| #define LINUX_ARCH_GET_FS 0x1003 |
◆ LINUX_ARCH_SET_FS
| #define LINUX_ARCH_SET_FS 0x1002 |
◆ LINUX_AT_EMPTY_PATH
| #define LINUX_AT_EMPTY_PATH 0x1000 |
◆ LINUX_AT_FDCWD
| #define LINUX_AT_FDCWD (-100) |
◆ LINUX_AT_SYMLINK_NOFOLLOW
| #define LINUX_AT_SYMLINK_NOFOLLOW 0x100 |
◆ LINUX_CLOCK_MONOTONIC
| #define LINUX_CLOCK_MONOTONIC 1 |
◆ LINUX_CLOCK_REALTIME
| #define LINUX_CLOCK_REALTIME 0 |
◆ LINUX_EACCES
◆ LINUX_EAGAIN
◆ LINUX_EBADF
◆ LINUX_EINVAL
◆ LINUX_ENFILE
◆ LINUX_ENOENT
◆ LINUX_ENOEXEC
◆ LINUX_ENOMEM
◆ LINUX_ENOSYS
◆ LINUX_ENOTDIR
◆ LINUX_ENOTTY
◆ LINUX_ERANGE
◆ LINUX_F_DUPFD
◆ LINUX_F_GETFD
◆ LINUX_F_GETFL
◆ LINUX_F_SETFD
◆ LINUX_F_SETFL
◆ LINUX_O_APPEND
| #define LINUX_O_APPEND 0x0400 |
◆ LINUX_O_CREAT
| #define LINUX_O_CREAT 0x0040 |
◆ LINUX_O_RDONLY
| #define LINUX_O_RDONLY 0x0000 |
◆ LINUX_O_RDWR
| #define LINUX_O_RDWR 0x0002 |
◆ LINUX_O_TRUNC
| #define LINUX_O_TRUNC 0x0200 |
◆ LINUX_O_WRONLY
| #define LINUX_O_WRONLY 0x0001 |
◆ LINUX_S_IFCHR
| #define LINUX_S_IFCHR 0020000 |
◆ LINUX_S_IFDIR
| #define LINUX_S_IFDIR 0040000 |
◆ LINUX_S_IFMT
| #define LINUX_S_IFMT 00170000 |
◆ LINUX_S_IFREG
| #define LINUX_S_IFREG 0100000 |
◆ LINUX_SEEK_CUR
◆ LINUX_SEEK_END
◆ LINUX_SEEK_SET
◆ LINUX_SYS_ACCESS
| #define LINUX_SYS_ACCESS 21 |
◆ LINUX_SYS_ARCH_PRCTL
| #define LINUX_SYS_ARCH_PRCTL 158 |
◆ LINUX_SYS_BRK
◆ LINUX_SYS_CHDIR
| #define LINUX_SYS_CHDIR 80 |
◆ LINUX_SYS_CLOCK_GETTIME
| #define LINUX_SYS_CLOCK_GETTIME 228 |
◆ LINUX_SYS_CLOSE
| #define LINUX_SYS_CLOSE 3 |
◆ LINUX_SYS_DUP
◆ LINUX_SYS_DUP2
| #define LINUX_SYS_DUP2 33 |
◆ LINUX_SYS_EXECVE
| #define LINUX_SYS_EXECVE 59 |
◆ LINUX_SYS_EXIT
| #define LINUX_SYS_EXIT 60 |
◆ LINUX_SYS_EXIT_GROUP
| #define LINUX_SYS_EXIT_GROUP 231 |
◆ LINUX_SYS_FACCESSAT
| #define LINUX_SYS_FACCESSAT 269 |
◆ LINUX_SYS_FCNTL
| #define LINUX_SYS_FCNTL 72 |
◆ LINUX_SYS_FORK
| #define LINUX_SYS_FORK 57 |
◆ LINUX_SYS_FSTAT
| #define LINUX_SYS_FSTAT 5 |
◆ LINUX_SYS_FUTEX
| #define LINUX_SYS_FUTEX 202 |
◆ LINUX_SYS_GETCWD
| #define LINUX_SYS_GETCWD 79 |
◆ LINUX_SYS_GETDENTS64
| #define LINUX_SYS_GETDENTS64 217 |
◆ LINUX_SYS_GETEGID
| #define LINUX_SYS_GETEGID 108 |
◆ LINUX_SYS_GETEUID
| #define LINUX_SYS_GETEUID 107 |
◆ LINUX_SYS_GETGID
| #define LINUX_SYS_GETGID 104 |
◆ LINUX_SYS_GETPID
| #define LINUX_SYS_GETPID 39 |
◆ LINUX_SYS_GETPPID
| #define LINUX_SYS_GETPPID 110 |
◆ LINUX_SYS_GETRANDOM
| #define LINUX_SYS_GETRANDOM 318 |
◆ LINUX_SYS_GETTID
| #define LINUX_SYS_GETTID 186 |
◆ LINUX_SYS_GETUID
| #define LINUX_SYS_GETUID 102 |
◆ LINUX_SYS_IOCTL
| #define LINUX_SYS_IOCTL 16 |
◆ LINUX_SYS_LSEEK
| #define LINUX_SYS_LSEEK 8 |
◆ LINUX_SYS_LSTAT
| #define LINUX_SYS_LSTAT 6 |
◆ LINUX_SYS_MMAP
◆ LINUX_SYS_MPROTECT
| #define LINUX_SYS_MPROTECT 10 |
◆ LINUX_SYS_MUNMAP
| #define LINUX_SYS_MUNMAP 11 |
◆ LINUX_SYS_NANOSLEEP
| #define LINUX_SYS_NANOSLEEP 35 |
◆ LINUX_SYS_NEWFSTATAT
| #define LINUX_SYS_NEWFSTATAT 262 |
◆ LINUX_SYS_OPEN
◆ LINUX_SYS_OPENAT
| #define LINUX_SYS_OPENAT 257 |
◆ LINUX_SYS_PRLIMIT64
| #define LINUX_SYS_PRLIMIT64 302 |
◆ LINUX_SYS_READ
◆ LINUX_SYS_READLINK
| #define LINUX_SYS_READLINK 89 |
◆ LINUX_SYS_READLINKAT
| #define LINUX_SYS_READLINKAT 267 |
◆ LINUX_SYS_RT_SIGACTION
| #define LINUX_SYS_RT_SIGACTION 13 |
◆ LINUX_SYS_RT_SIGPROCMASK
| #define LINUX_SYS_RT_SIGPROCMASK 14 |
◆ LINUX_SYS_SET_ROBUST_LIST
| #define LINUX_SYS_SET_ROBUST_LIST 273 |
◆ LINUX_SYS_SET_TID_ADDRESS
| #define LINUX_SYS_SET_TID_ADDRESS 218 |
◆ LINUX_SYS_SIGALTSTACK
| #define LINUX_SYS_SIGALTSTACK 131 |
◆ LINUX_SYS_STAT
◆ LINUX_SYS_STATX
| #define LINUX_SYS_STATX 332 |
◆ LINUX_SYS_TGKILL
| #define LINUX_SYS_TGKILL 234 |
◆ LINUX_SYS_UMASK
| #define LINUX_SYS_UMASK 95 |
◆ LINUX_SYS_UNAME
| #define LINUX_SYS_UNAME 63 |
◆ LINUX_SYS_WRITE
| #define LINUX_SYS_WRITE 1 |
◆ LINUX_SYS_WRITEV
| #define LINUX_SYS_WRITEV 20 |
◆ linux_syscalls_prefix
| #define linux_syscalls_prefix "Linux syscall: " |
Prefix for linux-compatible syscall traces.
Definition at line 155 of file syscalls.h.
◆ LINUX_TCGETS
| #define LINUX_TCGETS 0x5401 |
◆ LINUX_TCSETS
| #define LINUX_TCSETS 0x5402 |
◆ LINUX_TCSETSF
| #define LINUX_TCSETSF 0x5404 |
◆ LINUX_TCSETSW
| #define LINUX_TCSETSW 0x5403 |
◆ LINUX_TIOCGPGRP
| #define LINUX_TIOCGPGRP 0x540F |
◆ LINUX_TIOCGWINSZ
| #define LINUX_TIOCGWINSZ 0x5413 |
◆ LINUX_TIOCSPGRP
| #define LINUX_TIOCSPGRP 0x5410 |
◆ PRAD_MAGIC
| #define PRAD_MAGIC 0xBADF00D |
◆ PROC_FILE_COUNT
| #define PROC_FILE_COUNT 3 |
◆ int80_handler()
Wrapper for the dispatcher which gets called for interrupt number 0x80.
- Parameters
-
◆ syscall_dispatch()
| uint64_t syscall_dispatch |
( |
uint64_t | nr, |
|
|
uint64_t | arg1, |
|
|
uint64_t | arg2, |
|
|
uint64_t | arg3, |
|
|
uint64_t | arg4, |
|
|
uint64_t | arg5, |
|
|
uint64_t | arg6 ) |
Dispatches syscall based on the syscall number.
- Parameters
-
| nr | |
| arg1 | |
| arg2 | |
| arg3 | |
| arg4 | |
| arg5 | |
| arg6 | |
- Returns
- uint64_t
◆ syscall_handler()
| void syscall_handler |
( |
syscall_frame_t * | f | ) |
|
Wrapper for the dispatcher which gets called for running the syscall instruction.
- Parameters
-