diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2019-02-20 04:02:30 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2019-02-20 04:02:30 +0000 |
commit | 10deba066e207eb142e7b61b1479c8af4016b247 (patch) | |
tree | 61791e3043df93fe56657142b0e53ceba958a23b /file.c | |
parent | 5210b89fd730815ba2510b09a890910a7995a4a1 (diff) |
Try statx syscall
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67093 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'file.c')
-rw-r--r-- | file.c | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -1112,6 +1112,23 @@ stat_without_gvl(const char *path, struct stat *st) RUBY_UBF_IO, NULL); } +#if !defined HAVE_STATX && defined __linux__ +# ifdef HAVE_SYSCALL_H +# include <syscall.h> +# elif defined HAVE_SYS_SYSCALL_H +# include <sys/syscall.h> +# endif +# if defined __NR_statx +# include <linux/stat.h> +static int statx(int dirfd, const char *pathname, int flags, + unsigned int mask, struct statx *statxbuf) +{ + return syscall(__NR_statx, dirfd, pathname, flags, mask, statxbuf); +} +# define HAVE_STATX +# endif +#endif + #ifdef HAVE_STATX typedef struct no_gvl_statx_data { struct statx *stx; |