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_SHM (1<<16)
|
||||||
#define VM_MAP_REGION_FLAG_FIXED (1<<17)
|
#define VM_MAP_REGION_FLAG_FIXED (1<<17)
|
||||||
#define VM_MAP_REGION_FLAG_FIXED_NOREPLACE (1<<18)
|
#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)
|
STATIC INLINE UINT32 OsCvtProtFlagsToRegionFlags(unsigned long prot, unsigned long flags)
|
||||||
{
|
{
|
||||||
|
|
|
@ -76,6 +76,8 @@ const CHAR *OsGetRegionNameOrFilePath(LosVmMapRegion *region)
|
||||||
return "MMAP";
|
return "MMAP";
|
||||||
} else if (region->regionFlags & VM_MAP_REGION_FLAG_SHM) {
|
} else if (region->regionFlags & VM_MAP_REGION_FLAG_SHM) {
|
||||||
return "SHM";
|
return "SHM";
|
||||||
|
} else if (region->regionFlags & VM_MAP_REGION_FLAG_LITEIPC) {
|
||||||
|
return "LITEIPC";
|
||||||
} else {
|
} else {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
|
@ -273,6 +273,8 @@ STATIC UINT32 OsInheritOldRegionName(UINT32 oldRegionFlags)
|
||||||
vmFlags |= VM_MAP_REGION_FLAG_MMAP;
|
vmFlags |= VM_MAP_REGION_FLAG_MMAP;
|
||||||
} else if (oldRegionFlags & VM_MAP_REGION_FLAG_SHM) {
|
} else if (oldRegionFlags & VM_MAP_REGION_FLAG_SHM) {
|
||||||
vmFlags |= 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;
|
return vmFlags;
|
||||||
|
@ -298,7 +300,9 @@ INT32 LOS_DoMprotect(VADDR_T vaddr, size_t len, unsigned long prot)
|
||||||
goto OUT_MPROTECT;
|
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;
|
ret = -EPERM;
|
||||||
goto OUT_MPROTECT;
|
goto OUT_MPROTECT;
|
||||||
}
|
}
|
||||||
|
|
|
@ -239,6 +239,7 @@ LITE_OS_SEC_TEXT STATIC int LiteIpcMmap(struct file *filep, LosVmMapRegion *regi
|
||||||
goto ERROR_MAP_OUT;
|
goto ERROR_MAP_OUT;
|
||||||
}
|
}
|
||||||
ipcInfo->pool.poolSize = region->range.size;
|
ipcInfo->pool.poolSize = region->range.size;
|
||||||
|
region->regionFlags |= VM_MAP_REGION_FLAG_LITEIPC;
|
||||||
return 0;
|
return 0;
|
||||||
ERROR_MAP_OUT:
|
ERROR_MAP_OUT:
|
||||||
LOS_VFree(ipcInfo->pool.kvaddr);
|
LOS_VFree(ipcInfo->pool.kvaddr);
|
||||||
|
|
Loading…
Reference in New Issue