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 ) ;