blob: 6f23fc3e151c8ab3b13ae736a875263554f3e1b7 [file] [log] [blame]
use libc::{c_char, c_int, c_void, size_t, ssize_t};
extern "C" {
pub fn flistxattr(fd: c_int, buf: *mut c_char, size: size_t) -> ssize_t;
pub fn fgetxattr(fd: c_int, name: *const c_char, value: *mut c_void, size: size_t) -> ssize_t;
pub fn fremovexattr(fd: c_int, name: *const c_char) -> c_int;
pub fn llistxattr(path: *const c_char, buf: *mut c_char, size: size_t) -> ssize_t;
pub fn lgetxattr(
path: *const c_char,
name: *const c_char,
value: *mut c_void,
size: size_t,
) -> ssize_t;
pub fn lremovexattr(path: *const c_char, name: *const c_char) -> c_int;
}
pub unsafe fn fsetxattr(
fd: c_int,
name: *const c_char,
value: *const c_void,
size: size_t,
) -> ssize_t {
extern "C" {
fn fsetxattr(
fd: c_int,
name: *const c_char,
value: *const c_void,
size: size_t,
flags: c_int,
) -> ssize_t;
}
fsetxattr(fd, name, value, size, 0)
}
pub unsafe fn lsetxattr(
path: *const c_char,
name: *const c_char,
value: *const c_void,
size: size_t,
) -> ssize_t {
extern "C" {
fn lsetxattr(
path: *const c_char,
name: *const c_char,
value: *const c_void,
size: size_t,
flags: c_int,
) -> ssize_t;
}
lsetxattr(path, name, value, size, 0)
}