From 5dd26a90665590271724fae0b07b4fdd480ea6b1 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Tue, 29 Apr 2014 13:54:27 -0700 Subject: [PATCH] unix.ffi: be more explicit about dirent64. --- basis/io/directories/unix/linux/linux.factor | 2 +- basis/unix/ffi/linux/linux.factor | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/basis/io/directories/unix/linux/linux.factor b/basis/io/directories/unix/linux/linux.factor index bc1e53366d..45c1a146d8 100644 --- a/basis/io/directories/unix/linux/linux.factor +++ b/basis/io/directories/unix/linux/linux.factor @@ -12,6 +12,6 @@ IN: io.directories.unix.linux M: linux (directory-entries) ( path -- seq ) [ - dirent + dirent64 '[ _ _ next-dirent ] [ >directory-entry ] produce nip ] with-unix-directory ; diff --git a/basis/unix/ffi/linux/linux.factor b/basis/unix/ffi/linux/linux.factor index 31afb2365d..711bf74209 100644 --- a/basis/unix/ffi/linux/linux.factor +++ b/basis/unix/ffi/linux/linux.factor @@ -98,17 +98,18 @@ STRUCT: passwd { pw_dir c-string } { pw_shell c-string } ; -! dirent64 -STRUCT: dirent +STRUCT: dirent64 { d_ino ulonglong } { d_off longlong } { d_reclen ushort } { d_type uchar } { d_name char[256] } ; +ALIAS: dirent dirent64 + FUNCTION: int open64 ( c-string path, int flags, int prot ) ; -FUNCTION: dirent* readdir64 ( DIR* dirp ) ; -FUNCTION: int readdir64_r ( void* dirp, dirent* entry, dirent** result ) ; +FUNCTION: dirent64* readdir64 ( DIR* dirp ) ; +FUNCTION: int readdir64_r ( void* dirp, dirent64* entry, dirent64** result ) ; FUNCTION: ssize_t sendfile ( int out_fd, int in_fd, off_t* offset, size_t count ) ;