mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 12:38:12 +00:00
LibC: Communicate malloc() and free() operations to UserspaceEmulator
Use the sneaky SALC secret mechanism of UserspaceEmulator to inform it about malloc operations.
This commit is contained in:
parent
c314292319
commit
4aa81a4fd9
2 changed files with 24 additions and 0 deletions
|
@ -281,6 +281,10 @@ static void* malloc_impl(size_t size)
|
|||
#ifdef MALLOC_DEBUG
|
||||
dbgprintf("LibC: allocated %p (chunk in block %p, size %zu)\n", ptr, block, block->bytes_per_chunk());
|
||||
#endif
|
||||
|
||||
// Tell UserspaceEmulator about this malloc()
|
||||
send_secret_data_to_userspace_emulator(1, size, reinterpret_cast<FlatPtr>(ptr));
|
||||
|
||||
if (s_scrub_malloc)
|
||||
memset(ptr, MALLOC_SCRUB_BYTE, block->m_size);
|
||||
return ptr;
|
||||
|
@ -382,6 +386,9 @@ void free(void* ptr)
|
|||
if (s_profiling)
|
||||
perf_event(PERF_EVENT_FREE, reinterpret_cast<FlatPtr>(ptr), 0);
|
||||
free_impl(ptr);
|
||||
|
||||
// Tell UserspaceEmulator about this free()
|
||||
send_secret_data_to_userspace_emulator(2, reinterpret_cast<FlatPtr>(ptr), 0);
|
||||
}
|
||||
|
||||
void* calloc(size_t count, size_t size)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue