mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 14:17:36 +00:00
UserspaceEmulator: Implement sys$set_mmap_name()
This commit is contained in:
parent
b940dd4fa8
commit
735a6482ac
2 changed files with 10 additions and 2 deletions
|
@ -765,9 +765,16 @@ int Emulator::virt$clock_settime(uint32_t clock_id, FlatPtr user_ts)
|
||||||
return rc;
|
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(¶ms, 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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -68,6 +68,7 @@ public:
|
||||||
void set_malloc_metadata(Badge<MallocTracer>, NonnullOwnPtr<MallocRegionMetadata> metadata) { m_malloc_metadata = move(metadata); }
|
void set_malloc_metadata(Badge<MallocTracer>, NonnullOwnPtr<MallocRegionMetadata> metadata) { m_malloc_metadata = move(metadata); }
|
||||||
|
|
||||||
const String& name() const { return m_name; }
|
const String& name() const { return m_name; }
|
||||||
|
void set_name(String name) { m_name = move(name); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
MmapRegion(u32 base, u32 size, int prot, u8* data, u8* shadow_data);
|
MmapRegion(u32 base, u32 size, int prot, u8* data, u8* shadow_data);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue