1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 23:47:45 +00:00

UserspaceEmulator: Implement sys$set_mmap_name()

This commit is contained in:
Andreas Kling 2021-03-09 10:55:37 +01:00
parent b940dd4fa8
commit 735a6482ac
2 changed files with 10 additions and 2 deletions

View file

@ -765,9 +765,16 @@ int Emulator::virt$clock_settime(uint32_t clock_id, FlatPtr user_ts)
return rc;
}
int Emulator::virt$set_mmap_name(FlatPtr)
int Emulator::virt$set_mmap_name(FlatPtr params_addr)
{
// FIXME: Implement.
Syscall::SC_set_mmap_name_params params {};
mmu().copy_from_vm(&params, params_addr, sizeof(params));
auto name = mmu().copy_buffer_from_vm((FlatPtr)params.name.characters, params.name.length);
auto* region = mmu().find_region({ 0x23, (FlatPtr)params.addr });
if (!region || !is<MmapRegion>(*region))
return -EINVAL;
static_cast<MmapRegion&>(*region).set_name(String::copy(name));
return 0;
}

View file

@ -68,6 +68,7 @@ public:
void set_malloc_metadata(Badge<MallocTracer>, NonnullOwnPtr<MallocRegionMetadata> metadata) { m_malloc_metadata = move(metadata); }
const String& name() const { return m_name; }
void set_name(String name) { m_name = move(name); }
private:
MmapRegion(u32 base, u32 size, int prot, u8* data, u8* shadow_data);