2017-11-18 17:09:20 +01:00
|
|
|
/* SPDX-License-Identifier: LGPL-2.1+ */
|
2016-12-01 20:25:26 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "macro.h"
|
|
|
|
|
|
|
|
typedef struct LoopDevice LoopDevice;
|
|
|
|
|
|
|
|
/* Some helpers for setting up loopback block devices */
|
|
|
|
|
|
|
|
struct LoopDevice {
|
|
|
|
int fd;
|
|
|
|
int nr;
|
|
|
|
char *node;
|
2016-12-02 19:32:09 +01:00
|
|
|
bool relinquished;
|
2016-12-01 20:25:26 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
int loop_device_make(int fd, int open_flags, LoopDevice **ret);
|
|
|
|
int loop_device_make_by_path(const char *path, int open_flags, LoopDevice **ret);
|
|
|
|
|
|
|
|
LoopDevice* loop_device_unref(LoopDevice *d);
|
|
|
|
DEFINE_TRIVIAL_CLEANUP_FUNC(LoopDevice*, loop_device_unref);
|
2016-12-02 19:32:09 +01:00
|
|
|
|
|
|
|
void loop_device_relinquish(LoopDevice *d);
|