Introduce concept of Process Resources (PR_MEM), implement necessary syscalls
All checks were successful
Build documentation / build-and-deploy (push) Successful in 42s
All checks were successful
Build documentation / build-and-deploy (push) Successful in 42s
This commit is contained in:
@@ -1,13 +0,0 @@
|
||||
#ifndef _LIBMSL_M_MEM_H
|
||||
#define _LIBMSL_M_MEM_H
|
||||
|
||||
#if defined(__x86_64__)
|
||||
#define M_PROC_MAP_BASE 0x0000700000000000
|
||||
#define M_PAGE_SIZE 4096
|
||||
#endif
|
||||
|
||||
#define PM_PRESENT (1 << 0)
|
||||
#define PM_RW (1 << 1)
|
||||
#define PM_USER (1 << 2)
|
||||
|
||||
#endif // _LIBMSL_M_MEM_H
|
||||
@@ -7,10 +7,19 @@ int m_proc_quit (void) { return m_syscall (SYS_PROC_QUIT, 0, 0, 0, 0, 0, 0); }
|
||||
|
||||
int m_proc_test (void) { return m_syscall (SYS_PROC_TEST, 0, 0, 0, 0, 0, 0); }
|
||||
|
||||
int m_proc_map (uintptr_t vaddr, size_t pages, uint32_t flags) {
|
||||
return m_syscall (SYS_PROC_MAP, vaddr, (uintptr_t)pages, (uintptr_t)flags, 0, 0, 0);
|
||||
int m_proc_map (uintptr_t paddr, uintptr_t vaddr, size_t pages, uint32_t flags) {
|
||||
return m_syscall (SYS_PROC_MAP, paddr, vaddr, (uintptr_t)pages, (uintptr_t)flags, 0, 0);
|
||||
}
|
||||
|
||||
int m_proc_unmap (uintptr_t vaddr, size_t pages) {
|
||||
return m_syscall (SYS_PROC_UNMAP, vaddr, (uintptr_t)pages, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
int m_proc_create_resource_mem (size_t pages, int vis, uintptr_t* out_paddr) {
|
||||
return m_syscall (SYS_PROC_CREATE_RESOURCE_MEM, (uintptr_t)pages, (uintptr_t)vis,
|
||||
(uintptr_t)out_paddr, 0, 0, 0);
|
||||
}
|
||||
|
||||
int m_proc_drop_resource (int rid) {
|
||||
return m_syscall (SYS_PROC_DROP_RESOURCE, (uintptr_t)rid, 0, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
@@ -1,12 +1,26 @@
|
||||
#ifndef _LIBMSL_M_PROC_H
|
||||
#define _LIBMSL_M_PROC_H
|
||||
|
||||
#if defined(__x86_64__)
|
||||
#define M_PROC_MAP_BASE 0x0000700000000000
|
||||
#define M_PAGE_SIZE 4096
|
||||
#endif
|
||||
|
||||
#define PM_PRESENT (1 << 0)
|
||||
#define PM_RW (1 << 1)
|
||||
#define PM_USER (1 << 2)
|
||||
|
||||
#define RV_PRIVATE 0
|
||||
#define RV_PUBLIC 1
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
int m_proc_quit (void);
|
||||
int m_proc_test (void);
|
||||
int m_proc_map (uintptr_t vaddr, size_t pages, uint32_t flags);
|
||||
int m_proc_map (uintptr_t paddr, uintptr_t vaddr, size_t pages, uint32_t flags);
|
||||
int m_proc_unmap (uintptr_t vaddr, size_t pages);
|
||||
int m_proc_create_resource_mem (size_t pages, int vis, uintptr_t* out_paddr);
|
||||
int m_proc_drop_resource (int rid);
|
||||
|
||||
#endif // _LIBMSL_M_PROC_H
|
||||
|
||||
Reference in New Issue
Block a user