GitOS
Operating system exercise
|
#include "syscall.hpp"
#include <drivers/graphics/vbe/vbe_graphics.hpp>
#include <fs/pipe/PipeFS.hpp>
#include <fs/file.h>
#include <common/assert.h>
#include <common/string.h>
#include "memory/heap/kheap.h"
#include "idt/idt.h"
#include "kernel.h"
#include "task/task.h"
#include "task/process.h"
Data Structures | |
struct | FramebufferInfo |
Functions | |
void * | syscall_handler (int syscall_id, struct interrupt_frame *frame) |
void * | sys$putstring (struct interrupt_frame *frame) |
void * | sys$getchar (struct interrupt_frame *frame) |
void * | sys$putchar (struct interrupt_frame *frame) |
void * | sys$execprocess (struct interrupt_frame *frame) |
void * | sys$get_process_arguments (struct interrupt_frame *frame) |
void * | sys$malloc (struct interrupt_frame *frame) |
void * | sys$free (struct interrupt_frame *frame) |
void * | sys$exit (struct interrupt_frame *frame) |
void * | sys$get_framebuffer_info (struct interrupt_frame *frame) |
void * | sys$fopen (struct interrupt_frame *frame) |
void * | sys$fclose (struct interrupt_frame *frame) |
void * | sys$fread (struct interrupt_frame *frame) |
void * | sys$fwrite (struct interrupt_frame *frame) |
void * | sys$fstat (struct interrupt_frame *frame) |
void * | sys$fseek (struct interrupt_frame *frame) |
void * | sys$open_ipc (struct interrupt_frame *frame) |
void * | sys$getpid (struct interrupt_frame *frame) |
void | syscall_init () |
void * sys$execprocess | ( | struct interrupt_frame * | frame | ) |
void * sys$exit | ( | struct interrupt_frame * | frame | ) |
References filename, kprintf(), process_current(), process_terminate(), task_current(), task_peek_stack(), task_return(), and task_switch().
void * sys$fclose | ( | struct interrupt_frame * | frame | ) |
References fclose(), task_current(), and task_peek_stack().
void * sys$fopen | ( | struct interrupt_frame * | frame | ) |
References fopen(), MAX_PATH, task_copy_string_from(), task_current(), and task_peek_stack().
void * sys$fread | ( | struct interrupt_frame * | frame | ) |
References fread(), size, task_current(), and task_peek_stack().
void * sys$free | ( | struct interrupt_frame * | frame | ) |
References task::process, process_free(), task_current(), and task_peek_stack().
void * sys$fseek | ( | struct interrupt_frame * | frame | ) |
References fseek(), offset, task_current(), and task_peek_stack().
void * sys$fstat | ( | struct interrupt_frame * | frame | ) |
References file_stat::filesize, file_stat::flags, fstat(), kernel_page(), task_current(), task_page(), and task_peek_stack().
void * sys$fwrite | ( | struct interrupt_frame * | frame | ) |
References fwrite(), size, task_current(), and task_peek_stack().
void * sys$get_framebuffer_info | ( | struct interrupt_frame * | frame | ) |
void * sys$get_process_arguments | ( | struct interrupt_frame * | frame | ) |
References process::argc, process::argv, kernel_page(), task::process, process_malloc(), strcpy(), strlen(), task_current(), task_page(), and task_peek_stack().
void * sys$getchar | ( | struct interrupt_frame * | frame | ) |
References process_popkey(), and task_current().
void * sys$getpid | ( | struct interrupt_frame * | frame | ) |
References process::id, task::process, and task_current().
void * sys$malloc | ( | struct interrupt_frame * | frame | ) |
References task::process, process_malloc(), task_current(), and task_peek_stack().
void * sys$open_ipc | ( | struct interrupt_frame * | frame | ) |
References filename, PipeFS::get_struct(), MAX_PATH, mount(), strcpy(), strlen(), task_copy_string_from(), task_current(), and task_peek_stack().
void * sys$putchar | ( | struct interrupt_frame * | frame | ) |
References kprintf(), task_current(), and task_peek_stack().
void * sys$putstring | ( | struct interrupt_frame * | frame | ) |
References kprintf(), task_copy_string_from(), task_current(), and task_peek_stack().
void * syscall_handler | ( | int | syscall_id, |
struct interrupt_frame * | frame | ||
) |
References kernel_page(), task_current_save_state(), and task_page().
void syscall_init | ( | ) |
References sys$execprocess(), sys$exit(), sys$fclose(), sys$fopen(), sys$fread(), sys$free(), sys$fseek(), sys$fstat(), sys$fwrite(), sys$get_framebuffer_info(), sys$get_process_arguments(), sys$getchar(), sys$getpid(), sys$malloc(), sys$open_ipc(), sys$putchar(), sys$putstring(), SYSCALL_EXECPROCESS, SYSCALL_EXIT, SYSCALL_FCLOSE, SYSCALL_FOPEN, SYSCALL_FREAD, SYSCALL_FREE, SYSCALL_FSEEK, SYSCALL_FSTAT, SYSCALL_FWRITE, SYSCALL_GET_FRAMEBUFFER_INFO, SYSCALL_GET_PROCESS_ARGUMENTS, SYSCALL_GETCHAR, SYSCALL_GETPID, SYSCALL_MALLOC, SYSCALL_OPENIPC, SYSCALL_PUTCHAR, and SYSCALL_PUTSTRING.