]> sourceware.org Git - lvm2.git/commitdiff
Locking prototypes.
authorAlasdair Kergon <agk@redhat.com>
Fri, 8 Feb 2002 14:30:37 +0000 (14:30 +0000)
committerAlasdair Kergon <agk@redhat.com>
Fri, 8 Feb 2002 14:30:37 +0000 (14:30 +0000)
lib/locking/locking.h [new file with mode: 0644]
lib/locking/locking_types.h [new file with mode: 0644]

diff --git a/lib/locking/locking.h b/lib/locking/locking.h
new file mode 100644 (file)
index 0000000..08233c9
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2001 Sistina Software (UK) Limited.
+ *
+ * This file is released under the LGPL.
+ *
+ */
+
+#include "metadata.h"
+#include "uuid.h"
+#include "config.h"
+
+int init_locking(int type, struct config_file *cf);
+void fin_locking(void);
+
+/*
+ * LCK_VG: 
+ *   Lock/unlock on-disk volume group data
+ *   Use "" to lock orphan PVs
+ *   char *vol holds volume group name
+ *
+ * LCK_LV: 
+ *   Lock/unlock an individual logical volume
+ *   Also suspends/resumes the LV if it's active.
+ *   struct logical_volume *vol
+ *
+ * FIXME: Change to
+ *   int lock_vol(struct id *id, int flags);
+ */
+int lock_vol(void *vol, int flags);
+
+/*
+ * Lock type
+ */
+#define LCK_TYPE_MASK  0x000000FF
+#define LCK_NONE       0x00000000
+#define LCK_READ       0x00000001
+#define LCK_WRITE      0x00000002
+
+/*
+ * Lock scope
+ */
+#define LCK_SCOPE_MASK 0x0000FF00
+#define LCK_VG         0x00000000
+#define LCK_LV         0x00000100
+
+/*
+ * Lock bits
+ */
+#define LCK_NONBLOCK   0x00010000
+
diff --git a/lib/locking/locking_types.h b/lib/locking/locking_types.h
new file mode 100644 (file)
index 0000000..4b677f7
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2001 Sistina Software (UK) Limited.
+ *
+ * This file is released under the LGPL.
+ *
+ */
+
+#include "metadata.h"
+#include "config.h"
+
+typedef int (*lock_resource_fn)(const char *resource, int flags);
+
+typedef void (*fin_lock_fn)(void);
+
+
+struct locking_type {
+       lock_resource_fn lock_resource;
+
+       fin_lock_fn fin_locking;
+};
+
+
+/*
+ * Locking types
+ */
+int init_file_locking(struct locking_type *locking, struct config_file *cf);
+
+int init_external_locking(struct locking_type *locking, struct config_file *cf);
+
This page took 0.036345 seconds and 5 git commands to generate.