blob: d5a23b5970409b1f69c594dc8212689c85d894f7 [file] [log] [blame]
Ben Cheng655a7c02013-10-16 16:09:24 -07001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
10 *** To edit the content of this header, modify the corresponding
11 *** source file (e.g. under external/kernel-headers/original/) then
12 *** run bionic/libc/kernel/tools/update_all.py
13 ***
14 *** Any manual change here will be lost the next time this script will
15 *** be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
19#ifndef _UAPI_LINUX_LOOP_H
20#define _UAPI_LINUX_LOOP_H
21#define LO_NAME_SIZE 64
22#define LO_KEY_SIZE 32
Ben Cheng655a7c02013-10-16 16:09:24 -070023enum {
Tao Baod7db5942015-01-28 10:07:51 -080024 LO_FLAGS_READ_ONLY = 1,
25 LO_FLAGS_AUTOCLEAR = 4,
26 LO_FLAGS_PARTSCAN = 8,
Christopher Ferris05d08e92016-02-04 13:16:38 -080027 LO_FLAGS_DIRECT_IO = 16,
Ben Cheng655a7c02013-10-16 16:09:24 -070028};
29#include <asm/posix_types.h>
30#include <linux/types.h>
Christopher Ferris05d08e92016-02-04 13:16:38 -080031struct loop_info {
Tao Baod7db5942015-01-28 10:07:51 -080032 int lo_number;
33 __kernel_old_dev_t lo_device;
34 unsigned long lo_inode;
Christopher Ferris05d08e92016-02-04 13:16:38 -080035 __kernel_old_dev_t lo_rdevice;
Tao Baod7db5942015-01-28 10:07:51 -080036 int lo_offset;
37 int lo_encrypt_type;
38 int lo_encrypt_key_size;
Christopher Ferris05d08e92016-02-04 13:16:38 -080039 int lo_flags;
Tao Baod7db5942015-01-28 10:07:51 -080040 char lo_name[LO_NAME_SIZE];
41 unsigned char lo_encrypt_key[LO_KEY_SIZE];
42 unsigned long lo_init[2];
Christopher Ferris05d08e92016-02-04 13:16:38 -080043 char reserved[4];
Ben Cheng655a7c02013-10-16 16:09:24 -070044};
45struct loop_info64 {
Tao Baod7db5942015-01-28 10:07:51 -080046 __u64 lo_device;
Christopher Ferris05d08e92016-02-04 13:16:38 -080047 __u64 lo_inode;
Tao Baod7db5942015-01-28 10:07:51 -080048 __u64 lo_rdevice;
49 __u64 lo_offset;
50 __u64 lo_sizelimit;
Christopher Ferris05d08e92016-02-04 13:16:38 -080051 __u32 lo_number;
Tao Baod7db5942015-01-28 10:07:51 -080052 __u32 lo_encrypt_type;
53 __u32 lo_encrypt_key_size;
54 __u32 lo_flags;
Christopher Ferris05d08e92016-02-04 13:16:38 -080055 __u8 lo_file_name[LO_NAME_SIZE];
Tao Baod7db5942015-01-28 10:07:51 -080056 __u8 lo_crypt_name[LO_NAME_SIZE];
57 __u8 lo_encrypt_key[LO_KEY_SIZE];
58 __u64 lo_init[2];
Christopher Ferris05d08e92016-02-04 13:16:38 -080059};
Ben Cheng655a7c02013-10-16 16:09:24 -070060#define LO_CRYPT_NONE 0
61#define LO_CRYPT_XOR 1
62#define LO_CRYPT_DES 2
Christopher Ferris05d08e92016-02-04 13:16:38 -080063#define LO_CRYPT_FISH2 3
Ben Cheng655a7c02013-10-16 16:09:24 -070064#define LO_CRYPT_BLOW 4
65#define LO_CRYPT_CAST128 5
66#define LO_CRYPT_IDEA 6
Christopher Ferris05d08e92016-02-04 13:16:38 -080067#define LO_CRYPT_DUMMY 9
Ben Cheng655a7c02013-10-16 16:09:24 -070068#define LO_CRYPT_SKIPJACK 10
69#define LO_CRYPT_CRYPTOAPI 18
70#define MAX_LO_CRYPT 20
Christopher Ferris05d08e92016-02-04 13:16:38 -080071#define LOOP_SET_FD 0x4C00
Ben Cheng655a7c02013-10-16 16:09:24 -070072#define LOOP_CLR_FD 0x4C01
73#define LOOP_SET_STATUS 0x4C02
74#define LOOP_GET_STATUS 0x4C03
Christopher Ferris05d08e92016-02-04 13:16:38 -080075#define LOOP_SET_STATUS64 0x4C04
Ben Cheng655a7c02013-10-16 16:09:24 -070076#define LOOP_GET_STATUS64 0x4C05
77#define LOOP_CHANGE_FD 0x4C06
78#define LOOP_SET_CAPACITY 0x4C07
Christopher Ferris05d08e92016-02-04 13:16:38 -080079#define LOOP_SET_DIRECT_IO 0x4C08
Christopher Ferris1308ad32017-11-14 17:32:13 -080080#define LOOP_SET_BLOCK_SIZE 0x4C09
Christopher Ferris05d08e92016-02-04 13:16:38 -080081#define LOOP_CTL_ADD 0x4C80
Ben Cheng655a7c02013-10-16 16:09:24 -070082#define LOOP_CTL_REMOVE 0x4C81
83#define LOOP_CTL_GET_FREE 0x4C82
Ben Cheng655a7c02013-10-16 16:09:24 -070084#endif