Skip to content
This repository was archived by the owner on Aug 19, 2020. It is now read-only.

Commit ce649a6

Browse files
committed
Integrated service layer with libpmem from Intel
1 parent c6a93ba commit ce649a6

30 files changed

+4830
-326
lines changed

DirectMappedFile/.cproject

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -35,20 +35,15 @@
3535
<option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.exe.debug.option.optimization.level.1287563293" name="Optimization Level" superClass="gnu.c.compiler.exe.debug.option.optimization.level" valueType="enumerated"/>
3636
<option id="gnu.c.compiler.exe.debug.option.debugging.level.1253883475" name="Debug Level" superClass="gnu.c.compiler.exe.debug.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/>
3737
<option id="gnu.c.compiler.option.include.paths.1005233331" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
38-
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/nvmd}&quot;"/>
3938
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/nvmds}&quot;"/>
4039
</option>
4140
<option id="gnu.c.compiler.option.dialect.std.354631301" name="Language standard" superClass="gnu.c.compiler.option.dialect.std" value="gnu.c.compiler.dialect.default" valueType="enumerated"/>
4241
<option id="gnu.c.compiler.option.misc.pic.672458992" name="Position Independent Code (-fPIC)" superClass="gnu.c.compiler.option.misc.pic" value="true" valueType="boolean"/>
4342
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.262068058" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
4443
</tool>
4544
<tool command="../bin/usid_build ; gcc" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ./usid.o ${INPUTS}" id="cdt.managedbuild.tool.gnu.c.linker.exe.debug.59561572" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.debug">
46-
<option id="gnu.c.link.option.libs.1021394118" name="Libraries (-l)" superClass="gnu.c.link.option.libs" valueType="libs">
47-
<listOptionValue builtIn="false" value="nvmd"/>
48-
</option>
49-
<option id="gnu.c.link.option.paths.221609382" name="Library search path (-L)" superClass="gnu.c.link.option.paths" valueType="libPaths">
50-
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/nvmd/DebugX}&quot;"/>
51-
</option>
45+
<option id="gnu.c.link.option.libs.1021394118" name="Libraries (-l)" superClass="gnu.c.link.option.libs" valueType="libs"/>
46+
<option id="gnu.c.link.option.paths.221609382" name="Library search path (-L)" superClass="gnu.c.link.option.paths" valueType="libPaths"/>
5247
<option defaultValue="true" id="gnu.c.link.option.shared.852811859" name="Shared (-shared)" superClass="gnu.c.link.option.shared" valueType="boolean"/>
5348
<option id="gnu.c.link.option.other.920549138" name="Other options (-Xlinker [option])" superClass="gnu.c.link.option.other" valueType="stringList">
5449
<listOptionValue builtIn="false" value="-init=dmf_init"/>
@@ -64,7 +59,6 @@
6459
<tool id="cdt.managedbuild.tool.gnu.assembler.exe.debug.2009126960" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.debug">
6560
<option id="gnu.both.asm.option.include.paths.1869430234" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
6661
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/nvmds}&quot;"/>
67-
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/nvmd}&quot;"/>
6862
</option>
6963
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1774695726" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
7064
</tool>
@@ -73,13 +67,7 @@
7367
</configuration>
7468
</storageModule>
7569
<storageModule moduleId="org.eclipse.cdt.core.externalSettings">
76-
<externalSettings containerId="nvmd;cdt.managedbuild.config.gnu.so.debug.245027014.1958352163" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier">
77-
<externalSetting>
78-
<entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/onvm"/>
79-
<entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/onvm/DebugX"/>
80-
<entry flags="RESOLVED" kind="libraryFile" name="onvm" srcPrefixMapping="" srcRootPath=""/>
81-
</externalSetting>
82-
</externalSettings>
70+
<externalSettings containerId="nvmd;cdt.managedbuild.config.gnu.so.debug.245027014.1958352163" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
8371
</storageModule>
8472
</cconfiguration>
8573
<cconfiguration id="cdt.managedbuild.config.gnu.exe.release.761968217">

libpmem/.cproject

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2+
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
3+
<storageModule moduleId="org.eclipse.cdt.core.settings">
4+
<cconfiguration id="cdt.managedbuild.config.gnu.lib.debug.681755896">
5+
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.lib.debug.681755896" moduleId="org.eclipse.cdt.core.settings" name="Debug">
6+
<externalSettings>
7+
<externalSetting>
8+
<entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/libpmem"/>
9+
<entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/libpmem/Debug"/>
10+
<entry flags="RESOLVED" kind="libraryFile" name="libpmem" srcPrefixMapping="" srcRootPath=""/>
11+
</externalSetting>
12+
</externalSettings>
13+
<extensions>
14+
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
15+
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
16+
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
17+
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
18+
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
19+
</extensions>
20+
</storageModule>
21+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
22+
<configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.lib.debug.681755896" name="Debug" parent="cdt.managedbuild.config.gnu.lib.debug">
23+
<folderInfo id="cdt.managedbuild.config.gnu.lib.debug.681755896." name="/" resourcePath="">
24+
<toolChain id="cdt.managedbuild.toolchain.gnu.lib.debug.1541677223" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.lib.debug">
25+
<targetPlatform id="cdt.managedbuild.target.gnu.platform.lib.debug.1614030764" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.lib.debug"/>
26+
<builder buildPath="${workspace_loc:/libpmem}/Debug" id="cdt.managedbuild.target.gnu.builder.lib.debug.1062238800" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.lib.debug"/>
27+
<tool id="cdt.managedbuild.tool.gnu.archiver.lib.debug.1064627715" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.lib.debug">
28+
<outputType id="cdt.managedbuild.tool.gnu.archiver.output.905042566" outputPrefix="" superClass="cdt.managedbuild.tool.gnu.archiver.output"/>
29+
</tool>
30+
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.lib.debug.225013420" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.lib.debug">
31+
<option id="gnu.cpp.compiler.lib.debug.option.optimization.level.1443556207" name="Optimization Level" superClass="gnu.cpp.compiler.lib.debug.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
32+
<option id="gnu.cpp.compiler.lib.debug.option.debugging.level.741722232" name="Debug Level" superClass="gnu.cpp.compiler.lib.debug.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
33+
</tool>
34+
<tool id="cdt.managedbuild.tool.gnu.c.compiler.lib.debug.912813201" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.lib.debug">
35+
<option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.lib.debug.option.optimization.level.427209816" name="Optimization Level" superClass="gnu.c.compiler.lib.debug.option.optimization.level" valueType="enumerated"/>
36+
<option id="gnu.c.compiler.lib.debug.option.debugging.level.1089860184" name="Debug Level" superClass="gnu.c.compiler.lib.debug.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/>
37+
<option id="gnu.c.compiler.option.preprocessor.def.symbols.397430201" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
38+
<listOptionValue builtIn="false" value="SRCVERSION=\&quot;0.4+b1-82-ga59b76b\&quot;"/>
39+
<listOptionValue builtIn="false" value="NO_LIBPTHREAD"/>
40+
</option>
41+
<option id="gnu.c.compiler.option.misc.pic.1952490965" name="Position Independent Code (-fPIC)" superClass="gnu.c.compiler.option.misc.pic" value="true" valueType="boolean"/>
42+
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.936057952" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
43+
</tool>
44+
<tool id="cdt.managedbuild.tool.gnu.c.linker.base.429569152" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base"/>
45+
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.1791737068" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base"/>
46+
<tool id="cdt.managedbuild.tool.gnu.assembler.lib.debug.1666040240" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.lib.debug">
47+
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1920452923" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
48+
</tool>
49+
</toolChain>
50+
</folderInfo>
51+
</configuration>
52+
</storageModule>
53+
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
54+
</cconfiguration>
55+
<cconfiguration id="cdt.managedbuild.config.gnu.lib.release.1839050857">
56+
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.lib.release.1839050857" moduleId="org.eclipse.cdt.core.settings" name="Release">
57+
<externalSettings>
58+
<externalSetting>
59+
<entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/libpmem"/>
60+
<entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/libpmem/Release"/>
61+
<entry flags="RESOLVED" kind="libraryFile" name="libpmem" srcPrefixMapping="" srcRootPath=""/>
62+
</externalSetting>
63+
</externalSettings>
64+
<extensions>
65+
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
66+
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
67+
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
68+
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
69+
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
70+
</extensions>
71+
</storageModule>
72+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
73+
<configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.lib.release.1839050857" name="Release" parent="cdt.managedbuild.config.gnu.lib.release">
74+
<folderInfo id="cdt.managedbuild.config.gnu.lib.release.1839050857." name="/" resourcePath="">
75+
<toolChain id="cdt.managedbuild.toolchain.gnu.lib.release.149662453" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.lib.release">
76+
<targetPlatform id="cdt.managedbuild.target.gnu.platform.lib.release.750999843" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.lib.release"/>
77+
<builder buildPath="${workspace_loc:/libpmem}/Release" id="cdt.managedbuild.target.gnu.builder.lib.release.1600022116" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.lib.release"/>
78+
<tool id="cdt.managedbuild.tool.gnu.archiver.lib.release.1221262937" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.lib.release"/>
79+
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.lib.release.232442852" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.lib.release">
80+
<option id="gnu.cpp.compiler.lib.release.option.optimization.level.1627895116" name="Optimization Level" superClass="gnu.cpp.compiler.lib.release.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
81+
<option id="gnu.cpp.compiler.lib.release.option.debugging.level.382034658" name="Debug Level" superClass="gnu.cpp.compiler.lib.release.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
82+
</tool>
83+
<tool id="cdt.managedbuild.tool.gnu.c.compiler.lib.release.1443179778" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.lib.release">
84+
<option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.lib.release.option.optimization.level.1249203591" name="Optimization Level" superClass="gnu.c.compiler.lib.release.option.optimization.level" valueType="enumerated"/>
85+
<option id="gnu.c.compiler.lib.release.option.debugging.level.1383806122" name="Debug Level" superClass="gnu.c.compiler.lib.release.option.debugging.level" value="gnu.c.debugging.level.none" valueType="enumerated"/>
86+
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.225031866" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
87+
</tool>
88+
<tool id="cdt.managedbuild.tool.gnu.c.linker.base.380626587" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base"/>
89+
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.1542873907" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base"/>
90+
<tool id="cdt.managedbuild.tool.gnu.assembler.lib.release.602953804" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.lib.release">
91+
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1461801567" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
92+
</tool>
93+
</toolChain>
94+
</folderInfo>
95+
</configuration>
96+
</storageModule>
97+
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
98+
</cconfiguration>
99+
</storageModule>
100+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
101+
<project id="libpmem.cdt.managedbuild.target.gnu.lib.258551526" name="Static Library" projectType="cdt.managedbuild.target.gnu.lib"/>
102+
</storageModule>
103+
<storageModule moduleId="scannerConfiguration">
104+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
105+
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.lib.debug.681755896;cdt.managedbuild.config.gnu.lib.debug.681755896.;cdt.managedbuild.tool.gnu.c.compiler.lib.debug.912813201;cdt.managedbuild.tool.gnu.c.compiler.input.936057952">
106+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
107+
</scannerConfigBuildInfo>
108+
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.lib.release.1839050857;cdt.managedbuild.config.gnu.lib.release.1839050857.;cdt.managedbuild.tool.gnu.c.compiler.lib.release.1443179778;cdt.managedbuild.tool.gnu.c.compiler.input.225031866">
109+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
110+
</scannerConfigBuildInfo>
111+
</storageModule>
112+
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
113+
<storageModule moduleId="refreshScope"/>
114+
</cproject>

libpmem/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/Debug/

libpmem/.project

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<projectDescription>
3+
<name>libpmem</name>
4+
<comment></comment>
5+
<projects>
6+
</projects>
7+
<buildSpec>
8+
<buildCommand>
9+
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
10+
<triggers>clean,full,incremental,</triggers>
11+
<arguments>
12+
</arguments>
13+
</buildCommand>
14+
<buildCommand>
15+
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
16+
<triggers>full,incremental,</triggers>
17+
<arguments>
18+
</arguments>
19+
</buildCommand>
20+
</buildSpec>
21+
<natures>
22+
<nature>org.eclipse.cdt.core.cnature</nature>
23+
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
24+
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
25+
</natures>
26+
</projectDescription>

libpmem/libpmem.c

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
/*
2+
* Copyright (c) 2014-2015, Intel Corporation
3+
*
4+
* Redistribution and use in source and binary forms, with or without
5+
* modification, are permitted provided that the following conditions
6+
* are met:
7+
*
8+
* * Redistributions of source code must retain the above copyright
9+
* notice, this list of conditions and the following disclaimer.
10+
*
11+
* * Redistributions in binary form must reproduce the above copyright
12+
* notice, this list of conditions and the following disclaimer in
13+
* the documentation and/or other materials provided with the
14+
* distribution.
15+
*
16+
* * Neither the name of Intel Corporation nor the names of its
17+
* contributors may be used to endorse or promote products derived
18+
* from this software without specific prior written permission.
19+
*
20+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21+
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22+
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23+
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24+
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25+
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26+
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27+
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28+
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31+
*/
32+
33+
/*
34+
* libpmem.c -- pmem entry points for libpmem
35+
*/
36+
37+
#include <stdio.h>
38+
#include <stdint.h>
39+
40+
#include "libpmem.h"
41+
42+
#include "pmem.h"
43+
#include "util.h"
44+
#include "out.h"
45+
46+
/*
47+
* libpmem_init -- load-time initialization for libpmem
48+
*
49+
* Called automatically by the run-time loader.
50+
*/
51+
__attribute__((constructor))
52+
static void
53+
libpmem_init(void)
54+
{
55+
out_init(PMEM_LOG_PREFIX, PMEM_LOG_LEVEL_VAR, PMEM_LOG_FILE_VAR,
56+
PMEM_MAJOR_VERSION, PMEM_MINOR_VERSION);
57+
LOG(3, NULL);
58+
util_init();
59+
}
60+
61+
/*
62+
* libpmem_fini -- libpmem cleanup routine
63+
*
64+
* Called automatically when the process terminates.
65+
*/
66+
__attribute__((destructor))
67+
static void
68+
libpmem_fini(void)
69+
{
70+
LOG(3, NULL);
71+
out_fini();
72+
}
73+
74+
/*
75+
* pmem_check_version -- see if library meets application version requirements
76+
*/
77+
const char *
78+
pmem_check_version(unsigned major_required, unsigned minor_required)
79+
{
80+
LOG(3, "major_required %u minor_required %u",
81+
major_required, minor_required);
82+
83+
if (major_required != PMEM_MAJOR_VERSION) {
84+
ERR("libpmem major version mismatch (need %u, found %u)",
85+
major_required, PMEM_MAJOR_VERSION);
86+
return out_get_errormsg();
87+
}
88+
89+
if (minor_required > PMEM_MINOR_VERSION) {
90+
ERR("libpmem minor version mismatch (need %u, found %u)",
91+
minor_required, PMEM_MINOR_VERSION);
92+
return out_get_errormsg();
93+
}
94+
95+
return NULL;
96+
}
97+
98+
/*
99+
* pmem_errormsg -- return last error message
100+
*/
101+
const char *
102+
pmem_errormsg(void)
103+
{
104+
return out_get_errormsg();
105+
}

0 commit comments

Comments
 (0)