1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-03-10 16:58:47 +03:00

Locking prototypes.

This commit is contained in:
Alasdair Kergon 2002-02-08 14:30:37 +00:00
parent 075ffca52a
commit d1ad45cc41
2 changed files with 79 additions and 0 deletions

50
lib/locking/locking.h Normal file
View File

@ -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

View File

@ -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);