libbb: create and use mmap() helpers

function                                             old     new   delta
mmap_anon                                              -      22     +22
mmap_read                                              -      21     +21
xmmap_anon                                             -      16     +16
rpm_gettags                                          465     447     -18
bb_full_fd_action                                    498     480     -18
uevent_main                                          337     310     -27
------------------------------------------------------------------------------
(add/remove: 3/0 grow/shrink: 0/3 up/down: 59/-63)             Total: -4 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko
2020-12-14 18:25:28 +01:00
parent db793480cb
commit fd3c512f88
6 changed files with 28 additions and 12 deletions

View File

@ -111,6 +111,27 @@ void* FAST_FUNC xmemdup(const void *s, int n)
return memcpy(xmalloc(n), s, n);
}
void* FAST_FUNC mmap_read(int fd, size_t size)
{
return mmap(NULL, size, PROT_READ, MAP_PRIVATE, fd, 0);
}
void* FAST_FUNC mmap_anon(size_t size)
{
return mmap(NULL, size,
PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS,
/* ignored: */ -1, 0);
}
void* FAST_FUNC xmmap_anon(size_t size)
{
void *p = mmap_anon(size);
if (p == MAP_FAILED)
bb_die_memory_exhausted();
return p;
}
// Die if we can't open a file and return a FILE* to it.
// Notice we haven't got xfread(), This is for use with fscanf() and friends.
FILE* FAST_FUNC xfopen(const char *path, const char *mode)