58void *
SysMmap(
void *addr,
size_t size,
int prot,
int flags,
int fd,
size_t offset)
63 return (
void *)
LOS_MMap((uintptr_t)addr, size, prot, flags, fd, offset);
90void *
SysMremap(
void *oldAddr,
size_t oldLen,
size_t newLen,
int flags,
void *newAddr)
102 return LOS_DoMprotect((uintptr_t)vaddr, len, (
unsigned long)prot);
115#ifdef LOSCFG_KERNEL_SHM
133 ret =
ShmGet(key, size, shmflg);
152void *
SysShmAt(
int shmid,
const void *shmaddr,
int shmflg)
156 ret =
ShmAt(shmid, shmaddr, shmflg);
157 if (ret == (
void *)-1) {
158 return (
void *)(intptr_t)-get_errno();
178 ret =
ShmCtl(shmid, cmd, buf);
196 ret =
ShmDt(shmaddr);
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指定的共享存储进行多种操作(删除、取信息、加锁、解锁等)
VOID * LOS_DoBrk(VOID *addr)
VOID * ShmAt(INT32 shmid, const VOID *shmaddr, INT32 shmflg)
ShmAt 用来启动对该共享内存的访问,并把共享内存连接到当前进程的地址空间。
INT32 ShmGet(key_t key, size_t size, INT32 shmflg)
ShmGet 得到一个共享内存标识符或创建一个共享内存对象
INT32 LOS_DoMprotect(VADDR_T vaddr, size_t len, unsigned long prot)
修改内存段的访问权限
int GetAssociatedSystemFd(int procFd)
获取绑定的系统描述符
int SysShmGet(key_t key, size_t size, int shmflg)
得到一个共享内存标识符或创建一个共享内存对象
int SysShmCtl(int shmid, int cmd, struct shmid_ds *buf)
完成对共享内存的控制 此函数可以对shmid指定的共享存储进行多种操作(删除、取信息、加锁、解锁等)
void * SysMmap(void *addr, size_t size, int prot, int flags, int fd, size_t offset)
系统调用|申请虚拟内存(分配线性地址区间) 鸿蒙与Linux标准库的差异 http://weharmonyos.com/zh-cn/device-dev/kernel/%E4%B8%8ELinux%...
void * SysMremap(void *oldAddr, size_t oldLen, size_t newLen, int flags, void *newAddr)
void * SysShmAt(int shmid, const void *shmaddr, int shmflg)
int SysMprotect(void *vaddr, size_t len, int prot)
修改访问权限
int SysMunmap(void *addr, size_t size)
释放虚拟内存
void * SysBrk(void *addr)
brk也是申请堆内存的一种方式,一般小于 128K 会使用它
int SysShmDt(const void *shmaddr)
与shmat函数相反,是用来断开与共享内存附加点的地址,禁止本进程访问此片共享内存