aboutsummaryrefslogtreecommitdiff
path: root/libbb
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2009-07-05 03:34:12 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2009-07-05 03:34:12 +0200
commit9b1b62adc4e4c1e80d9f72180c6b7b1eaef9f95a (patch)
tree65a7b5ebb093903fd030aecda6ee204660d458d4 /libbb
parentb22bbfffec182997827b0a71eeb93ddafbde602c (diff)
downloadbusybox-w32-9b1b62adc4e4c1e80d9f72180c6b7b1eaef9f95a.tar.gz
busybox-w32-9b1b62adc4e4c1e80d9f72180c6b7b1eaef9f95a.tar.bz2
busybox-w32-9b1b62adc4e4c1e80d9f72180c6b7b1eaef9f95a.zip
Patches to enable FreeBSD build
platform.h: fix wrong check for endianness, fix lchown aliasing to chown on uclibc. Code seems to not be affected in my testing. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'libbb')
-rw-r--r--libbb/bb_askpass.c3
-rw-r--r--libbb/loop.c39
2 files changed, 26 insertions, 16 deletions
diff --git a/libbb/bb_askpass.c b/libbb/bb_askpass.c
index c0dcf0c5f..073175c1f 100644
--- a/libbb/bb_askpass.c
+++ b/libbb/bb_askpass.c
@@ -37,6 +37,9 @@ char* FAST_FUNC bb_ask(const int fd, int timeout, const char *prompt)
37 tcgetattr(fd, &oldtio); 37 tcgetattr(fd, &oldtio);
38 tcflush(fd, TCIFLUSH); 38 tcflush(fd, TCIFLUSH);
39 tio = oldtio; 39 tio = oldtio;
40#ifndef IUCLC
41# define IUCLC 0
42#endif
40 tio.c_iflag &= ~(IUCLC|IXON|IXOFF|IXANY); 43 tio.c_iflag &= ~(IUCLC|IXON|IXOFF|IXANY);
41 tio.c_lflag &= ~(ECHO|ECHOE|ECHOK|ECHONL|TOSTOP); 44 tio.c_lflag &= ~(ECHO|ECHOE|ECHOK|ECHONL|TOSTOP);
42 tcsetattr_stdin_TCSANOW(&tio); 45 tcsetattr_stdin_TCSANOW(&tio);
diff --git a/libbb/loop.c b/libbb/loop.c
index 7d2b420be..24dab1ac0 100644
--- a/libbb/loop.c
+++ b/libbb/loop.c
@@ -7,27 +7,35 @@
7 * 7 *
8 * Licensed under the GPL v2 or later, see the file LICENSE in this tarball. 8 * Licensed under the GPL v2 or later, see the file LICENSE in this tarball.
9 */ 9 */
10
11#include "libbb.h" 10#include "libbb.h"
12
13/* For 2.6, use the cleaned up header to get the 64 bit API. */
14#include <linux/version.h> 11#include <linux/version.h>
12
15#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) 13#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
16#include <linux/loop.h> 14
15/* For 2.6, use the cleaned up header to get the 64 bit API. */
16/* linux/loop.h relies on __u64. Make sure we have that as a proper type
17 * until userspace is widely fixed. */
18# if (defined __INTEL_COMPILER && !defined __GNUC__) \
19 || (defined __GNUC__ && defined __STRICT_ANSI__)
20__extension__ typedef long long __s64;
21__extension__ typedef unsigned long long __u64;
22# endif
23# include <linux/loop.h>
17typedef struct loop_info64 bb_loop_info; 24typedef struct loop_info64 bb_loop_info;
18#define BB_LOOP_SET_STATUS LOOP_SET_STATUS64 25# define BB_LOOP_SET_STATUS LOOP_SET_STATUS64
19#define BB_LOOP_GET_STATUS LOOP_GET_STATUS64 26# define BB_LOOP_GET_STATUS LOOP_GET_STATUS64
20 27
21/* For 2.4 and earlier, use the 32 bit API (and don't trust the headers) */
22#else 28#else
23/* Stuff stolen from linux/loop.h for 2.4 and earlier kernels*/ 29
24#include <linux/posix_types.h> 30/* For 2.4 and earlier, use the 32 bit API (and don't trust the headers) */
25#define LO_NAME_SIZE 64 31/* Stuff stolen from linux/loop.h for 2.4 and earlier kernels */
26#define LO_KEY_SIZE 32 32# include <linux/posix_types.h>
27#define LOOP_SET_FD 0x4C00 33# define LO_NAME_SIZE 64
28#define LOOP_CLR_FD 0x4C01 34# define LO_KEY_SIZE 32
29#define BB_LOOP_SET_STATUS 0x4C02 35# define LOOP_SET_FD 0x4C00
30#define BB_LOOP_GET_STATUS 0x4C03 36# define LOOP_CLR_FD 0x4C01
37# define BB_LOOP_SET_STATUS 0x4C02
38# define BB_LOOP_GET_STATUS 0x4C03
31typedef struct { 39typedef struct {
32 int lo_number; 40 int lo_number;
33 __kernel_dev_t lo_device; 41 __kernel_dev_t lo_device;
@@ -60,7 +68,6 @@ char* FAST_FUNC query_loop(const char *device)
60 return dev; 68 return dev;
61} 69}
62 70
63
64int FAST_FUNC del_loop(const char *device) 71int FAST_FUNC del_loop(const char *device)
65{ 72{
66 int fd, rc; 73 int fd, rc;