directory/stat struct work
parent
0e9ecc1ba9
commit
613cd3fd67
|
@ -132,3 +132,40 @@ C-STRUCT: utmpx
|
|||
{ "timeval" "ut_tv" }
|
||||
{ { "char" _UTX_HOSTSIZE } "ut_host" }
|
||||
{ { "uint" 16 } "ut_pad" } ;
|
||||
|
||||
: __PTHREAD_MUTEX_SIZE__ 40 ; inline
|
||||
|
||||
C-STRUCT: _opaque_pthread_mutex_t
|
||||
{ "long" "__sig" }
|
||||
{ { "char" __PTHREAD_MUTEX_SIZE__ } "__opaque" } ;
|
||||
|
||||
TYPEDEF: _opaque_pthread_mutex_t* __darwin_pthread_mutex_t
|
||||
|
||||
C-STRUCT: DIR
|
||||
{ "int" "__dd_fd" }
|
||||
{ "long" "__dd_loc" }
|
||||
{ "long" "__dd_size" }
|
||||
{ "char*" "__dd_buf" }
|
||||
{ "int" "__dd_len" }
|
||||
{ "long" "__dd_seek" }
|
||||
{ "long" "__dd_rewind" }
|
||||
{ "int" "__dd_flags" }
|
||||
{ "__darwin_pthread_mutex_t" "__dd_lock" }
|
||||
{ "void*" "__dd_td" } ;
|
||||
|
||||
|
||||
! #define DIRSIZ(dp) \
|
||||
! ((sizeof (struct direct) - (MAXNAMLEN+1)) + (((dp)->d_namlen+1 + 3) &~ 3))
|
||||
|
||||
! __DARWIN_STRUCT_DIRENTRY { \
|
||||
|
||||
: __DARWIN_MAXPATHLEN 1024 ; inline
|
||||
: __DARWIN_MAXNAMELEN 255 ; inline
|
||||
: __DARWIN_MAXNAMELEN+1 255 ; inline
|
||||
|
||||
C-STRUCT: dirent
|
||||
{ "ino_t" "d_ino" }
|
||||
{ "__uint16_t" "d_reclen" }
|
||||
{ "__uint8_t" "d_type" }
|
||||
{ "__uint8_t" "d_namlen" }
|
||||
{ { "char" __DARWIN_MAXNAMELEN+1 } "d_name" } ;
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
USING: kernel alien.syntax math ;
|
||||
USING: kernel alien.syntax math unix math.bitwise
|
||||
alien.c-types alien sequences grouping accessors combinators ;
|
||||
IN: unix.stat
|
||||
|
||||
! Mac OS X ppc
|
||||
|
@ -30,3 +31,120 @@ FUNCTION: int lstat64 ( char* pathname, stat* buf ) ;
|
|||
|
||||
: stat ( path buf -- n ) stat64 ;
|
||||
: lstat ( path buf -- n ) lstat64 ;
|
||||
|
||||
: MNT_RDONLY HEX: 00000001 ; inline
|
||||
: MNT_SYNCHRONOUS HEX: 00000002 ; inline
|
||||
: MNT_NOEXEC HEX: 00000004 ; inline
|
||||
: MNT_NOSUID HEX: 00000008 ; inline
|
||||
: MNT_NODEV HEX: 00000010 ; inline
|
||||
: MNT_UNION HEX: 00000020 ; inline
|
||||
: MNT_ASYNC HEX: 00000040 ; inline
|
||||
: MNT_EXPORTED HEX: 00000100 ; inline
|
||||
: MNT_QUARANTINE HEX: 00000400 ; inline
|
||||
: MNT_LOCAL HEX: 00001000 ; inline
|
||||
: MNT_QUOTA HEX: 00002000 ; inline
|
||||
: MNT_ROOTFS HEX: 00004000 ; inline
|
||||
: MNT_DOVOLFS HEX: 00008000 ; inline
|
||||
: MNT_DONTBROWSE HEX: 00100000 ; inline
|
||||
: MNT_IGNORE_OWNERSHIP HEX: 00200000 ; inline
|
||||
: MNT_AUTOMOUNTED HEX: 00400000 ; inline
|
||||
: MNT_JOURNALED HEX: 00800000 ; inline
|
||||
: MNT_NOUSERXATTR HEX: 01000000 ; inline
|
||||
: MNT_DEFWRITE HEX: 02000000 ; inline
|
||||
: MNT_MULTILABEL HEX: 04000000 ; inline
|
||||
: MNT_NOATIME HEX: 10000000 ; inline
|
||||
: MNT_UNKNOWNPERMISSIONS MNT_IGNORE_OWNERSHIP ; inline
|
||||
|
||||
: MNT_VISFLAGMASK ( -- n )
|
||||
{
|
||||
MNT_RDONLY MNT_SYNCHRONOUS MNT_NOEXEC
|
||||
MNT_NOSUID MNT_NODEV MNT_UNION
|
||||
MNT_ASYNC MNT_EXPORTED MNT_QUARANTINE
|
||||
MNT_LOCAL MNT_QUOTA
|
||||
MNT_ROOTFS MNT_DOVOLFS MNT_DONTBROWSE
|
||||
MNT_IGNORE_OWNERSHIP MNT_AUTOMOUNTED MNT_JOURNALED
|
||||
MNT_NOUSERXATTR MNT_DEFWRITE MNT_MULTILABEL MNT_NOATIME
|
||||
} flags ; inline
|
||||
|
||||
: MNT_UPDATE HEX: 00010000 ; inline
|
||||
: MNT_RELOAD HEX: 00040000 ; inline
|
||||
: MNT_FORCE HEX: 00080000 ; inline
|
||||
: MNT_CMDFLAGS { MNT_UPDATE MNT_RELOAD MNT_FORCE } flags ; inline
|
||||
|
||||
: VFS_GENERIC 0 ; inline
|
||||
: VFS_NUMMNTOPS 1 ; inline
|
||||
: VFS_MAXTYPENUM 1 ; inline
|
||||
: VFS_CONF 2 ; inline
|
||||
: VFS_SET_PACKAGE_EXTS 3 ; inline
|
||||
|
||||
: MNT_WAIT 1 ; inline
|
||||
: MNT_NOWAIT 2 ; inline
|
||||
|
||||
: VFS_CTL_VERS1 HEX: 01 ; inline
|
||||
|
||||
: VFS_CTL_STATFS HEX: 00010001 ; inline
|
||||
: VFS_CTL_UMOUNT HEX: 00010002 ; inline
|
||||
: VFS_CTL_QUERY HEX: 00010003 ; inline
|
||||
: VFS_CTL_NEWADDR HEX: 00010004 ; inline
|
||||
: VFS_CTL_TIMEO HEX: 00010005 ; inline
|
||||
: VFS_CTL_NOLOCKS HEX: 00010006 ; inline
|
||||
|
||||
C-STRUCT: vfsquery
|
||||
{ "uint32_t" "vq_flags" }
|
||||
{ { "uint32_t" 31 } "vq_spare" } ;
|
||||
|
||||
: VQ_NOTRESP HEX: 0001 ; inline
|
||||
: VQ_NEEDAUTH HEX: 0002 ; inline
|
||||
: VQ_LOWDISK HEX: 0004 ; inline
|
||||
: VQ_MOUNT HEX: 0008 ; inline
|
||||
: VQ_UNMOUNT HEX: 0010 ; inline
|
||||
: VQ_DEAD HEX: 0020 ; inline
|
||||
: VQ_ASSIST HEX: 0040 ; inline
|
||||
: VQ_NOTRESPLOCK HEX: 0080 ; inline
|
||||
: VQ_UPDATE HEX: 0100 ; inline
|
||||
: VQ_FLAG0200 HEX: 0200 ; inline
|
||||
: VQ_FLAG0400 HEX: 0400 ; inline
|
||||
: VQ_FLAG0800 HEX: 0800 ; inline
|
||||
: VQ_FLAG1000 HEX: 1000 ; inline
|
||||
: VQ_FLAG2000 HEX: 2000 ; inline
|
||||
: VQ_FLAG4000 HEX: 4000 ; inline
|
||||
: VQ_FLAG8000 HEX: 8000 ; inline
|
||||
|
||||
: NFSV4_MAX_FH_SIZE 128 ; inline
|
||||
: NFSV3_MAX_FH_SIZE 64 ; inline
|
||||
: NFSV2_MAX_FH_SIZE 32 ; inline
|
||||
: NFS_MAX_FH_SIZE NFSV4_MAX_FH_SIZE ; inline
|
||||
|
||||
! C-STRUCT: fhandle
|
||||
! { "int" "fh_len" }
|
||||
! { { "uchar" NFS_MAX_FH_SIZE } "fh_data" } ;
|
||||
|
||||
! TYPEDEF: fhandle fhandle_t
|
||||
|
||||
: MFSNAMELEN 15 ; inline
|
||||
: MNAMELEN 90 ; inline
|
||||
: MFSTYPENAMELEN 16 ; inline
|
||||
|
||||
C-STRUCT: fsid_t
|
||||
{ { "int32_t" 2 } "val" } ;
|
||||
|
||||
C-STRUCT: statfs64
|
||||
{ "uint32_t" "f_bsize" }
|
||||
{ "int32_t" "f_iosize" }
|
||||
{ "uint64_t" "f_blocks" }
|
||||
{ "uint64_t" "f_bfree" }
|
||||
{ "uint64_t" "f_bavail" }
|
||||
{ "uint64_t" "f_files" }
|
||||
{ "uint64_t" "f_ffree" }
|
||||
{ "fsid_t" "f_fsid" }
|
||||
{ "uid_t" "f_owner" }
|
||||
{ "uint32_t" "f_type" }
|
||||
{ "uint32_t" "f_flags" }
|
||||
{ "uint32_t" "f_fssubtype" }
|
||||
{ { "char" MFSTYPENAMELEN } "f_fstypename" }
|
||||
{ { "char" MAXPATHLEN } "f_mntonname" }
|
||||
{ { "char" MAXPATHLEN } "f_mntfromname" }
|
||||
{ { "uint32_t" 8 } "f_reserved" } ;
|
||||
|
||||
FUNCTION: int statfs64 ( char* path, statfs64* buf ) ;
|
||||
FUNCTION: int getmntinfo64 ( statfs64** mntbufp, int flags ) ;
|
||||
|
|
|
@ -27,11 +27,7 @@ FUNCTION: int mkdir ( char* path, mode_t mode ) ;
|
|||
} case >>
|
||||
|
||||
: file-status ( pathname -- stat )
|
||||
"stat" <c-object> [
|
||||
[ stat ] unix-system-call drop
|
||||
] keep ;
|
||||
"stat" <c-object> [ [ stat ] unix-system-call drop ] keep ;
|
||||
|
||||
: link-status ( pathname -- stat )
|
||||
"stat" <c-object> [
|
||||
[ lstat ] unix-system-call drop
|
||||
] keep ;
|
||||
"stat" <c-object> [ [ lstat ] unix-system-call drop ] keep ;
|
||||
|
|
Loading…
Reference in New Issue