summaryrefslogtreecommitdiffhomepage
path: root/include/libbb.h
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-04-21 03:23:59 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-04-21 03:23:59 +0000
commit5bb2fc2dc1c2239e2f593a69a47ef315cf21c0d9 (patch)
tree9ba2cf7e506ecd764d624b655ba8478ea61b998a /include/libbb.h
parent01eaee9309c09ca5d7dc6ef3b2e96084affdab30 (diff)
tentative fix for ppc64 problems with ioctl.
Zero code size impact.
Diffstat (limited to 'include/libbb.h')
-rw-r--r--include/libbb.h13
1 files changed, 7 insertions, 6 deletions
diff --git a/include/libbb.h b/include/libbb.h
index f9f28f983..7a8bfdffb 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -1019,16 +1019,17 @@ extern int update_passwd(const char *filename, const char *username,
/* NB: typically you want to pass fd 0, not 1. Think 'applet | grep something' */
int get_terminal_width_height(int fd, int *width, int *height);
-int ioctl_or_perror(int fd, int request, void *argp, const char *fmt,...) __attribute__ ((format (printf, 4, 5)));
-int ioctl_or_perror_and_die(int fd, int request, void *argp, const char *fmt,...) __attribute__ ((format (printf, 4, 5)));
+/* NB: "unsigned request" is crucial! "int request" will break some arches! */
+int ioctl_or_perror(int fd, unsigned request, void *argp, const char *fmt,...) __attribute__ ((format (printf, 4, 5)));
+int ioctl_or_perror_and_die(int fd, unsigned request, void *argp, const char *fmt,...) __attribute__ ((format (printf, 4, 5)));
#if ENABLE_IOCTL_HEX2STR_ERROR
-int bb_ioctl_or_warn(int fd, int request, void *argp, const char *ioctl_name);
-int bb_xioctl(int fd, int request, void *argp, const char *ioctl_name);
+int bb_ioctl_or_warn(int fd, unsigned request, void *argp, const char *ioctl_name);
+int bb_xioctl(int fd, unsigned request, void *argp, const char *ioctl_name);
#define ioctl_or_warn(fd,request,argp) bb_ioctl_or_warn(fd,request,argp,#request)
#define xioctl(fd,request,argp) bb_xioctl(fd,request,argp,#request)
#else
-int bb_ioctl_or_warn(int fd, int request, void *argp);
-int bb_xioctl(int fd, int request, void *argp);
+int bb_ioctl_or_warn(int fd, unsigned request, void *argp);
+int bb_xioctl(int fd, unsigned request, void *argp);
#define ioctl_or_warn(fd,request,argp) bb_ioctl_or_warn(fd,request,argp)
#define xioctl(fd,request,argp) bb_xioctl(fd,request,argp)
#endif