1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
2 #pragma once
3
4 #include <stdbool.h>
5 #include <stddef.h>
6 #include <sys/types.h>
7
8 #include "time-util.h"
9
10 int getxattr_at_malloc(int fd, const char *path, const char *name, int flags, char **ret);
getxattr_malloc(const char * path,const char * name,char ** ret)11 static inline int getxattr_malloc(const char *path, const char *name, char **ret) {
12 return getxattr_at_malloc(AT_FDCWD, path, name, AT_SYMLINK_FOLLOW, ret);
13 }
lgetxattr_malloc(const char * path,const char * name,char ** ret)14 static inline int lgetxattr_malloc(const char *path, const char *name, char **ret) {
15 return getxattr_at_malloc(AT_FDCWD, path, name, 0, ret);
16 }
fgetxattr_malloc(int fd,const char * name,char ** ret)17 static inline int fgetxattr_malloc(int fd, const char *name, char **ret) {
18 return getxattr_at_malloc(fd, NULL, name, AT_EMPTY_PATH, ret);
19 }
20
21 int fd_setcrtime(int fd, usec_t usec);
22
23 int fd_getcrtime_at(int fd, const char *name, int flags, usec_t *ret);
fd_getcrtime(int fd,usec_t * ret)24 static inline int fd_getcrtime(int fd, usec_t *ret) {
25 return fd_getcrtime_at(fd, NULL, 0, ret);
26 }
27
28
29 int listxattr_at_malloc(int fd, const char *path, int flags, char **ret);
listxattr_malloc(const char * path,char ** ret)30 static inline int listxattr_malloc(const char *path, char **ret) {
31 return listxattr_at_malloc(AT_FDCWD, path, AT_SYMLINK_FOLLOW, ret);
32 }
llistxattr_malloc(const char * path,char ** ret)33 static inline int llistxattr_malloc(const char *path, char **ret) {
34 return listxattr_at_malloc(AT_FDCWD, path, 0, ret);
35 }
flistxattr_malloc(int fd,char ** ret)36 static inline int flistxattr_malloc(int fd, char **ret) {
37 return listxattr_at_malloc(fd, NULL, AT_EMPTY_PATH, ret);
38 }
39