summaryrefslogtreecommitdiffstats
path: root/include/loopdev.h
diff options
context:
space:
mode:
authorKarel Zak2011-06-10 15:38:13 +0200
committerKarel Zak2011-06-10 15:38:13 +0200
commitfd7f0718d4abb483f9e84b15bddecdac34d82144 (patch)
treea4d25d20fb5d5a0eae36e68704e9baeee23cd84c /include/loopdev.h
parentlibmount: minor changes in sample program (diff)
downloadkernel-qcow2-util-linux-fd7f0718d4abb483f9e84b15bddecdac34d82144.tar.gz
kernel-qcow2-util-linux-fd7f0718d4abb483f9e84b15bddecdac34d82144.tar.xz
kernel-qcow2-util-linux-fd7f0718d4abb483f9e84b15bddecdac34d82144.zip
lib: [loopdev.c] cleanup flags usage
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'include/loopdev.h')
-rw-r--r--include/loopdev.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/include/loopdev.h b/include/loopdev.h
index 74b9e02ec..a8cb4441b 100644
--- a/include/loopdev.h
+++ b/include/loopdev.h
@@ -1,6 +1,8 @@
#ifndef UTIL_LINUX_LOOPDEV_H
#define UTIL_LINUX_LOOPDEV_H
+#include "sysfs.h"
+
/*
* loop_info.lo_encrypt_type
*/
@@ -81,6 +83,7 @@ struct loopdev_cxt {
char device[128]; /* device path (e.g. /dev/loop<N>) */
char *filename; /* backing file for loopcxt_set_... */
int fd; /* open(/dev/looo<N>) */
+ int mode; /* fd mode O_{RDONLY,RDWR} */
int flags; /* LOOPDEV_FL_* flags */
int has_info:1; /* .info contains data */
@@ -95,7 +98,7 @@ struct loopdev_cxt {
* loopdev_cxt.flags
*/
enum {
- LOOPDEV_FL_RDONLY = (1 << 0), /* default */
+ LOOPDEV_FL_RDONLY = (1 << 0), /* open(/dev/loop) mode; default */
LOOPDEV_FL_RDWR = (1 << 1), /* necessary for loop setup only */
LOOPDEV_FL_OFFSET = (1 << 4),
LOOPDEV_FL_NOSYSFS = (1 << 5),
@@ -126,7 +129,9 @@ extern int loopcxt_set_device(struct loopdev_cxt *lc, const char *device);
extern char *loopcxt_strdup_device(struct loopdev_cxt *lc);
extern const char *loopcxt_get_device(struct loopdev_cxt *lc);
extern struct sysfs_cxt *loopcxt_get_sysfs(struct loopdev_cxt *lc);
+
extern int loopcxt_get_fd(struct loopdev_cxt *lc);
+extern int loopcxt_set_fd(struct loopdev_cxt *lc, int fd, int mode);
extern int loopcxt_init_iterator(struct loopdev_cxt *lc, int flags);
extern int loopcxt_deinit_iterator(struct loopdev_cxt *lc);
@@ -147,6 +152,7 @@ extern char *loopcxt_get_backing_file(struct loopdev_cxt *lc);
extern int loopcxt_get_offset(struct loopdev_cxt *lc, uint64_t *offset);
extern int loopcxt_get_sizelimit(struct loopdev_cxt *lc, uint64_t *size);
extern int loopcxt_is_autoclear(struct loopdev_cxt *lc);
+extern int loopcxt_is_readonly(struct loopdev_cxt *lc);
extern int loopcxt_find_by_backing_file(struct loopdev_cxt *lc,
const char *filename,
uint64_t offset, int flags);