Pre Merge pull request !1227 from hw_llm/cherry-pick-1727059032
This commit is contained in:
commit
a004ca5095
|
@ -157,7 +157,8 @@ typedef struct VmSpace {
|
|||
#define VM_MAP_REGION_FLAG_SHM (1<<16)
|
||||
#define VM_MAP_REGION_FLAG_FIXED (1<<17)
|
||||
#define VM_MAP_REGION_FLAG_FIXED_NOREPLACE (1<<18)
|
||||
#define VM_MAP_REGION_FLAG_INVALID (1<<19) /* indicates that flags are not specified */
|
||||
#define VM_MAP_REGION_FLAG_LITEIPC (1<<19)
|
||||
#define VM_MAP_REGION_FLAG_INVALID (1<<20) /* indicates that flags are not specified */
|
||||
|
||||
STATIC INLINE UINT32 OsCvtProtFlagsToRegionFlags(unsigned long prot, unsigned long flags)
|
||||
{
|
||||
|
|
|
@ -76,6 +76,8 @@ const CHAR *OsGetRegionNameOrFilePath(LosVmMapRegion *region)
|
|||
return "MMAP";
|
||||
} else if (region->regionFlags & VM_MAP_REGION_FLAG_SHM) {
|
||||
return "SHM";
|
||||
} else if (region->regionFlags & VM_MAP_REGION_FLAG_LITEIPC) {
|
||||
return "LITEIPC";
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
|
|
|
@ -273,6 +273,8 @@ STATIC UINT32 OsInheritOldRegionName(UINT32 oldRegionFlags)
|
|||
vmFlags |= VM_MAP_REGION_FLAG_MMAP;
|
||||
} else if (oldRegionFlags & VM_MAP_REGION_FLAG_SHM) {
|
||||
vmFlags |= VM_MAP_REGION_FLAG_SHM;
|
||||
} else if (oldRegionFlags & VM_MAP_REGION_FLAG_LITEIPC) {
|
||||
vmFlags |= VM_MAP_REGION_FLAG_LITEIPC;
|
||||
}
|
||||
|
||||
return vmFlags;
|
||||
|
@ -298,7 +300,9 @@ INT32 LOS_DoMprotect(VADDR_T vaddr, size_t len, unsigned long prot)
|
|||
goto OUT_MPROTECT;
|
||||
}
|
||||
|
||||
if ((region->regionFlags & VM_MAP_REGION_FLAG_VDSO) || (region->regionFlags & VM_MAP_REGION_FLAG_HEAP)) {
|
||||
if ((region->regionFlags & VM_MAP_REGION_FLAG_VDSO) ||
|
||||
(region->regionFlags & VM_MAP_REGION_FLAG_HEAP) ||
|
||||
(region->regionFlags & VM_MAP_REGION_FLAG_LITEIPC)) {
|
||||
ret = -EPERM;
|
||||
goto OUT_MPROTECT;
|
||||
}
|
||||
|
|
|
@ -239,6 +239,7 @@ LITE_OS_SEC_TEXT STATIC int LiteIpcMmap(struct file *filep, LosVmMapRegion *regi
|
|||
goto ERROR_MAP_OUT;
|
||||
}
|
||||
ipcInfo->pool.poolSize = region->range.size;
|
||||
region->regionFlags |= VM_MAP_REGION_FLAG_LITEIPC;
|
||||
return 0;
|
||||
ERROR_MAP_OUT:
|
||||
LOS_VFree(ipcInfo->pool.kvaddr);
|
||||
|
|
Loading…
Reference in New Issue