From d686ea1293b88d50f5b241dab51465724e5cc5ea Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Mon, 20 Oct 2008 03:01:44 -0500 Subject: [PATCH] netbsd work --- basis/unix/statfs/netbsd/netbsd.factor | 43 +++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/basis/unix/statfs/netbsd/netbsd.factor b/basis/unix/statfs/netbsd/netbsd.factor index f9c86e117f..f72eb7da27 100644 --- a/basis/unix/statfs/netbsd/netbsd.factor +++ b/basis/unix/statfs/netbsd/netbsd.factor @@ -1,7 +1,48 @@ ! Copyright (C) 2008 Doug Coleman. ! See http://factorcode.org/license.txt for BSD license. -USING: alien.syntax kernel ; +USING: alien.syntax kernel io.files unix.stat math unix +combinators system io.backend accessors alien.c-types +io.encodings.utf8 alien.strings ; IN: unix.statfs.netbsd +TUPLE: netbsd-file-system-info < file-system-info +flag bsize frsize io-size +blocks blocks-free blocks-available blocks-reserved +files ffree +sync-reads sync-writes async-reads async-writes +fsidx fsid namemax owner spare fstype mnotonname mntfromname +file-system-type-name mount-from ; +: statvfs>file-system-info ( byte-array -- netbsd-file-system-info ) + [ \ netbsd-file-system-info new ] dip + { + [ + [ statvfs-f_bsize ] + [ statvfs-f_bavail ] bi * >>free-space + ] + [ statvfs-f_flag >>flag ] + [ statvfs-f_bsize >>bsize ] + [ statvfs-f_frsize >>frsize ] + [ statvfs-f_iosize >>io-size ] + [ statvfs-f_blocks >>blocks ] + [ statvfs-f_bfree >>blocks-free ] + [ statvfs-f_favail >>flag ] + [ statvfs-f_fresvd >>flag ] + [ statvfs-f_files >>files ] + [ statvfs-f_ffree >>ffree ] + [ statvfs-f_syncreads >>sync-reads ] + [ statvfs-f_syncwrites >>sync-writes ] + [ statvfs-f_asyncreads >>async-writes ] + [ statvfs-f_asyncwrites >>async-writes ] + [ statvfs-f_fsidx >>fsidx ] + [ statvfs-f_namemax >>namemax ] + [ statvfs-f_owner >>owner ] + [ statvfs-f_spare >>spare ] + [ statvfs-f_fstypename utf8 alien>string >>file-system-type-name ] + [ statvfs-f_mntonname utf8 alien>string >>mount-on ] + [ statvfs-f_mntfromname utf8 alien>string >>mount-from ] + } cleave ; +M: netbsd file-system-info + normalize-path "statvfs" tuck statvfs io-error + statvfs>file-system-info ;