diff options
| author | Denys Vlasenko <vda.linux@googlemail.com> | 2020-12-14 18:49:23 +0100 |
|---|---|---|
| committer | Denys Vlasenko <vda.linux@googlemail.com> | 2020-12-14 18:54:30 +0100 |
| commit | c7b858ff8d2e8b2d785f74b2d319bc9c839f4faa (patch) | |
| tree | 9ad109d5999444dfb3a281678b6b63d2570a76cd /include | |
| parent | fd3c512f88d43e6633bd3c3110cfa0bb321adaa8 (diff) | |
| download | busybox-w32-c7b858ff8d2e8b2d785f74b2d319bc9c839f4faa.tar.gz busybox-w32-c7b858ff8d2e8b2d785f74b2d319bc9c839f4faa.tar.bz2 busybox-w32-c7b858ff8d2e8b2d785f74b2d319bc9c839f4faa.zip | |
libbb: add and use infrastructure for fixed page size optimization
function old new delta
procps_scan 1121 1118 -3
getpagesize 6 - -6
rpm_main 1037 1027 -10
rpm2cpio_main 120 110 -10
ptok 38 21 -17
time_main 1282 1261 -21
mkswap_main 317 278 -39
------------------------------------------------------------------------------
(add/remove: 0/2 grow/shrink: 0/6 up/down: 0/-106) Total: -106 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'include')
| -rw-r--r-- | include/libbb.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/include/libbb.h b/include/libbb.h index a74b3119f..db5bf7a51 100644 --- a/include/libbb.h +++ b/include/libbb.h | |||
| @@ -391,6 +391,24 @@ void *mmap_read(int fd, size_t size) FAST_FUNC; | |||
| 391 | void *mmap_anon(size_t size) FAST_FUNC; | 391 | void *mmap_anon(size_t size) FAST_FUNC; |
| 392 | void *xmmap_anon(size_t size) FAST_FUNC; | 392 | void *xmmap_anon(size_t size) FAST_FUNC; |
| 393 | 393 | ||
| 394 | #if defined(__x86_64__) || defined(i386) | ||
| 395 | # define BB_ARCH_FIXED_PAGESIZE 4096 | ||
| 396 | #else /* if defined(ARCH) */ | ||
| 397 | /* add you favorite arch today! */ | ||
| 398 | #endif | ||
| 399 | |||
| 400 | #if defined BB_ARCH_FIXED_PAGESIZE | ||
| 401 | # define IF_VARIABLE_ARCH_PAGESIZE(...) /*nothing*/ | ||
| 402 | # define bb_getpagesize() BB_ARCH_FIXED_PAGESIZE | ||
| 403 | # define INIT_PAGESIZE(var) ((void)0) | ||
| 404 | # define cached_pagesize(var) BB_ARCH_FIXED_PAGESIZE | ||
| 405 | #else | ||
| 406 | # define IF_VARIABLE_ARCH_PAGESIZE(...) __VA_ARGS__ | ||
| 407 | # define bb_getpagesize() getpagesize() | ||
| 408 | # define INIT_PAGESIZE(var) ((var) = getpagesize()) | ||
| 409 | # define cached_pagesize(var) (var) | ||
| 410 | #endif | ||
| 411 | |||
| 394 | 412 | ||
| 395 | //TODO: supply a pointer to char[11] buffer (avoid statics)? | 413 | //TODO: supply a pointer to char[11] buffer (avoid statics)? |
| 396 | extern const char *bb_mode_string(mode_t mode) FAST_FUNC; | 414 | extern const char *bb_mode_string(mode_t mode) FAST_FUNC; |
