37#ifndef __LOS_VM_SYSCALL_H__
38#define __LOS_VM_SYSCALL_H__
51 return ((flags & MAP_ANONYMOUS) == 0);
56 return ((flags & MAP_ANONYMOUS) == MAP_ANONYMOUS);
59VADDR_T LOS_MMap(
VADDR_T vaddr,
size_t len,
unsigned prot,
unsigned long flags,
int fd,
unsigned long pgoff);
STATUS_T LOS_UnMMap(VADDR_T addr, size_t size)
解除映射关系
VADDR_T LOS_MMap(VADDR_T vaddr, size_t len, unsigned prot, unsigned long flags, int fd, unsigned long pgoff)
INT32 ShmDt(const VOID *shmaddr)
当对共享存储的操作已经结束时,则调用shmdt与该存储段分离 如果shmat成功执行,那么内核将使与该共享存储相关的shmid_ds结构中的shm_nattch计数器值减1
VADDR_T LOS_DoMremap(VADDR_T oldAddress, size_t oldSize, size_t newSize, int flags, VADDR_T newAddr)
重新映射虚拟内存地址。
INT32 ShmCtl(INT32 shmid, INT32 cmd, struct shmid_ds *buf)
ShmCtl 此函数可以对shmid指定的共享存储进行多种操作(删除、取信息、加锁、解锁等)
STATIC INLINE BOOL LOS_IsNamedMapping(unsigned long flags)
VOID * LOS_DoBrk(VOID *addr)
VOID LOS_DumpMemRegion(VADDR_T vaddr)
输出内存线性区
VOID * ShmAt(INT32 shmid, const VOID *shmaddr, INT32 shmflg)
ShmAt 用来启动对该共享内存的访问,并把共享内存连接到当前进程的地址空间。
STATIC INLINE BOOL LOS_IsAnonymousMapping(unsigned long flags)
是否匿名映射 匿名映射:没有映射对应的相关文件,这种映射的内存区域的内容会被初始化为0
INT32 ShmGet(key_t key, size_t size, INT32 shmflg)
ShmGet 得到一个共享内存标识符或创建一个共享内存对象
INT32 LOS_DoMprotect(VADDR_T vaddr, size_t len, unsigned long prot)
修改内存段的访问权限