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