Rewrite resource subsystem
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
#include <m/resource_buffer.h>
|
||||
#include <m/syscall.h>
|
||||
#include <m/syscall_defs.h>
|
||||
#include <stddef.h>
|
||||
@@ -15,25 +16,21 @@ int proc_unmap (uintptr_t vaddr, size_t pages) {
|
||||
return syscall (SYS_PROC_UNMAP, vaddr, (uintptr_t)pages, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
int proc_create_resource_mem (int rid, size_t pages, int vis, uintptr_t* out_paddr) {
|
||||
return syscall (SYS_PROC_CREATE_RESOURCE_MEM, (uintptr_t)rid, (uintptr_t)pages, (uintptr_t)vis,
|
||||
(uintptr_t)out_paddr, 0, 0);
|
||||
int proc_create_resource (int rid, int type, int vis, void* buffer) {
|
||||
return syscall (SYS_PROC_CREATE_RESOURCE, (uintptr_t)rid, (uintptr_t)type, (uintptr_t)vis,
|
||||
(uintptr_t)buffer, 0, 0);
|
||||
}
|
||||
|
||||
int proc_drop_resource (int rid) {
|
||||
return syscall (SYS_PROC_DROP_RESOURCE, (uintptr_t)rid, 0, 0, 0, 0, 0);
|
||||
int proc_drop_resource (int rid, int vis) {
|
||||
return syscall (SYS_PROC_DROP_RESOURCE, (uintptr_t)rid, (uintptr_t)vis, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
int proc_create_resource_mutex (int rid, int vis) {
|
||||
return syscall (SYS_PROC_CREATE_RESOURCE_MUTEX, (uintptr_t)rid, (uintptr_t)vis, 0, 0, 0, 0);
|
||||
int proc_mutex_lock (int mutex_rid, int vis) {
|
||||
return syscall (SYS_PROC_MUTEX_LOCK, (uintptr_t)mutex_rid, (uintptr_t)vis, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
int proc_mutex_lock (int mutex_rid) {
|
||||
return syscall (SYS_PROC_MUTEX_LOCK, (uintptr_t)mutex_rid, 0, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
int proc_mutex_unlock (int mutex_rid) {
|
||||
return syscall (SYS_PROC_MUTEX_UNLOCK, (uintptr_t)mutex_rid, 0, 0, 0, 0, 0);
|
||||
int proc_mutex_unlock (int mutex_rid, int vis) {
|
||||
return syscall (SYS_PROC_MUTEX_UNLOCK, (uintptr_t)mutex_rid, (uintptr_t)vis, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
int proc_spawn_thread (uintptr_t vstack_top, size_t stack_size, void* entry) {
|
||||
@@ -45,8 +42,4 @@ int proc_translate_v2p (uintptr_t vaddr, uintptr_t* out_paddr) {
|
||||
return syscall (SYS_PROC_TRANSLATE_V2P, vaddr, (uintptr_t)out_paddr, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
int proc_mem_unref (uintptr_t paddr, size_t pages) {
|
||||
return syscall (SYS_PROC_MEM_UNREF, paddr, (uintptr_t)pages, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
int proc_sched (void) { return syscall (SYS_PROC_SCHED, 0, 0, 0, 0, 0, 0); }
|
||||
|
||||
@@ -13,6 +13,9 @@
|
||||
#define RV_PRIVATE 0
|
||||
#define RV_PUBLIC 1
|
||||
|
||||
#define PR_MEM 0
|
||||
#define PR_MUTEX 1
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
@@ -20,14 +23,12 @@ int proc_quit (void);
|
||||
int proc_test (char c);
|
||||
int proc_map (uintptr_t paddr, uintptr_t vaddr, size_t pages, uint32_t flags);
|
||||
int proc_unmap (uintptr_t vaddr, size_t pages);
|
||||
int proc_create_resource_mem (int rid, size_t pages, int vis, uintptr_t* out_paddr);
|
||||
int proc_drop_resource (int rid);
|
||||
int proc_create_resource_mutex (int rid, int vis);
|
||||
int proc_mutex_lock (int mutex_rid);
|
||||
int proc_mutex_unlock (int mutex_rid);
|
||||
int proc_create_resource (int rid, int type, int vis, void* buffer);
|
||||
int proc_drop_resource (int rid, int vis);
|
||||
int proc_mutex_lock (int mutex_rid, int vis);
|
||||
int proc_mutex_unlock (int mutex_rid, int vis);
|
||||
int proc_spawn_thread (uintptr_t vstack_top, size_t stack_size, void* entry);
|
||||
int proc_sched (void);
|
||||
int proc_translate_v2p (uintptr_t vaddr, uintptr_t* out_paddr);
|
||||
int proc_mem_unref (uintptr_t paddr, size_t pages);
|
||||
|
||||
#endif // _LIBMSL_M_PROC_H
|
||||
|
||||
Reference in New Issue
Block a user