[PATCH v9 0/13] implement dlmem() function
Stas Sergeev
stsp2@yandex.ru
Sat Mar 18 16:50:57 GMT 2023
Changes in v9:
- use "zero-copy" machinery instead of memcpy(). It works on linux 5.13
and newer, falling back to memcpy() otherwise. Suggested by Florian Weimer.
- implement fdlopen() using the above functionality. It is in a new test
tst-dlmem-fdlopen. Suggested by Carlos O'Donell.
- add DLMEM_DONTREPLACE flag that doesn't replace the backing-store mapping.
It switches back to memcpy(). Test-case is called tst-dlmem-shm.
Changes in v8:
- drop audit machinery and instead add an extra arg (optional pointer
to a struct) to dlmem() itself that allows to install a custom premap
callback or to specify nsid. Audit machinery was meant to allow
controling over the pre-existing APIs like dlopen(), but if someone
ever needs such extensions to dlopen(), he can trivially implement
dlopen() on top of dlmem().
Changes in v7:
- add _dl_audit_premap audit extension and its usage example
Changes in v6:
- use __strdup("") for l_name as suggested by Andreas Schwab
Changes in v5:
- added _dl_audit_premap_dlmem audit extension for dlmem
- added tst-auditmod-dlmem.c test-case that feeds shm fd to dlmem()
Changes in v4:
- re-target to GLIBC_2.38
- add tst-auditdlmem.c test-case to test auditing
- drop length page-aligning in tst-dlmem: mmap() aligns length on its own
- bugfix: in do_mmapcpy() allow mmaps past end of buffer
Changes in v3:
- Changed prototype of dlmem() (and all the internal machinery) to
use "const unsigned char *buffer" instead of "const char *buffer".
Changes in v2:
- use <support/test-driver.c> instead of "../test-skeleton.c"
- re-target to GLIBC_2.37
- update all libc.abilist files
--
2.37.2
More information about the Libc-alpha
mailing list