klibc-bot for Dimitri John Ledkov
2019-Nov-05 22:42 UTC
[klibc] [klibc:master] loop: switch to linux/loop.h
Commit-ID: 547b7cf241d4bcf518759d06cff694b9738c57b0 Gitweb: http://git.kernel.org/?p=libs/klibc/klibc.git;a=commit;h=547b7cf241d4bcf518759d06cff694b9738c57b0 Author: Dimitri John Ledkov <xnox at ubuntu.com> AuthorDate: Thu, 31 Oct 2019 15:59:02 -0700 Committer: Ben Hutchings <ben at decadent.org.uk> CommitDate: Tue, 5 Nov 2019 00:42:26 +0000 [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 at ubuntu.com> Signed-off-by: Adam Conrad <adconrad at ubuntu.com> Signed-off-by: Dimitri John Ledkov <xnox at 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 at decadent.org.uk> --- usr/utils/loop.h | 49 ------------------------------------------------- usr/utils/losetup.c | 3 +-- 2 files changed, 1 insertion(+), 51 deletions(-) diff --git a/usr/utils/loop.h b/usr/utils/loop.h deleted file mode 100644 index 9abc2874..00000000 --- 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 17887412..ebc6f360 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;
Maybe Matching Threads
- [patches] klibc review unsorted patch queue
- [klibc:master] losetup: Delete fallbacks to LOOP_{GET, SET}_STATUS
- [PATCH 2/2] loop: switch to linux/loop.h
- [PATCH 1/2] loop: fix loop_info struct
- [klibc:master] losetup: Fix char signedness mismatches with <linux/loop.h>