Files

32 lines
1.0 KiB
C

#ifndef _SYS_CALL_H
#define _SYS_CALL_H
#include "../lib/lib.h"
// 128 MB + 4 MB + 0xB8000 (VIDEO)
#define USER_VIDEO (33 * 0x400000 + 0xb8000)
// System calls for checkpoint 3.
int32_t syscall_halt (uint8_t status);
int32_t syscall_execute (const uint8_t* command);
int32_t syscall_read (int32_t fd, void* buf, int32_t nbytes);
int32_t syscall_write (int32_t fd, const void* buf, int32_t nbytes);
int32_t syscall_ioctl (int32_t fd, int32_t op);
int32_t syscall_open (const uint8_t* filename);
int32_t syscall_close (int32_t fd);
// System calls for checkpoint 4.
int32_t syscall_getargs (uint8_t* buf, int32_t nbytes);
int32_t syscall_vidmap (uint8_t** screen_start);
//Extra credit system calls.
int32_t syscall_set_handler (int32_t signum, void* handler_address);
int32_t syscall_sigreturn (void);
int32_t syscall_shutdown(void);
int32_t syscall_reboot(void);
int32_t syscall_ps(void);
int32_t syscall_poke(uint32_t x, uint32_t y, uint32_t data);
int32_t syscall_status_msg(char* msg, uint32_t len, uint8_t attr);
#endif