You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
762 B
C

3 years ago
#ifndef H_ECALL
#define H_ECALL
#include "sched.h"
/* ecall codes are defined here
*
*
*/
enum ecall_codes {
ECALL_SPAWN = 1,
ECALL_SLEEP = 2,
ECALL_JOIN = 3,
ECALL_KILL = 4,
ECALL_EXIT = 5,
};
#define ECALL_TABLE_LEN 16
// initializer for ecall lookup table
void init_ecall_table();
3 years ago
// syscall handlers, are setup in the mtvec csr
int ecall_handle_spawn(int*, ProcessControlBlock*);
int ecall_handle_sleep(int*, ProcessControlBlock*);
int ecall_handle_join(int*, ProcessControlBlock*);
int ecall_handle_kill(int*, ProcessControlBlock*);
int ecall_handle_exit(int*, ProcessControlBlock*);
3 years ago
void handle_exception(int ecode, int mtval);
3 years ago
void __attribute__((__noreturn__)) trap_handle(int interrupt_bit, int code, int mtval);
3 years ago
#endif