1 | use libc::{c_char, c_int, c_void, size_t, ssize_t}; |
2 | |
3 | extern "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 | |
18 | pub 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 | |
36 | pub 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 | |