From defc1ea34074e7882724c460260d307cdf981a70 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Fri, 27 Jun 2008 02:52:20 +0000 Subject: *: introduce and use FAST_FUNC: regparm on i386, otherwise no-on text data bss dec hex filename 808035 611 6868 815514 c719a busybox_old 804472 611 6868 811951 c63af busybox_unstripped --- libbb/xfuncs_printf.c | 96 +++++++++++++++++++++++++-------------------------- 1 file changed, 48 insertions(+), 48 deletions(-) (limited to 'libbb/xfuncs_printf.c') diff --git a/libbb/xfuncs_printf.c b/libbb/xfuncs_printf.c index 105939b5e..108e14043 100644 --- a/libbb/xfuncs_printf.c +++ b/libbb/xfuncs_printf.c @@ -33,7 +33,7 @@ * included after these prototypes in libbb.h, all is well. */ // Warn if we can't allocate size bytes of memory. -void *malloc_or_warn(size_t size) +void* FAST_FUNC malloc_or_warn(size_t size) { void *ptr = malloc(size); if (ptr == NULL && size != 0) @@ -42,7 +42,7 @@ void *malloc_or_warn(size_t size) } // Die if we can't allocate size bytes of memory. -void *xmalloc(size_t size) +void* FAST_FUNC xmalloc(size_t size) { void *ptr = malloc(size); if (ptr == NULL && size != 0) @@ -53,7 +53,7 @@ void *xmalloc(size_t size) // Die if we can't resize previously allocated memory. (This returns a pointer // to the new memory, which may or may not be the same as the old memory. // It'll copy the contents to a new chunk and free the old one if necessary.) -void *xrealloc(void *ptr, size_t size) +void* FAST_FUNC xrealloc(void *ptr, size_t size) { ptr = realloc(ptr, size); if (ptr == NULL && size != 0) @@ -63,7 +63,7 @@ void *xrealloc(void *ptr, size_t size) #endif /* DMALLOC */ // Die if we can't allocate and zero size bytes of memory. -void *xzalloc(size_t size) +void* FAST_FUNC xzalloc(size_t size) { void *ptr = xmalloc(size); memset(ptr, 0, size); @@ -71,7 +71,7 @@ void *xzalloc(size_t size) } // Die if we can't copy a string to freshly allocated memory. -char * xstrdup(const char *s) +char* FAST_FUNC xstrdup(const char *s) { char *t; @@ -88,7 +88,7 @@ char * xstrdup(const char *s) // Die if we can't allocate n+1 bytes (space for the null terminator) and copy // the (possibly truncated to length n) string into it. -char *xstrndup(const char *s, int n) +char* FAST_FUNC xstrndup(const char *s, int n) { int m; char *t; @@ -112,9 +112,9 @@ char *xstrndup(const char *s, int n) return memcpy(t, s, n); } -// Die if we can't open a file and return a FILE * to it. +// 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 *xfopen(const char *path, const char *mode) +FILE* FAST_FUNC xfopen(const char *path, const char *mode) { FILE *fp = fopen(path, mode); if (fp == NULL) @@ -123,7 +123,7 @@ FILE *xfopen(const char *path, const char *mode) } // Die if we can't open a file and return a fd. -int xopen3(const char *pathname, int flags, int mode) +int FAST_FUNC xopen3(const char *pathname, int flags, int mode) { int ret; @@ -135,13 +135,13 @@ int xopen3(const char *pathname, int flags, int mode) } // Die if we can't open an existing file and return a fd. -int xopen(const char *pathname, int flags) +int FAST_FUNC xopen(const char *pathname, int flags) { return xopen3(pathname, flags, 0666); } // Warn if we can't open a file and return a fd. -int open3_or_warn(const char *pathname, int flags, int mode) +int FAST_FUNC open3_or_warn(const char *pathname, int flags, int mode) { int ret; @@ -153,24 +153,24 @@ int open3_or_warn(const char *pathname, int flags, int mode) } // Warn if we can't open a file and return a fd. -int open_or_warn(const char *pathname, int flags) +int FAST_FUNC open_or_warn(const char *pathname, int flags) { return open3_or_warn(pathname, flags, 0666); } -void xunlink(const char *pathname) +void FAST_FUNC xunlink(const char *pathname) { if (unlink(pathname)) bb_perror_msg_and_die("can't remove file '%s'", pathname); } -void xrename(const char *oldpath, const char *newpath) +void FAST_FUNC xrename(const char *oldpath, const char *newpath) { if (rename(oldpath, newpath)) bb_perror_msg_and_die("can't move '%s' to '%s'", oldpath, newpath); } -int rename_or_warn(const char *oldpath, const char *newpath) +int FAST_FUNC rename_or_warn(const char *oldpath, const char *newpath) { int n = rename(oldpath, newpath); if (n) @@ -178,20 +178,20 @@ int rename_or_warn(const char *oldpath, const char *newpath) return n; } -void xpipe(int filedes[2]) +void FAST_FUNC xpipe(int filedes[2]) { if (pipe(filedes)) bb_perror_msg_and_die("can't create pipe"); } -void xdup2(int from, int to) +void FAST_FUNC xdup2(int from, int to) { if (dup2(from, to) != to) bb_perror_msg_and_die("can't duplicate file descriptor"); } // "Renumber" opened fd -void xmove_fd(int from, int to) +void FAST_FUNC xmove_fd(int from, int to) { if (from == to) return; @@ -200,7 +200,7 @@ void xmove_fd(int from, int to) } // Die with an error message if we can't write the entire buffer. -void xwrite(int fd, const void *buf, size_t count) +void FAST_FUNC xwrite(int fd, const void *buf, size_t count) { if (count) { ssize_t size = full_write(fd, buf, count); @@ -210,7 +210,7 @@ void xwrite(int fd, const void *buf, size_t count) } // Die with an error message if we can't lseek to the right spot. -off_t xlseek(int fd, off_t offset, int whence) +off_t FAST_FUNC xlseek(int fd, off_t offset, int whence) { off_t off = lseek(fd, offset, whence); if (off == (off_t)-1) { @@ -221,8 +221,8 @@ off_t xlseek(int fd, off_t offset, int whence) return off; } -// Die with supplied filename if this FILE * has ferror set. -void die_if_ferror(FILE *fp, const char *fn) +// Die with supplied filename if this FILE* has ferror set. +void FAST_FUNC die_if_ferror(FILE *fp, const char *fn) { if (ferror(fp)) { /* ferror doesn't set useful errno */ @@ -231,13 +231,13 @@ void die_if_ferror(FILE *fp, const char *fn) } // Die with an error message if stdout has ferror set. -void die_if_ferror_stdout(void) +void FAST_FUNC die_if_ferror_stdout(void) { die_if_ferror(stdout, bb_msg_standard_output); } // Die with an error message if we have trouble flushing stdout. -void xfflush_stdout(void) +void FAST_FUNC xfflush_stdout(void) { if (fflush(stdout)) { bb_perror_msg_and_die(bb_msg_standard_output); @@ -245,7 +245,7 @@ void xfflush_stdout(void) } -int bb_putchar(int ch) +int FAST_FUNC bb_putchar(int ch) { /* time.c needs putc(ch, stdout), not putchar(ch). * it does "stdout = stderr;", but then glibc's putchar() @@ -253,9 +253,9 @@ int bb_putchar(int ch) return putc(ch, stdout); } -/* Die with an error message if we can't copy an entire FILE * to stdout, +/* Die with an error message if we can't copy an entire FILE* to stdout, * then close that file. */ -void xprint_and_close_file(FILE *file) +void FAST_FUNC xprint_and_close_file(FILE *file) { fflush(stdout); // copyfd outputs error messages for us. @@ -267,7 +267,7 @@ void xprint_and_close_file(FILE *file) // Die with an error message if we can't malloc() enough space and do an // sprintf() into that space. -char *xasprintf(const char *format, ...) +char* FAST_FUNC xasprintf(const char *format, ...) { va_list p; int r; @@ -295,7 +295,7 @@ char *xasprintf(const char *format, ...) } #if 0 /* If we will ever meet a libc which hasn't [f]dprintf... */ -int fdprintf(int fd, const char *format, ...) +int FAST_FUNC fdprintf(int fd, const char *format, ...) { va_list p; int r; @@ -327,7 +327,7 @@ int fdprintf(int fd, const char *format, ...) } #endif -void xsetenv(const char *key, const char *value) +void FAST_FUNC xsetenv(const char *key, const char *value) { if (setenv(key, value, 1)) bb_error_msg_and_die(bb_msg_memory_exhausted); @@ -336,32 +336,32 @@ void xsetenv(const char *key, const char *value) // Die with an error message if we can't set gid. (Because resource limits may // limit this user to a given number of processes, and if that fills up the // setgid() will fail and we'll _still_be_root_, which is bad.) -void xsetgid(gid_t gid) +void FAST_FUNC xsetgid(gid_t gid) { if (setgid(gid)) bb_perror_msg_and_die("setgid"); } // Die with an error message if we can't set uid. (See xsetgid() for why.) -void xsetuid(uid_t uid) +void FAST_FUNC xsetuid(uid_t uid) { if (setuid(uid)) bb_perror_msg_and_die("setuid"); } // Die if we can't chdir to a new path. -void xchdir(const char *path) +void FAST_FUNC xchdir(const char *path) { if (chdir(path)) bb_perror_msg_and_die("chdir(%s)", path); } -void xchroot(const char *path) +void FAST_FUNC xchroot(const char *path) { if (chroot(path)) bb_perror_msg_and_die("can't change root directory to %s", path); } // Print a warning message if opendir() fails, but don't die. -DIR *warn_opendir(const char *path) +DIR* FAST_FUNC warn_opendir(const char *path) { DIR *dp; @@ -372,7 +372,7 @@ DIR *warn_opendir(const char *path) } // Die with an error message if opendir() fails. -DIR *xopendir(const char *path) +DIR* FAST_FUNC xopendir(const char *path) { DIR *dp; @@ -383,7 +383,7 @@ DIR *xopendir(const char *path) } // Die with an error message if we can't open a new socket. -int xsocket(int domain, int type, int protocol) +int FAST_FUNC xsocket(int domain, int type, int protocol) { int r = socket(domain, type, protocol); @@ -404,20 +404,20 @@ USE_FEATURE_IPV6(if (domain == AF_INET6) s = "INET6";) } // Die with an error message if we can't bind a socket to an address. -void xbind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen) +void FAST_FUNC xbind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen) { if (bind(sockfd, my_addr, addrlen)) bb_perror_msg_and_die("bind"); } // Die with an error message if we can't listen for connections on a socket. -void xlisten(int s, int backlog) +void FAST_FUNC xlisten(int s, int backlog) { if (listen(s, backlog)) bb_perror_msg_and_die("listen"); } /* Die with an error message if sendto failed. * Return bytes sent otherwise */ -ssize_t xsendto(int s, const void *buf, size_t len, const struct sockaddr *to, +ssize_t FAST_FUNC xsendto(int s, const void *buf, size_t len, const struct sockaddr *to, socklen_t tolen) { ssize_t ret = sendto(s, buf, len, 0, to, tolen); @@ -430,14 +430,14 @@ ssize_t xsendto(int s, const void *buf, size_t len, const struct sockaddr *to, } // xstat() - a stat() which dies on failure with meaningful error message -void xstat(const char *name, struct stat *stat_buf) +void FAST_FUNC xstat(const char *name, struct stat *stat_buf) { if (stat(name, stat_buf)) bb_perror_msg_and_die("can't stat '%s'", name); } // selinux_or_die() - die if SELinux is disabled. -void selinux_or_die(void) +void FAST_FUNC selinux_or_die(void) { #if ENABLE_SELINUX int rc = is_selinux_enabled(); @@ -451,7 +451,7 @@ void selinux_or_die(void) #endif } -int ioctl_or_perror_and_die(int fd, unsigned request, void *argp, const char *fmt,...) +int FAST_FUNC ioctl_or_perror_and_die(int fd, unsigned request, void *argp, const char *fmt,...) { int ret; va_list p; @@ -467,7 +467,7 @@ int ioctl_or_perror_and_die(int fd, unsigned request, void *argp, const char *fm return ret; } -int ioctl_or_perror(int fd, unsigned request, void *argp, const char *fmt,...) +int FAST_FUNC ioctl_or_perror(int fd, unsigned request, void *argp, const char *fmt,...) { va_list p; int ret = ioctl(fd, request, argp); @@ -481,7 +481,7 @@ int ioctl_or_perror(int fd, unsigned request, void *argp, const char *fmt,...) } #if ENABLE_IOCTL_HEX2STR_ERROR -int bb_ioctl_or_warn(int fd, unsigned request, void *argp, const char *ioctl_name) +int FAST_FUNC bb_ioctl_or_warn(int fd, unsigned request, void *argp, const char *ioctl_name) { int ret; @@ -490,7 +490,7 @@ int bb_ioctl_or_warn(int fd, unsigned request, void *argp, const char *ioctl_nam bb_simple_perror_msg(ioctl_name); return ret; } -int bb_xioctl(int fd, unsigned request, void *argp, const char *ioctl_name) +int FAST_FUNC bb_xioctl(int fd, unsigned request, void *argp, const char *ioctl_name) { int ret; @@ -500,7 +500,7 @@ int bb_xioctl(int fd, unsigned request, void *argp, const char *ioctl_name) return ret; } #else -int bb_ioctl_or_warn(int fd, unsigned request, void *argp) +int FAST_FUNC bb_ioctl_or_warn(int fd, unsigned request, void *argp) { int ret; @@ -509,7 +509,7 @@ int bb_ioctl_or_warn(int fd, unsigned request, void *argp) bb_perror_msg("ioctl %#x failed", request); return ret; } -int bb_xioctl(int fd, unsigned request, void *argp) +int FAST_FUNC bb_xioctl(int fd, unsigned request, void *argp) { int ret; -- cgit v1.2.3