1use libc::{c_char, c_int, c_void, size_t, ssize_t};
2
3extern "C" {
4 pub fn flistxattr(fd: c_int, buf: *mut c_char, size: size_t) -> ssize_t;
5 pub fn fgetxattr(fd: c_int, name: *const c_char, value: *mut c_void, size: size_t) -> ssize_t;
6 pub fn fremovexattr(fd: c_int, name: *const c_char) -> c_int;
7
8 pub fn llistxattr(path: *const c_char, buf: *mut c_char, size: size_t) -> ssize_t;
9 pub fn lgetxattr(
10 path: *const c_char,
11 name: *const c_char,
12 value: *mut c_void,
13 size: size_t,
14 ) -> ssize_t;
15 pub fn lremovexattr(path: *const c_char, name: *const c_char) -> c_int;
16}
17
18pub unsafe fn fsetxattr(
19 fd: c_int,
20 name: *const c_char,
21 value: *const c_void,
22 size: size_t,
23) -> ssize_t {
24 extern "C" {
25 fn fsetxattr(
26 fd: c_int,
27 name: *const c_char,
28 value: *const c_void,
29 size: size_t,
30 flags: c_int,
31 ) -> ssize_t;
32 }
33 fsetxattr(fd, name, value, size, flags:0)
34}
35
36pub unsafe fn lsetxattr(
37 path: *const c_char,
38 name: *const c_char,
39 value: *const c_void,
40 size: size_t,
41) -> ssize_t {
42 extern "C" {
43 fn lsetxattr(
44 path: *const c_char,
45 name: *const c_char,
46 value: *const c_void,
47 size: size_t,
48 flags: c_int,
49 ) -> ssize_t;
50 }
51 lsetxattr(path, name, value, size, flags:0)
52}
53