/*
 * Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.  
 * Copyright (C) 2004-2015 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
 */

/* Most source files should include this file or lib.h or dmlib.h */

#ifndef _LVM_TOOL_H
#define _LVM_TOOL_H

#define _GNU_SOURCE
#define _FILE_OFFSET_BITS 64

#include "configure.h"

#include <unistd.h>

#include "libdevmapper.h"
#include "util.h"

#endif	/* _LVM_TOOL_H */
