xref: /aosp_15_r20/bionic/libc/kernel/uapi/linux/loop.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef _UAPI_LINUX_LOOP_H
8*8d67ca89SAndroid Build Coastguard Worker #define _UAPI_LINUX_LOOP_H
9*8d67ca89SAndroid Build Coastguard Worker #define LO_NAME_SIZE 64
10*8d67ca89SAndroid Build Coastguard Worker #define LO_KEY_SIZE 32
11*8d67ca89SAndroid Build Coastguard Worker enum {
12*8d67ca89SAndroid Build Coastguard Worker   LO_FLAGS_READ_ONLY = 1,
13*8d67ca89SAndroid Build Coastguard Worker   LO_FLAGS_AUTOCLEAR = 4,
14*8d67ca89SAndroid Build Coastguard Worker   LO_FLAGS_PARTSCAN = 8,
15*8d67ca89SAndroid Build Coastguard Worker   LO_FLAGS_DIRECT_IO = 16,
16*8d67ca89SAndroid Build Coastguard Worker };
17*8d67ca89SAndroid Build Coastguard Worker #define LOOP_SET_STATUS_SETTABLE_FLAGS (LO_FLAGS_AUTOCLEAR | LO_FLAGS_PARTSCAN)
18*8d67ca89SAndroid Build Coastguard Worker #define LOOP_SET_STATUS_CLEARABLE_FLAGS (LO_FLAGS_AUTOCLEAR)
19*8d67ca89SAndroid Build Coastguard Worker #define LOOP_CONFIGURE_SETTABLE_FLAGS (LO_FLAGS_READ_ONLY | LO_FLAGS_AUTOCLEAR | LO_FLAGS_PARTSCAN | LO_FLAGS_DIRECT_IO)
20*8d67ca89SAndroid Build Coastguard Worker #include <asm/posix_types.h>
21*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h>
22*8d67ca89SAndroid Build Coastguard Worker struct loop_info {
23*8d67ca89SAndroid Build Coastguard Worker   int lo_number;
24*8d67ca89SAndroid Build Coastguard Worker   __kernel_old_dev_t lo_device;
25*8d67ca89SAndroid Build Coastguard Worker   unsigned long lo_inode;
26*8d67ca89SAndroid Build Coastguard Worker   __kernel_old_dev_t lo_rdevice;
27*8d67ca89SAndroid Build Coastguard Worker   int lo_offset;
28*8d67ca89SAndroid Build Coastguard Worker   int lo_encrypt_type;
29*8d67ca89SAndroid Build Coastguard Worker   int lo_encrypt_key_size;
30*8d67ca89SAndroid Build Coastguard Worker   int lo_flags;
31*8d67ca89SAndroid Build Coastguard Worker   char lo_name[LO_NAME_SIZE];
32*8d67ca89SAndroid Build Coastguard Worker   unsigned char lo_encrypt_key[LO_KEY_SIZE];
33*8d67ca89SAndroid Build Coastguard Worker   unsigned long lo_init[2];
34*8d67ca89SAndroid Build Coastguard Worker   char reserved[4];
35*8d67ca89SAndroid Build Coastguard Worker };
36*8d67ca89SAndroid Build Coastguard Worker struct loop_info64 {
37*8d67ca89SAndroid Build Coastguard Worker   __u64 lo_device;
38*8d67ca89SAndroid Build Coastguard Worker   __u64 lo_inode;
39*8d67ca89SAndroid Build Coastguard Worker   __u64 lo_rdevice;
40*8d67ca89SAndroid Build Coastguard Worker   __u64 lo_offset;
41*8d67ca89SAndroid Build Coastguard Worker   __u64 lo_sizelimit;
42*8d67ca89SAndroid Build Coastguard Worker   __u32 lo_number;
43*8d67ca89SAndroid Build Coastguard Worker   __u32 lo_encrypt_type;
44*8d67ca89SAndroid Build Coastguard Worker   __u32 lo_encrypt_key_size;
45*8d67ca89SAndroid Build Coastguard Worker   __u32 lo_flags;
46*8d67ca89SAndroid Build Coastguard Worker   __u8 lo_file_name[LO_NAME_SIZE];
47*8d67ca89SAndroid Build Coastguard Worker   __u8 lo_crypt_name[LO_NAME_SIZE];
48*8d67ca89SAndroid Build Coastguard Worker   __u8 lo_encrypt_key[LO_KEY_SIZE];
49*8d67ca89SAndroid Build Coastguard Worker   __u64 lo_init[2];
50*8d67ca89SAndroid Build Coastguard Worker };
51*8d67ca89SAndroid Build Coastguard Worker struct loop_config {
52*8d67ca89SAndroid Build Coastguard Worker   __u32 fd;
53*8d67ca89SAndroid Build Coastguard Worker   __u32 block_size;
54*8d67ca89SAndroid Build Coastguard Worker   struct loop_info64 info;
55*8d67ca89SAndroid Build Coastguard Worker   __u64 __reserved[8];
56*8d67ca89SAndroid Build Coastguard Worker };
57*8d67ca89SAndroid Build Coastguard Worker #define LO_CRYPT_NONE 0
58*8d67ca89SAndroid Build Coastguard Worker #define LO_CRYPT_XOR 1
59*8d67ca89SAndroid Build Coastguard Worker #define LO_CRYPT_DES 2
60*8d67ca89SAndroid Build Coastguard Worker #define LO_CRYPT_FISH2 3
61*8d67ca89SAndroid Build Coastguard Worker #define LO_CRYPT_BLOW 4
62*8d67ca89SAndroid Build Coastguard Worker #define LO_CRYPT_CAST128 5
63*8d67ca89SAndroid Build Coastguard Worker #define LO_CRYPT_IDEA 6
64*8d67ca89SAndroid Build Coastguard Worker #define LO_CRYPT_DUMMY 9
65*8d67ca89SAndroid Build Coastguard Worker #define LO_CRYPT_SKIPJACK 10
66*8d67ca89SAndroid Build Coastguard Worker #define LO_CRYPT_CRYPTOAPI 18
67*8d67ca89SAndroid Build Coastguard Worker #define MAX_LO_CRYPT 20
68*8d67ca89SAndroid Build Coastguard Worker #define LOOP_SET_FD 0x4C00
69*8d67ca89SAndroid Build Coastguard Worker #define LOOP_CLR_FD 0x4C01
70*8d67ca89SAndroid Build Coastguard Worker #define LOOP_SET_STATUS 0x4C02
71*8d67ca89SAndroid Build Coastguard Worker #define LOOP_GET_STATUS 0x4C03
72*8d67ca89SAndroid Build Coastguard Worker #define LOOP_SET_STATUS64 0x4C04
73*8d67ca89SAndroid Build Coastguard Worker #define LOOP_GET_STATUS64 0x4C05
74*8d67ca89SAndroid Build Coastguard Worker #define LOOP_CHANGE_FD 0x4C06
75*8d67ca89SAndroid Build Coastguard Worker #define LOOP_SET_CAPACITY 0x4C07
76*8d67ca89SAndroid Build Coastguard Worker #define LOOP_SET_DIRECT_IO 0x4C08
77*8d67ca89SAndroid Build Coastguard Worker #define LOOP_SET_BLOCK_SIZE 0x4C09
78*8d67ca89SAndroid Build Coastguard Worker #define LOOP_CONFIGURE 0x4C0A
79*8d67ca89SAndroid Build Coastguard Worker #define LOOP_CTL_ADD 0x4C80
80*8d67ca89SAndroid Build Coastguard Worker #define LOOP_CTL_REMOVE 0x4C81
81*8d67ca89SAndroid Build Coastguard Worker #define LOOP_CTL_GET_FREE 0x4C82
82*8d67ca89SAndroid Build Coastguard Worker #endif
83