mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
libdm: Stop libdm/misc/dmlib.h from including lib/misc/lib.h
This commit is contained in:
parent
286c1ba336
commit
c78239d860
@ -14,13 +14,74 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This file must be included first by every device-mapper library source file.
|
* This file must be included first by every library source file.
|
||||||
*/
|
*/
|
||||||
#ifndef _DM_LIB_H
|
#ifndef _DM_LIB_H
|
||||||
#define _DM_LIB_H
|
#define _DM_LIB_H
|
||||||
|
|
||||||
#define DM
|
#include "configure.h"
|
||||||
|
|
||||||
#include "lib/misc/lib.h"
|
#define _REENTRANT
|
||||||
|
#define _GNU_SOURCE
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Symbol export control macros
|
||||||
|
*
|
||||||
|
* DM_EXPORT_SYMBOL(func,ver)
|
||||||
|
* DM_EXPORT_SYMBOL_BASE(func,ver)
|
||||||
|
*
|
||||||
|
* For functions that have multiple implementations these macros control
|
||||||
|
* symbol export and versioning.
|
||||||
|
*
|
||||||
|
* Function definitions that exist in only one version never need to use
|
||||||
|
* these macros.
|
||||||
|
*
|
||||||
|
* Backwards compatible implementations must include a version tag of
|
||||||
|
* the form "_v1_02_104" as a suffix to the function name and use the
|
||||||
|
* macro DM_EXPORT_SYMBOL to export the function and bind it to the
|
||||||
|
* specified version string.
|
||||||
|
*
|
||||||
|
* Since versioning is only available when compiling with GCC the entire
|
||||||
|
* compatibility version should be enclosed in '#if defined(__GNUC__)',
|
||||||
|
* for example:
|
||||||
|
*
|
||||||
|
* int dm_foo(int bar)
|
||||||
|
* {
|
||||||
|
* return bar;
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* #if defined(__GNUC__)
|
||||||
|
* // Backward compatible dm_foo() version 1.02.104
|
||||||
|
* int dm_foo_v1_02_104(void);
|
||||||
|
* int dm_foo_v1_02_104(void)
|
||||||
|
* {
|
||||||
|
* return 0;
|
||||||
|
* }
|
||||||
|
* DM_EXPORT_SYMBOL(dm_foo,1_02_104)
|
||||||
|
* #endif
|
||||||
|
*
|
||||||
|
* A prototype for the compatibility version is required as these
|
||||||
|
* functions must not be declared static.
|
||||||
|
*
|
||||||
|
* The DM_EXPORT_SYMBOL_BASE macro is only used to export the base
|
||||||
|
* versions of library symbols prior to the introduction of symbol
|
||||||
|
* versioning: it must never be used for new symbols.
|
||||||
|
*/
|
||||||
|
#if defined(__GNUC__)
|
||||||
|
#define DM_EXPORT_SYMBOL(func, ver) \
|
||||||
|
__asm__(".symver " #func "_v" #ver ", " #func "@DM_" #ver )
|
||||||
|
#define DM_EXPORT_SYMBOL_BASE(func) \
|
||||||
|
__asm__(".symver " #func "_base, " #func "@Base" )
|
||||||
|
#else
|
||||||
|
#define DM_EXPORT_SYMBOL(func, ver)
|
||||||
|
#define DM_EXPORT_SYMBOL_BASE(func)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "lib/misc/util.h"
|
||||||
|
|
||||||
|
#include "libdm/libdevmapper.h"
|
||||||
|
#include "libdm/misc/dm-logging.h"
|
||||||
|
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user