From 371b1f8f206d44a82815cf0e3cff6f17d49d2a82 Mon Sep 17 00:00:00 2001
From: Doug Coleman <doug.coleman@gmail.com>
Date: Wed, 22 Oct 2008 18:46:24 -0500
Subject: [PATCH] fix mounted on macosx

---
 basis/unix/statfs/macosx/macosx.factor |  3 +++
 basis/unix/statfs/statfs.factor        |  5 ++---
 basis/unix/types/types.factor          | 18 +++++++++---------
 basis/unix/unix.factor                 |  7 +++++++
 4 files changed, 21 insertions(+), 12 deletions(-)

diff --git a/basis/unix/statfs/macosx/macosx.factor b/basis/unix/statfs/macosx/macosx.factor
index 4bd9f55132..048c292cea 100644
--- a/basis/unix/statfs/macosx/macosx.factor
+++ b/basis/unix/statfs/macosx/macosx.factor
@@ -128,6 +128,9 @@ M: macosx mounted* ( -- array )
     [ *void* ] dip
     "statfs64" heap-size [ * memory>byte-array ] keep group ;
 
+M: macosx >mounted
+    >file-system-info ;
+
 M: macosx >file-system-info ( byte-array -- file-system-info )
     [ \ macosx-file-system-info new ] dip
     {
diff --git a/basis/unix/statfs/statfs.factor b/basis/unix/statfs/statfs.factor
index f00ffe77cd..9aef2246c0 100644
--- a/basis/unix/statfs/statfs.factor
+++ b/basis/unix/statfs/statfs.factor
@@ -10,14 +10,13 @@ flags filesystem-subtype file-system-type-name mount-on
 mount-from ;
 
 HOOK: mounted* os ( -- array )
-HOOK: mounted-struct>mounted os ( byte-array -- mounted )
+HOOK: >mounted os ( byte-array -- mounted )
 
 TUPLE: file-system-info root-directory total-free-size total-size ;
 
 HOOK: >file-system-info os ( struct -- statfs )
 
-: mounted ( -- array )
-    mounted* [ mounted-struct>mounted ] map ;
+: mounted ( -- array ) mounted* [ >mounted ] map ;      
 
 : mounted-drive ( path -- mounted/f )
     mounted
diff --git a/basis/unix/types/types.factor b/basis/unix/types/types.factor
index 51db6f5da0..65845874b1 100644
--- a/basis/unix/types/types.factor
+++ b/basis/unix/types/types.factor
@@ -2,15 +2,6 @@ USING: kernel system alien.syntax combinators vocabs.loader
 system ;
 IN: unix.types
 
-TYPEDEF: void* caddr_t
-TYPEDEF: uint in_addr_t
-TYPEDEF: uint socklen_t
-
-TYPEDEF: __uint64_t fsblkcnt_t
-TYPEDEF: fsblkcnt_t __fsblkcnt_t    
-TYPEDEF: __uint64_t    fsfilcnt_t
-TYPEDEF: fsfilcnt_t     __fsfilcnt_t
-
 TYPEDEF: char int8_t
 TYPEDEF: short int16_t
 TYPEDEF: int int32_t
@@ -36,6 +27,15 @@ TYPEDEF: ushort __uint16_t
 TYPEDEF: uint __uint32_t
 TYPEDEF: ulonglong __uint64_t
 
+TYPEDEF: void* caddr_t
+TYPEDEF: uint in_addr_t
+TYPEDEF: uint socklen_t
+
+TYPEDEF: __uint64_t fsblkcnt_t
+TYPEDEF: fsblkcnt_t __fsblkcnt_t    
+TYPEDEF: __uint64_t fsfilcnt_t
+TYPEDEF: fsfilcnt_t __fsfilcnt_t
+TYPEDEF: __uint64_t rlim_t
 
 os {
     { linux   [ "unix.types.linux"   require ] }
diff --git a/basis/unix/unix.factor b/basis/unix/unix.factor
index 2fcb83dc2c..4950daef2c 100644
--- a/basis/unix/unix.factor
+++ b/basis/unix/unix.factor
@@ -116,6 +116,13 @@ FUNCTION: passwd* getpwnam ( char* login ) ;
 FUNCTION: int getpwnam_r ( char* login, passwd* pwd, char* buffer, size_t bufsize, passwd** result ) ;
 FUNCTION: int getgroups ( int gidsetlen, gid_t* gidset ) ;
 FUNCTION: int getgrouplist ( char* name, int basegid, int* groups, int* ngroups ) ;
+FUNCTION: int getrlimit ( int resource, rlimit* rlp ) ;
+FUNCTION: int setrlimit ( int resource, rlimit* rlp ) ;
+
+FUNCTION: int getpriority ( int which, id_t who ) ;
+FUNCTION: int setpriority ( int which, id_t who, int prio ) ;
+
+FUNCTION: int getrusage ( int who, rusage* r_usage ) ;
 
 FUNCTION: group* getgrent ;
 FUNCTION: int gethostname ( char* name, int len ) ;