summaryrefslogtreecommitdiffstats
path: root/src/basic/missing_loop.h
blob: 56e46f0b8acd403fce61385298cd9ac19e521730 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once

#include <linux/loop.h>

#include "macro.h"

#ifndef LOOP_CONFIGURE
struct loop_config {
        __u32 fd;
        __u32 block_size;
        struct loop_info64 info;
        __u64 __reserved[8];
};

#  define LOOP_CONFIGURE 0x4C0A
#else
assert_cc(LOOP_CONFIGURE == 0x4C0A);
#endif

#ifndef LO_FLAGS_DIRECT_IO
#  define LO_FLAGS_DIRECT_IO 16
#  define LOOP_SET_DIRECT_IO 0x4C08
#else
assert_cc(LO_FLAGS_DIRECT_IO == 16);
assert_cc(LOOP_SET_DIRECT_IO == 0x4C08);
#endif

#ifndef LOOP_SET_BLOCK_SIZE
#  define LOOP_SET_BLOCK_SIZE 0x4C09
#else
assert_cc(LOOP_SET_BLOCK_SIZE == 0x4C09);
#endif

#ifndef LOOP_SET_STATUS_SETTABLE_FLAGS
#  define LOOP_SET_STATUS_SETTABLE_FLAGS (LO_FLAGS_AUTOCLEAR | LO_FLAGS_PARTSCAN)
#else
assert_cc(LOOP_SET_STATUS_SETTABLE_FLAGS == (LO_FLAGS_AUTOCLEAR | LO_FLAGS_PARTSCAN));
#endif