XenevaOS
Loading...
Searching...
No Matches
mman.h
Go to the documentation of this file.
1
32#ifndef __MMAN_H__
33#define __MMAN_H__
34
35#include <stdint.h>
36#include <_xeneva.h>
37
38#ifdef __cplusplus
40#endif
41
42#define PAGE_SIZE 4096
43
44#define MEMMAP_NO_FILEDESC -1
45
46 /* memmap -- flags */
47#define PROTECTION_FLAG_READONLY 1<<0
48#define PROTECTION_FLAG_WRITE 1<<1
49#define PROTECTION_FLAG_NO_EXEC 1<<2
50#define PROTECTION_FLAG_NO_CACHE 1<<3
51
52#define MEMMAP_FLAG_SHARED 1<<0
53#define MEMMAP_FLAG_COW 1<<1
54#define MEMMAP_FLAG_PRIVATE 1<<2
55#define MEMMAP_FLAG_DISCARD_FILE_READ 1<<3
56
66 XE_LIB void* _KeMemMap(void* address, size_t length, int protect, int flags, int filedesc, uint64_t offset);
67
73 XE_LIB void _KeMemUnmap(void* address, size_t len);
74
81 XE_LIB int _KeCreateSharedMem(uint16_t key, size_t sz, uint8_t flags);
82
89 XE_LIB void* _KeObtainSharedMem(uint16_t id, void* shmaddr, int shmflg);
90
96
103
111 XE_LIB void _KeMemMapDirty(void* startAddr, size_t len, int flags, int prot);
112
119 XE_LIB int _KeProcessHeapUnmap(void* ptr, size_t sz);
120
121#ifdef __cplusplus
122}
123#endif
124
125#endif
#define XE_LIB
Definition _xeneva.h:55
#define XE_EXTERN
Definition _xeneva.h:50
unsigned char uint8_t
Definition acefiex.h:161
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
unsigned short int uint16_t
Definition acefiex.h:162
XE_LIB void _KeMemMapDirty(void *startAddr, size_t len, int flags, int prot)
_KeMemMapDirty – dirty update previously allocated memory map
XE_LIB void _KeUnmapSharedMem(uint16_t key)
_KeUnmapSharedMem – unmap shared memory segment
XE_LIB int _KeProcessHeapUnmap(void *ptr, size_t sz)
_KeProcessHeapUnmap – unmaps previosly allocated heap memory
XE_LIB void * _KeObtainSharedMem(uint16_t id, void *shmaddr, int shmflg)
_KeObtainSharedMem – obtain a shared memory
XE_LIB void _KeMemUnmap(void *address, size_t len)
_KeMemUnmap – unmaps a memory segment
XE_LIB void * _KeMemMap(void *address, size_t length, int protect, int flags, int filedesc, uint64_t offset)
_KeMemMap – memory map
XE_LIB int _KeCreateSharedMem(uint16_t key, size_t sz, uint8_t flags)
_KeCreateSharedMem – create a shared memory chunk
XE_LIB uint64_t _KeGetProcessHeapMem(size_t sz)
_KeGetProcessHeapMem – request a new memory from process heap