strace: mapping type handler for _kern_map_file()
Change-Id: I1f315c285668221fb9ff15165c81dfcd753d7df8 Reviewed-on: https://review.haiku-os.org/c/haiku/+/8977 Reviewed-by: waddlesplash <[email protected]>
This commit is contained in:
committed by
waddlesplash
parent
083e763302
commit
12b22e8e48
@@ -49,8 +49,16 @@ static const enum_info kAddressSpecs[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
static const enum_info kAreaMappings[] = {
|
||||||
|
ENUM_INFO_ENTRY(REGION_NO_PRIVATE_MAP),
|
||||||
|
ENUM_INFO_ENTRY(REGION_PRIVATE_MAP),
|
||||||
|
|
||||||
|
{ 0, NULL }
|
||||||
|
};
|
||||||
|
|
||||||
static FlagsTypeHandler::FlagsList kAreaProtectionFlags;
|
static FlagsTypeHandler::FlagsList kAreaProtectionFlags;
|
||||||
static EnumTypeHandler::EnumMap kAddressSpecsMap;
|
static EnumTypeHandler::EnumMap kAddressSpecsMap;
|
||||||
|
static EnumTypeHandler::EnumMap kAreaMappingMap;
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -62,6 +70,9 @@ patch_area()
|
|||||||
for (int i = 0; kAddressSpecs[i].name != NULL; i++) {
|
for (int i = 0; kAddressSpecs[i].name != NULL; i++) {
|
||||||
kAddressSpecsMap[kAddressSpecs[i].index] = kAddressSpecs[i].name;
|
kAddressSpecsMap[kAddressSpecs[i].index] = kAddressSpecs[i].name;
|
||||||
}
|
}
|
||||||
|
for (int i = 0; kAreaMappings[i].name != NULL; i++) {
|
||||||
|
kAreaMappingMap[kAreaMappings[i].index] = kAreaMappings[i].name;
|
||||||
|
}
|
||||||
|
|
||||||
Syscall *create = get_syscall("_kern_create_area");
|
Syscall *create = get_syscall("_kern_create_area");
|
||||||
create->GetParameter("address")->SetInOut(true);
|
create->GetParameter("address")->SetInOut(true);
|
||||||
@@ -97,6 +108,8 @@ patch_area()
|
|||||||
new EnumTypeHandler(kAddressSpecsMap));
|
new EnumTypeHandler(kAddressSpecsMap));
|
||||||
map_file->GetParameter("protection")->SetHandler(
|
map_file->GetParameter("protection")->SetHandler(
|
||||||
new FlagsTypeHandler(kAreaProtectionFlags));
|
new FlagsTypeHandler(kAreaProtectionFlags));
|
||||||
|
map_file->GetParameter("mapping")->SetHandler(
|
||||||
|
new EnumTypeHandler(kAreaMappingMap));
|
||||||
|
|
||||||
Syscall *set_memory_protection = get_syscall("_kern_set_memory_protection");
|
Syscall *set_memory_protection = get_syscall("_kern_set_memory_protection");
|
||||||
set_memory_protection->GetParameter("protection")->SetHandler(
|
set_memory_protection->GetParameter("protection")->SetHandler(
|
||||||
|
|||||||
Reference in New Issue
Block a user