exif-sys 0.1.0

FFI bindings to libexif
use libc::c_void;

use utils::ExifLong;

pub type ExifMemAllocFunc = extern "C" fn (s: ExifLong) -> *mut c_void;
pub type ExifMemReallocFunc = extern "C" fn (p: *mut c_void, s: ExifLong) -> *mut c_void;
pub type ExifMemFreeFunc = extern "C" fn (p: *mut c_void);

#[repr(C)]
pub struct ExifMem {
    __private: c_void,
}

extern "C" {
    pub fn exif_mem_new(a: ExifMemAllocFunc, r: ExifMemReallocFunc, f: ExifMemFreeFunc) -> *mut ExifMem;
    pub fn exif_mem_ref(m: *mut ExifMem);
    pub fn exif_mem_unref(m: *mut ExifMem);
    pub fn exif_mem_alloc(m: *mut ExifMem, s: ExifLong) -> *mut c_void;
    pub fn exif_mem_realloc(m: *mut ExifMem, p: *mut c_void, s: ExifLong) -> *mut c_void;
    pub fn exif_mem_free(m: *mut ExifMem, p: *mut c_void);
    pub fn exif_mem_new_default() -> *mut ExifMem;
}