mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
7f97c7ea9a
As we start refactoring the code to break dependencies (see doc/refactoring.txt), I want us to use full paths in the includes (eg, #include "base/data-struct/list.h"). This makes it more obvious when we're breaking abstraction boundaries, eg, including a file in metadata/ from base/
71 lines
1.8 KiB
C
71 lines
1.8 KiB
C
/*
|
|
* Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
|
|
* Copyright (C) 2004-2011 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
|
|
#ifndef _LVM_EXEC_H
|
|
#define _LVM_EXEC_H
|
|
|
|
#include "lib/misc/lib.h"
|
|
|
|
struct cmd_context;
|
|
|
|
/**
|
|
* Execute command with paramaters and return status
|
|
*
|
|
* \param rstatus
|
|
* Returns command's exit status code.
|
|
*
|
|
* \param sync_needed
|
|
* Bool specifying whether local devices needs to be synchronized
|
|
* before executing command.
|
|
* Note: You cannot synchronize devices within activation context.
|
|
*
|
|
* \return
|
|
* 1 (success) or 0 (failure).
|
|
*/
|
|
int exec_cmd(struct cmd_context *cmd, const char *const argv[],
|
|
int *rstatus, int sync_needed);
|
|
|
|
|
|
struct FILE;
|
|
struct pipe_data {
|
|
FILE *fp;
|
|
pid_t pid;
|
|
};
|
|
|
|
/**
|
|
* popen() like function to read-only output from executed command
|
|
* without running shell.
|
|
*
|
|
* \param argv
|
|
* Arguments for execvp.
|
|
*
|
|
* \param sync_needed
|
|
* Bool specifying whether local devices needs to be synchronized
|
|
* before executing command.
|
|
* Note: You cannot synchronize devices within activation context.
|
|
*
|
|
* \param pdata
|
|
* Arguments to store data needed for pclose_exec().
|
|
*
|
|
* \return
|
|
* 1 (success) or 0 (failure).
|
|
*/
|
|
FILE *pipe_open(struct cmd_context *cmd, const char *const argv[],
|
|
int sync_needed, struct pipe_data *pdata);
|
|
|
|
int pipe_close(struct pipe_data *pdata);
|
|
|
|
#endif
|