Renamed some syscalls

This commit is contained in:
2023-11-08 14:15:46 -06:00
parent c5ef8c53a7
commit 31f7eb34a6
8 changed files with 265 additions and 165 deletions

View File

@@ -1,16 +1,23 @@
#pragma once
#ifndef QUARK_SYSCALL_DEF_H
#define QUARK_SYSCALL_DEF_H
#include "types/syscallarg.h"
#include "types/sigaction.h"
#include "types/pid.h"
#include "types/oid.h"
#include "types/syscallret.h"
#include <stdbool.h>
#include <stddef.h>
typedef size_t (*syscall_ptr_0_t)();
extern void *syscall_table[];
typedef size_t (*syscall_ptr_1_t)(syscall_arg_t);
typedef syscallret_t (*syscall_ptr_0_t)();
typedef size_t (*syscall_ptr_2_t)(syscall_arg_t, syscall_arg_t);
typedef syscallret_t (*syscall_ptr_1_t)(syscall_arg_t);
typedef size_t (*syscall_ptr_3_t)(syscall_arg_t, syscall_arg_t, syscall_arg_t);
typedef syscallret_t (*syscall_ptr_2_t)(syscall_arg_t, syscall_arg_t);
typedef syscallret_t (*syscall_ptr_3_t)(syscall_arg_t, syscall_arg_t, syscall_arg_t);
struct syscall_t
{
@@ -26,28 +33,106 @@ struct syscall_t
};
};
size_t test_syscall(syscall_arg_t str);
/**
* @brief Outputs the given string from kernel mode.
*
* @param str The string to output.
*/
syscallret_t test_syscall(syscall_arg_t str);
size_t syscall_mmap(syscall_arg_t location, syscall_arg_t length, syscall_arg_t flags);
/**
*
*/
syscallret_t syscall_map_anon(syscall_arg_t location, syscall_arg_t length, syscall_arg_t flags);
size_t syscall_munmap(syscall_arg_t location, syscall_arg_t length);
/**
*
*/
syscallret_t syscall_unmap_anon(syscall_arg_t location, syscall_arg_t length);
size_t syscall_map_physical(syscall_arg_t arg_addr, syscall_arg_t arg_phys_addr, syscall_arg_t arg_length);
/**
*
*/
syscallret_t syscall_map_physical(syscall_arg_t arg_addr, syscall_arg_t arg_phys_addr, syscall_arg_t arg_length);
size_t syscall_unmap_physical(syscall_arg_t arg_addr, syscall_arg_t arg_length);
/**
*
*/
syscallret_t syscall_unmap_physical(syscall_arg_t arg_addr, syscall_arg_t arg_length);
size_t syscall_terminate_self();
/**
*
*/
syscallret_t syscall_open_port(syscall_arg_t id);
size_t syscall_create_object();
/**
*
*/
syscallret_t syscall_close_port(syscall_arg_t id);
size_t syscall_aquire_object();
/**
*
*/
syscallret_t syscall_send_pid(syscall_arg_t recipient, syscall_arg_t message, syscall_arg_t flags);
size_t syscall_release_object();
/**
*
*/
syscallret_t syscall_send_port(syscall_arg_t recipient, syscall_arg_t message, syscall_arg_t flags);
size_t syscall_send(syscall_arg_t recipient, syscall_arg_t message, syscall_arg_t flags);
/**
*
*/
syscallret_t syscall_receive(syscall_arg_t buffer, syscall_arg_t flags);
size_t syscall_receive(syscall_arg_t buffer, syscall_arg_t flags);
/**
*
*/
syscallret_t syscall_create_object(void *location, size_t size, int flags);
size_t syscall_open_port(syscall_arg_t id);
/**
*
*/
syscallret_t syscall_aquire_object(oid_t id, void *location);
size_t syscall_close_port(syscall_arg_t id);
/**
*
*/
syscallret_t syscall_release_object(oid_t id);
/**
*
*/
syscallret_t syscall_get_pid();
/**
*
*/
syscallret_t syscall_clone(void (*entry)(void*), void *arg, void *stack, int flags);
/**
*
*/
syscallret_t syscall_signal_action(int id, struct signal_action_t *action, int flags);
/**
*
*/
syscallret_t syscall_signal_return();
/**
*
*/
syscallret_t syscall_signal_raise(pid_t pid, int sigid);
/**
*
*/
syscallret_t syscall_intr_action(int id, struct signal_action_t *action, int flags);
/**
*
*/
syscallret_t syscall_intr_return();
#endif