186d7f5d3SJohn Marino /* $NetBSD: lvm2cmd.h,v 1.1.1.2 2009/12/02 00:25:51 haad Exp $ */ 286d7f5d3SJohn Marino 386d7f5d3SJohn Marino /* 486d7f5d3SJohn Marino * Copyright (C) 2003-2004 Sistina Software, Inc. All rights reserved. 586d7f5d3SJohn Marino * Copyright (C) 2004 Red Hat, Inc. All rights reserved. 686d7f5d3SJohn Marino * 786d7f5d3SJohn Marino * This file is part of LVM2. 886d7f5d3SJohn Marino * 986d7f5d3SJohn Marino * This copyrighted material is made available to anyone wishing to use, 1086d7f5d3SJohn Marino * modify, copy, or redistribute it subject to the terms and conditions 1186d7f5d3SJohn Marino * of the GNU Lesser General Public License v.2.1. 1286d7f5d3SJohn Marino * 1386d7f5d3SJohn Marino * You should have received a copy of the GNU Lesser General Public License 1486d7f5d3SJohn Marino * along with this program; if not, write to the Free Software Foundation, 1586d7f5d3SJohn Marino * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 1686d7f5d3SJohn Marino */ 1786d7f5d3SJohn Marino 1886d7f5d3SJohn Marino #ifndef _LVM_CMDLIB_H 1986d7f5d3SJohn Marino #define _LVM_CMDLIB_H 2086d7f5d3SJohn Marino 2186d7f5d3SJohn Marino #ifndef _LVM_LOG_H 2286d7f5d3SJohn Marino typedef void (*lvm2_log_fn_t) (int level, const char *file, int line, 2386d7f5d3SJohn Marino int dm_errno, const char *message); 2486d7f5d3SJohn Marino 2586d7f5d3SJohn Marino #endif 2686d7f5d3SJohn Marino 2786d7f5d3SJohn Marino #define LVM2_LOG_SUPPRESS 0 2886d7f5d3SJohn Marino 2986d7f5d3SJohn Marino /* Logging levels */ 3086d7f5d3SJohn Marino #define LVM2_LOG_FATAL 2 3186d7f5d3SJohn Marino #define LVM2_LOG_ERROR 3 3286d7f5d3SJohn Marino #define LVM2_LOG_PRINT 4 3386d7f5d3SJohn Marino #define LVM2_LOG_VERBOSE 5 3486d7f5d3SJohn Marino #define LVM2_LOG_VERY_VERBOSE 6 3586d7f5d3SJohn Marino #define LVM2_LOG_DEBUG 7 3686d7f5d3SJohn Marino 3786d7f5d3SJohn Marino /* 3886d7f5d3SJohn Marino * Define external function to replace the built-in logging function. 3986d7f5d3SJohn Marino * It receives output line-by-line. 4086d7f5d3SJohn Marino * 4186d7f5d3SJohn Marino * level is the logging level (see above) 4286d7f5d3SJohn Marino * file & line refer to the source code where the message originates. 4386d7f5d3SJohn Marino */ 4486d7f5d3SJohn Marino void lvm2_log_fn(lvm2_log_fn_t log_fn); 4586d7f5d3SJohn Marino 4686d7f5d3SJohn Marino /* 4786d7f5d3SJohn Marino * Initialise library. 4886d7f5d3SJohn Marino * Returns a handle so repeated use of lvm2_run is more efficient. 4986d7f5d3SJohn Marino */ 5086d7f5d3SJohn Marino void *lvm2_init(void); 5186d7f5d3SJohn Marino 5286d7f5d3SJohn Marino /* 5386d7f5d3SJohn Marino * Set log level (as above) if using built-in logging function. 5486d7f5d3SJohn Marino * Default is LVM2_LOG_PRINT. Use LVM2_LOG_SUPPRESS to suppress output. 5586d7f5d3SJohn Marino */ 5686d7f5d3SJohn Marino void lvm2_log_level(void *handle, int level); 5786d7f5d3SJohn Marino 5886d7f5d3SJohn Marino /* 5986d7f5d3SJohn Marino * Run an LVM2 command. 6086d7f5d3SJohn Marino * Use NULL handle if the call is a one-off and you don't want to bother 6186d7f5d3SJohn Marino * calling lvm2_init/lvm2_exit. 6286d7f5d3SJohn Marino */ 6386d7f5d3SJohn Marino int lvm2_run(void *handle, const char *cmdline); 6486d7f5d3SJohn Marino 6586d7f5d3SJohn Marino /* Release handle */ 6686d7f5d3SJohn Marino void lvm2_exit(void *handle); 6786d7f5d3SJohn Marino 6886d7f5d3SJohn Marino #endif 69