1#![doc(html_root_url = "https://docs.rs/pmdk-sys/0.9.2")]
7
8use libc::{c_char, c_int, c_uint, c_void};
9use libc::{mode_t, size_t};
10
11mod base;
12
13pub mod obj;
14
15pub use base::PMEMoid;
16
17#[link(name = "pmem", kind = "static")]
18extern "C" {
19 pub fn pmem_is_pmem(addr: *const c_void, len: size_t) -> c_int;
22 pub fn pmem_persist(addr: *const c_void, len: size_t);
23 pub fn pmem_msync(addr: *const c_void, len: size_t) -> c_int;
24 pub fn pmem_map_file(
25 path: *const c_char,
26 len: size_t,
27 flags: c_int,
28 mode: mode_t,
29 mapped_lenp: *mut size_t,
30 is_pmemp: *mut c_int,
31 ) -> *mut c_void;
32 pub fn pmem_unmap(addr: *mut c_void, len: size_t) -> c_int;
33
34 pub fn pmem_flush(addr: *const c_void, len: size_t);
37 pub fn pmem_drain();
38 pub fn pmem_has_hw_drain() -> c_int;
39
40 pub fn pmem_memmove_persist(
43 pmemdest: *mut c_void,
44 src: *const c_void,
45 len: size_t,
46 ) -> *mut c_void;
47 pub fn pmem_memcpy_persist(
48 pmemdest: *mut c_void,
49 src: *const c_void,
50 len: size_t,
51 ) -> *mut c_void;
52 pub fn pmem_memset_persist(pmemdest: *mut c_void, c: c_int, len: size_t) -> *mut c_void;
53 pub fn pmem_memmove_nodrain(
54 pmemdest: *mut c_void,
55 src: *const c_void,
56 len: size_t,
57 ) -> *mut c_void;
58 pub fn pmem_memcpy_nodrain(
59 pmemdest: *mut c_void,
60 src: *const c_void,
61 len: size_t,
62 ) -> *mut c_void;
63 pub fn pmem_memset_nodrain(pmemdest: *mut c_void, c: c_int, len: size_t) -> *mut c_void;
64
65 pub fn pmem_check_version(major_required: c_uint, minor_required: c_uint) -> *const c_char;
68
69 pub fn pmem_errormsg() -> *const c_char;
72}
73
74#[link(name = "pmempool", kind = "static")]
75extern "C" {
76 pub fn pmempool_rm(path: *const c_char, flags: c_int) -> c_int;
79}