#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 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
