mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
797c18d543
Introduce new implmentation of dm_task_get_info() function with support for reading internal_suspend. . This time it is done in a 'versioned' way. We keep the old fashion dm_task_get_info(Base) to implement the old behavior of 1.02.95 libdm code. libdm version 1.02.96 introduced 'macro' wrapper dm_task_get_info_with_deferred_remove with new implementation of dm_task_get_info() - we cannot do anything else then to provide compatible version of this symbol. Now in version 1.02.97 we add new versioned implementation of dm_task_get_info(DM_1_02_97) symbol. This has the effect that i.e. rpm build will finaly resolve proper dependency on a new symbol - so it will be no longer possible, to build a new binary and use old library (rpm -q --provides will show libdevmapper.so.1.02(DM_1_02_97)(64bit)) Also the history is now tracked. If a new function is added (or reimplemented), it needs to be placed in proper file, so it could be exported with right versioning symbol. File .exported_symbols.Base should and any existing older DM should be treated as read-only after a release. Also - only libdm has been currently enhanced with versioned .Base file, as soon as other libs (liblvm, libdevmapper-event) needs changes they should also get their exported symbol files - meanwhile make.tmpl handles both cases.
59 lines
1.4 KiB
C
59 lines
1.4 KiB
C
/*
|
|
* Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
|
|
* Copyright (C) 2004-2007 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
|
|
*/
|
|
|
|
/*
|
|
* This file must be included first by every library source file.
|
|
*/
|
|
#ifndef _LVM_LIB_H
|
|
#define _LVM_LIB_H
|
|
|
|
#include "configure.h"
|
|
|
|
#define _REENTRANT
|
|
#define _GNU_SOURCE
|
|
#define _FILE_OFFSET_BITS 64
|
|
|
|
/* Define some portable printing types */
|
|
#define PRIsize_t "zu"
|
|
#define PRIptrdiff_t "td"
|
|
#define PRIpid_t PRId32
|
|
|
|
#if defined(__GNUC__)
|
|
#define DM_EXPORTED_SYMBOL(func, ver) \
|
|
__asm__(".symver " #func "_v" #ver ", " #func "@@DM_" #ver )
|
|
#define DM_EXPORTED_SYMBOL_BASE(func) \
|
|
__asm__(".symver " #func "_base, " #func "@Base" )
|
|
#else
|
|
#define DM_EXPORTED_SYMBOL(func, ver)
|
|
#define DM_EXPORTED_SYMBOL_BASE(func)
|
|
#endif
|
|
|
|
|
|
#include "intl.h"
|
|
#include "libdevmapper.h"
|
|
#include "util.h"
|
|
|
|
#ifdef DM
|
|
# include "dm-logging.h"
|
|
#else
|
|
# include "lvm-logging.h"
|
|
# include "lvm-globals.h"
|
|
# include "lvm-wrappers.h"
|
|
#endif
|
|
|
|
#include <unistd.h>
|
|
|
|
#endif
|