mirror of
https://git.busybox.net/busybox.git
synced 2024-12-19 19:33:22 +08:00
55f7912dda
function old new delta alloc_dumper - 26 +26 hexdump_main 600 601 +1 static.done 1 - -1 static.ateof 1 - -1 bb_dump_vflag 1 - -1 static.savp 4 - -4 static.nextfs 4 - -4 static.curp 4 - -4 exitval 4 - -4 endfu 4 - -4 bb_dump_length 4 - -4 bb_dump_fshead 4 - -4 bb_dump_blocksize 4 - -4 _argv 4 - -4 bb_dump_add 365 358 -7 savaddress 8 - -8 eaddress 8 - -8 bb_dump_skip 8 - -8 address 8 - -8 bb_dump_dump 2748 2672 -76 next 538 445 -93 ------------------------------------------------------------------------------ (add/remove: 1/16 grow/shrink: 1/3 up/down: 27/-247) Total: -220 bytes text data bss dec hex filename 789458 607 6764 796829 c289d busybox_old 789309 601 6696 796606 c27be busybox_unstripped
61 lines
1.7 KiB
C
61 lines
1.7 KiB
C
/* vi: set sw=4 ts=4: */
|
|
|
|
#if __GNUC_PREREQ(4,1)
|
|
# pragma GCC visibility push(hidden)
|
|
#endif
|
|
|
|
#define F_IGNORE 0x01 /* %_A */
|
|
#define F_SETREP 0x02 /* rep count set, not default */
|
|
#define F_ADDRESS 0x001 /* print offset */
|
|
#define F_BPAD 0x002 /* blank pad */
|
|
#define F_C 0x004 /* %_c */
|
|
#define F_CHAR 0x008 /* %c */
|
|
#define F_DBL 0x010 /* %[EefGf] */
|
|
#define F_INT 0x020 /* %[di] */
|
|
#define F_P 0x040 /* %_p */
|
|
#define F_STR 0x080 /* %s */
|
|
#define F_U 0x100 /* %_u */
|
|
#define F_UINT 0x200 /* %[ouXx] */
|
|
#define F_TEXT 0x400 /* no conversions */
|
|
|
|
enum dump_vflag_t { ALL, DUP, FIRST, WAIT }; /* -v values */
|
|
|
|
typedef struct PR {
|
|
struct PR *nextpr; /* next print unit */
|
|
unsigned flags; /* flag values */
|
|
int bcnt; /* byte count */
|
|
char *cchar; /* conversion character */
|
|
char *fmt; /* printf format */
|
|
char *nospace; /* no whitespace version */
|
|
} PR;
|
|
|
|
typedef struct FU {
|
|
struct FU *nextfu; /* next format unit */
|
|
struct PR *nextpr; /* next print unit */
|
|
unsigned flags; /* flag values */
|
|
int reps; /* repetition count */
|
|
int bcnt; /* byte count */
|
|
char *fmt; /* format string */
|
|
} FU;
|
|
|
|
typedef struct FS { /* format strings */
|
|
struct FS *nextfs; /* linked list of format strings */
|
|
struct FU *nextfu; /* linked list of format units */
|
|
int bcnt;
|
|
} FS;
|
|
|
|
typedef struct dumper_t {
|
|
off_t dump_skip; /* bytes to skip */
|
|
int dump_length; /* max bytes to read */
|
|
smallint dump_vflag; /*enum dump_vflag_t*/
|
|
FS *fshead;
|
|
} dumper_t;
|
|
|
|
dumper_t* alloc_dumper(void) FAST_FUNC;
|
|
extern void bb_dump_add(dumper_t *dumper, const char *fmt) FAST_FUNC;
|
|
extern int bb_dump_dump(dumper_t *dumper, char **argv) FAST_FUNC;
|
|
|
|
#if __GNUC_PREREQ(4,1)
|
|
# pragma GCC visibility pop
|
|
#endif
|