1extern crate libc;
13
14use ::libc::{size_t, mode_t};
15use ::libc::{c_void, c_char, c_int, c_uint};
16
17#[allow(dead_code)]
18#[link(name = "pmem")]
19extern "C" {
20 pub fn pmem_is_pmem(addr: *const c_void, len: size_t) -> c_int;
23 pub fn pmem_persist(addr: *const c_void, len: size_t);
24 pub fn pmem_msync(addr: *const c_void, len: size_t) -> c_int;
25 pub fn pmem_map_file(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) -> *mut c_void;
31 pub fn pmem_unmap(addr: *mut c_void, len: size_t) -> c_int;
32
33 pub fn pmem_flush(addr: *const c_void, len: size_t);
36 pub fn pmem_drain();
37 pub fn pmem_has_hw_drain() -> c_int;
38
39 pub fn pmem_memmove_persist(pmemdest: *mut c_void, src: *const c_void, len: size_t) -> *mut c_void;
42 pub fn pmem_memcpy_persist(pmemdest: *mut c_void, src: *const c_void, len: size_t) -> *mut c_void;
43 pub fn pmem_memset_persist(pmemdest: *mut c_void, c: c_int, len: size_t) -> *mut c_void;
44 pub fn pmem_memmove_nodrain(pmemdest: *mut c_void, src: *const c_void, len: size_t) -> *mut c_void;
45 pub fn pmem_memcpy_nodrain(pmemdest: *mut c_void, src: *const c_void, len: size_t) -> *mut c_void;
46 pub fn pmem_memset_nodrain(pmemdest: *mut c_void, c: c_int, len: size_t) -> *mut c_void;
47
48 pub fn pmem_check_version(major_required: c_uint, minor_required: c_uint) -> *const c_char;
51
52 pub fn pmem_errormsg() -> *const c_char;
55}