Просмотр исходного кода

add statx syscall wrapper

Software like polkit start using the statx function.
So add a syscall wrapper for it. Ported over from glibc.

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Waldemar Brodkorb 1 неделя назад
Родитель
Сommit
d3a819aff2
2 измененных файлов с 28 добавлено и 3 удалено
  1. 0 3
      include/sys/stat.h
  2. 28 0
      libc/sysdeps/linux/common/statx.c

+ 0 - 3
include/sys/stat.h

@@ -392,12 +392,9 @@ extern int futimens (int __fd, const struct timespec __times[2]) __THROW;
 #undef _STAT_VER
 #undef _MKNOD_VER
 
-#ifdef __UCLIBC_HAVE_STATX__
 #ifdef __USE_GNU
 # include <bits/statx.h>
 #endif
-#endif
-
 
 __END_DECLS
 

+ 28 - 0
libc/sysdeps/linux/common/statx.c

@@ -0,0 +1,28 @@
+/* Linux statx implementation. modified for uClibc-ng.
+   Copyright (C) 2018-2026 Free Software Foundation, Inc.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <sys/stat.h>
+#include <sysdep.h>
+
+int
+statx (int fd, const char *path, int flags,
+       unsigned int mask, struct statx *buf)
+{
+  int ret = INLINE_SYSCALL (statx, 5, fd, path, flags, mask, buf);
+  return ret;
+}