diff options
author | Dimitri John Ledkov <xnox@ubuntu.com> | 2019-10-31 15:59:02 -0700 |
---|---|---|
committer | Ben Hutchings <ben@decadent.org.uk> | 2019-11-05 00:42:26 +0000 |
commit | 547b7cf241d4bcf518759d06cff694b9738c57b0 (patch) | |
tree | 8707852a89e0eace8f370625a7bae51dd17a0c68 | |
parent | 52251e210c7a21068063fe16a3874903d3f1aa14 (diff) | |
download | klibc-547b7cf241d4bcf518759d06cff694b9738c57b0.tar.gz |
[klibc] loop: switch to linux/loop.h
linux/loop.h header is exported by linux, for userspace to
consume. This would prevent issues with struct sizes
incompatibilities.
References: https://bugs.launchpad.net/ubuntu/+source/klibc/+bug/1850184
Signed-off-by: Michael Hudson-Doyle <michael.hudson@ubuntu.com>
Signed-off-by: Adam Conrad <adconrad@ubuntu.com>
Signed-off-by: Dimitri John Ledkov <xnox@ubuntu.com>
[bwh: We were using dev_t instead of __kernel_old_dev_t, which doesn't
match on some architectures. Instead of fixing our definition first,
switch directly to the kernel's UAPI header.]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-rw-r--r-- | usr/utils/loop.h | 49 | ||||
-rw-r--r-- | usr/utils/losetup.c | 3 |
2 files changed, 1 insertions, 51 deletions
diff --git a/usr/utils/loop.h b/usr/utils/loop.h deleted file mode 100644 index 9abc2874c510e..0000000000000 --- a/usr/utils/loop.h +++ /dev/null @@ -1,49 +0,0 @@ -#define LO_CRYPT_NONE 0 -#define LO_CRYPT_XOR 1 -#define LO_CRYPT_DES 2 -#define LO_CRYPT_CRYPTOAPI 18 - -#define LOOP_SET_FD 0x4C00 -#define LOOP_CLR_FD 0x4C01 -#define LOOP_SET_STATUS 0x4C02 -#define LOOP_GET_STATUS 0x4C03 -#define LOOP_SET_STATUS64 0x4C04 -#define LOOP_GET_STATUS64 0x4C05 - -#define LO_NAME_SIZE 64 -#define LO_KEY_SIZE 32 - -struct loop_info { - int lo_number; - dev_t lo_device; - unsigned long lo_inode; - dev_t lo_rdevice; - int lo_offset; - int lo_encrypt_type; - int lo_encrypt_key_size; - int lo_flags; - char lo_name[LO_NAME_SIZE]; - unsigned char lo_encrypt_key[LO_KEY_SIZE]; - unsigned long lo_init[2]; - char reserved[4]; -}; - -/* - * Where to get __u8, __u32, __u64? Let us use unsigned char/int/long long - * and get punished when someone comes with 128-bit long longs. - */ -struct loop_info64 { - unsigned long long lo_device; - unsigned long long lo_inode; - unsigned long long lo_rdevice; - unsigned long long lo_offset; - unsigned long long lo_sizelimit; /* bytes, 0 == max available */ - unsigned int lo_number; - unsigned int lo_encrypt_type; - unsigned int lo_encrypt_key_size; - unsigned int lo_flags; - char lo_file_name[LO_NAME_SIZE]; - char lo_crypt_name[LO_NAME_SIZE]; - char lo_encrypt_key[LO_KEY_SIZE]; - unsigned long long lo_init[2]; -}; diff --git a/usr/utils/losetup.c b/usr/utils/losetup.c index 1788741222007..ebc6f360af6e8 100644 --- a/usr/utils/losetup.c +++ b/usr/utils/losetup.c @@ -18,8 +18,7 @@ #include <sys/mman.h> #include <sys/sysmacros.h> #include <stdarg.h> - -#include "loop.h" +#include <linux/loop.h> extern int verbose; extern char *progname; |