basekernel/include/kernel/syscall.h

59 lines
1.3 KiB
C

/*
Copyright (C) 2016-2019 The University of Notre Dame
This software is distributed under the GNU General Public License.
See the file LICENSE for details.
*/
#ifndef KERNEL_SYSCALL_H
#define KERNEL_SYSCALL_H
#include "kernel/types.h"
#include "kernel/error.h"
typedef enum {
SYSCALL_DEBUG,
SYSCALL_PROCESS_YIELD,
SYSCALL_PROCESS_EXIT,
SYSCALL_PROCESS_RUN,
SYSCALL_PROCESS_WRUN,
SYSCALL_PROCESS_FORK,
SYSCALL_PROCESS_EXEC,
SYSCALL_PROCESS_SELF,
SYSCALL_PROCESS_PARENT,
SYSCALL_PROCESS_KILL,
SYSCALL_PROCESS_REAP,
SYSCALL_PROCESS_WAIT,
SYSCALL_PROCESS_SLEEP,
SYSCALL_PROCESS_STATS,
SYSCALL_PROCESS_HEAP,
SYSCALL_OPEN_FILE,
SYSCALL_OPEN_DIR,
SYSCALL_OPEN_WINDOW,
SYSCALL_OPEN_CONSOLE,
SYSCALL_OPEN_PIPE,
SYSCALL_OBJECT_TYPE,
SYSCALL_OBJECT_COPY,
SYSCALL_OBJECT_READ,
SYSCALL_OBJECT_LIST,
SYSCALL_OBJECT_WRITE,
SYSCALL_OBJECT_SEEK,
SYSCALL_OBJECT_SIZE,
SYSCALL_OBJECT_REMOVE,
SYSCALL_OBJECT_CLOSE,
SYSCALL_OBJECT_STATS,
SYSCALL_OBJECT_SET_TAG,
SYSCALL_OBJECT_GET_TAG,
SYSCALL_OBJECT_MAX,
SYSCALL_SYSTEM_STATS,
SYSCALL_BCACHE_STATS,
SYSCALL_BCACHE_FLUSH,
SYSCALL_SYSTEM_TIME,
SYSCALL_SYSTEM_RTC,
SYSCALL_DEVICE_DRIVER_STATS,
MAX_SYSCALL // must be the last element in the enum
} syscall_t;
uint32_t syscall(syscall_t s, uint32_t a, uint32_t b, uint32_t c, uint32_t d, uint32_t e);
#endif