1 /* 2 * lock_manager.h: Defines the internal lock manager API 3 * 4 * Copyright (C) 2010-2011 Red Hat, Inc. 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2.1 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with this library. If not, see 18 * <http://www.gnu.org/licenses/>. 19 * 20 */ 21 22 #pragma once 23 24 #include "internal.h" 25 #include "lock_driver.h" 26 27 typedef struct _virLockManagerPlugin virLockManagerPlugin; 28 29 virLockManagerPlugin *virLockManagerPluginNew(const char *name, 30 const char *driverName, 31 const char *configDir, 32 unsigned int flags); 33 void virLockManagerPluginRef(virLockManagerPlugin *plugin); 34 void virLockManagerPluginUnref(virLockManagerPlugin *plugin); 35 36 const char *virLockManagerPluginGetName(virLockManagerPlugin *plugin); 37 bool virLockManagerPluginUsesState(virLockManagerPlugin *plugin); 38 39 virLockDriver *virLockManagerPluginGetDriver(virLockManagerPlugin *plugin); 40 41 virLockManager *virLockManagerNew(virLockDriver *driver, 42 unsigned int type, 43 size_t nparams, 44 virLockManagerParam *params, 45 unsigned int flags); 46 47 int virLockManagerAddResource(virLockManager *manager, 48 unsigned int type, 49 const char *name, 50 size_t nparams, 51 virLockManagerParam *params, 52 unsigned int flags); 53 54 int virLockManagerAcquire(virLockManager *manager, 55 const char *state, 56 unsigned int flags, 57 virDomainLockFailureAction action, 58 int *fd); 59 int virLockManagerRelease(virLockManager *manager, 60 char **state, 61 unsigned int flags); 62 int virLockManagerInquire(virLockManager *manager, 63 char **state, 64 unsigned int flags); 65 66 int virLockManagerFree(virLockManager *manager); 67