1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-10-28 11:55:55 +03:00
lvm2/tools/lvm2cmd.h
Alasdair G Kergon 7c6526aae2 lvresize: separate validation from action
Start separating the validation from the action in the basic lvresize
code moved to the library.
Remove incorrect use of command line error codes from lvresize library
functions.  Move errors.h to tools directory to reinforce this,
exporting public versions of the error codes in lvm2cmd.h for dmeventd
plugins to use.
2013-07-06 03:28:21 +01:00

86 lines
2.3 KiB
C

/*
* Copyright (C) 2003-2004 Sistina Software, Inc. All rights reserved.
* Copyright (C) 2004 Red Hat, Inc. All rights reserved.
*
* This file is part of LVM2.
*
* This copyrighted material is made available to anyone wishing to use,
* modify, copy, or redistribute it subject to the terms and conditions
* of the GNU Lesser General Public License v.2.1.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef _LVM_CMDLIB_H
#define _LVM_CMDLIB_H
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _LVM_LOG_H
typedef void (*lvm2_log_fn_t) (int level, const char *file, int line,
int dm_errno, const char *message);
#endif
#define LVM2_LOG_SUPPRESS 0
/* Logging levels */
#define LVM2_LOG_FATAL 2
#define LVM2_LOG_ERROR 3
#define LVM2_LOG_PRINT 4
#define LVM2_LOG_VERBOSE 5
#define LVM2_LOG_VERY_VERBOSE 6
#define LVM2_LOG_DEBUG 7
/* Return values */
#define LVM2_COMMAND_SUCCEEDED 1 /* ECMD_PROCESSED */
#define LVM2_NO_SUCH_COMMAND 2 /* ENO_SUCH_CMD */
#define LVM2_INVALID_PARAMETERS 3 /* EINVALID_CMD_LINE */
#define LVM2_PROCESSING_FAILED 5 /* ECMD_FAILED */
/*
* Define external function to replace the built-in logging function.
* It receives output line-by-line.
*
* level is the logging level (see above)
* file & line refer to the source code where the message originates.
*/
void lvm2_log_fn(lvm2_log_fn_t log_fn);
/*
* Initialise library.
* Returns a handle so repeated use of lvm2_run is more efficient.
*/
void *lvm2_init(void);
/*
* Disable any dmeventd calls that the library may otherwise do. Useful to avoid
* recursive calls from dmeventd to itself.
*/
void lvm2_disable_dmeventd_monitoring(void *handle);
/*
* Set log level (as above) if using built-in logging function.
* Default is LVM2_LOG_PRINT. Use LVM2_LOG_SUPPRESS to suppress output.
*/
void lvm2_log_level(void *handle, int level);
/*
* Run an LVM2 command.
* Use NULL handle if the call is a one-off and you don't want to bother
* calling lvm2_init/lvm2_exit.
*/
int lvm2_run(void *handle, const char *cmdline);
/* Release handle */
void lvm2_exit(void *handle);
#ifdef __cplusplus
}
#endif
#endif