Changeset View
Changeset View
Standalone View
Standalone View
sys/compat/linux/linux_stats.c
Show First 20 Lines • Show All 657 Lines • ▼ Show 20 Lines | linux_fstat64(struct thread *td, struct linux_fstat64_args *args) | ||||
return (error); | return (error); | ||||
} | } | ||||
int | int | ||||
linux_fstatat64(struct thread *td, struct linux_fstatat64_args *args) | linux_fstatat64(struct thread *td, struct linux_fstatat64_args *args) | ||||
{ | { | ||||
char *path; | char *path; | ||||
int error, dfd, flag; | int error, dfd, flag, unsupported; | ||||
struct stat buf; | struct stat buf; | ||||
if (args->flag & ~(LINUX_AT_SYMLINK_NOFOLLOW | LINUX_AT_EMPTY_PATH)) { | unsupported = args->flag & ~(LINUX_AT_SYMLINK_NOFOLLOW | LINUX_AT_EMPTY_PATH); | ||||
linux_msg(td, "fstatat64 unsupported flag 0x%x", args->flag); | if (unsupported != 0) { | ||||
linux_msg(td, "fstatat64 unsupported flag 0x%x", unsupported); | |||||
return (EINVAL); | return (EINVAL); | ||||
} | } | ||||
flag = (args->flag & LINUX_AT_SYMLINK_NOFOLLOW) ? | flag = (args->flag & LINUX_AT_SYMLINK_NOFOLLOW) ? | ||||
AT_SYMLINK_NOFOLLOW : 0; | AT_SYMLINK_NOFOLLOW : 0; | ||||
flag |= (args->flag & LINUX_AT_EMPTY_PATH) ? | flag |= (args->flag & LINUX_AT_EMPTY_PATH) ? | ||||
AT_EMPTY_PATH : 0; | AT_EMPTY_PATH : 0; | ||||
dfd = (args->dfd == LINUX_AT_FDCWD) ? AT_FDCWD : args->dfd; | dfd = (args->dfd == LINUX_AT_FDCWD) ? AT_FDCWD : args->dfd; | ||||
Show All 12 Lines | |||||
} | } | ||||
#else /* __amd64__ && !COMPAT_LINUX32 */ | #else /* __amd64__ && !COMPAT_LINUX32 */ | ||||
int | int | ||||
linux_newfstatat(struct thread *td, struct linux_newfstatat_args *args) | linux_newfstatat(struct thread *td, struct linux_newfstatat_args *args) | ||||
{ | { | ||||
char *path; | char *path; | ||||
int error, dfd, flag; | int error, dfd, flag, unsupported; | ||||
struct stat buf; | struct stat buf; | ||||
if (args->flag & ~(LINUX_AT_SYMLINK_NOFOLLOW | LINUX_AT_EMPTY_PATH)) { | unsupported = args->flag & ~(LINUX_AT_SYMLINK_NOFOLLOW | LINUX_AT_EMPTY_PATH); | ||||
linux_msg(td, "fstatat unsupported flag 0x%x", args->flag); | if (unsupported != 0) { | ||||
linux_msg(td, "fstatat unsupported flag 0x%x", unsupported); | |||||
return (EINVAL); | return (EINVAL); | ||||
} | } | ||||
flag = (args->flag & LINUX_AT_SYMLINK_NOFOLLOW) ? | flag = (args->flag & LINUX_AT_SYMLINK_NOFOLLOW) ? | ||||
AT_SYMLINK_NOFOLLOW : 0; | AT_SYMLINK_NOFOLLOW : 0; | ||||
flag |= (args->flag & LINUX_AT_EMPTY_PATH) ? | flag |= (args->flag & LINUX_AT_EMPTY_PATH) ? | ||||
AT_EMPTY_PATH : 0; | AT_EMPTY_PATH : 0; | ||||
▲ Show 20 Lines • Show All 52 Lines • ▼ Show 20 Lines | out: | ||||
vrele(vp); | vrele(vp); | ||||
return (error); | return (error); | ||||
} | } | ||||
int | int | ||||
linux_statx(struct thread *td, struct linux_statx_args *args) | linux_statx(struct thread *td, struct linux_statx_args *args) | ||||
{ | { | ||||
char *path; | char *path; | ||||
int error, dirfd, flags; | int error, dirfd, flags, unsupported; | ||||
struct stat buf; | struct stat buf; | ||||
if (args->flags & ~(LINUX_AT_SYMLINK_NOFOLLOW | LINUX_AT_EMPTY_PATH)) { | unsupported = args->flags & ~(LINUX_AT_SYMLINK_NOFOLLOW | LINUX_AT_EMPTY_PATH); | ||||
linux_msg(td, "statx unsupported flags 0x%x", args->flags); | if (unsupported != 0) { | ||||
linux_msg(td, "statx unsupported flags 0x%x", unsupported); | |||||
return (EINVAL); | return (EINVAL); | ||||
} | } | ||||
flags = (args->flags & LINUX_AT_SYMLINK_NOFOLLOW) ? | flags = (args->flags & LINUX_AT_SYMLINK_NOFOLLOW) ? | ||||
AT_SYMLINK_NOFOLLOW : 0; | AT_SYMLINK_NOFOLLOW : 0; | ||||
flags |= (args->flags & LINUX_AT_EMPTY_PATH) ? | flags |= (args->flags & LINUX_AT_EMPTY_PATH) ? | ||||
AT_EMPTY_PATH : 0; | AT_EMPTY_PATH : 0; | ||||
Show All 15 Lines |