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>
This commit is contained in:
parent
fd3c512f88
commit
c7b858ff8d
7 changed files with 37 additions and 20 deletions
|
@ -31,7 +31,8 @@ struct globals {
|
|||
int fd;
|
||||
unsigned height;
|
||||
unsigned row;
|
||||
unsigned pagesize;
|
||||
IF_VARIABLE_ARCH_PAGESIZE(unsigned pagesize;)
|
||||
#define G_pagesize cached_pagesize(G.pagesize)
|
||||
uint8_t *baseaddr;
|
||||
uint8_t *current_byte;
|
||||
uint8_t *eof_byte;
|
||||
|
@ -46,15 +47,6 @@ struct globals {
|
|||
SET_PTR_TO_GLOBALS(xzalloc(sizeof(G))); \
|
||||
} while (0)
|
||||
|
||||
//TODO: move to libbb
|
||||
#if defined(__x86_64__) || defined(i386)
|
||||
# define G_pagesize 4096
|
||||
# define INIT_PAGESIZE() ((void)0)
|
||||
#else
|
||||
# define G_pagesize (G.pagesize)
|
||||
# define INIT_PAGESIZE() ((void)(G.pagesize = getpagesize()))
|
||||
#endif
|
||||
|
||||
/* hopefully there aren't arches with PAGE_SIZE > 64k */
|
||||
#define G_mapsize (64*1024)
|
||||
|
||||
|
@ -262,7 +254,7 @@ int hexedit_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
|
|||
int hexedit_main(int argc UNUSED_PARAM, char **argv)
|
||||
{
|
||||
INIT_G();
|
||||
INIT_PAGESIZE();
|
||||
INIT_PAGESIZE(G.pagesize);
|
||||
|
||||
get_terminal_width_height(-1, NULL, &G.height);
|
||||
if (1) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue