--- /dev/null
+USING: kernel alien.syntax math ;
+
+IN: unix.stat
+
+! FreeBSD 8.0-CURRENT
+
+C-STRUCT: stat
+ { "__dev_t" "st_dev" }
+ { "ino_t" "st_ino" }
+ { "mode_t" "st_mode" }
+ { "nlink_t" "st_nlink" }
+ { "uid_t" "st_uid" }
+ { "gid_t" "st_gid" }
+ { "__dev_t" "st_rdev" }
+ { "timespec" "st_atim" }
+ { "timespec" "st_mtim" }
+ { "timespec" "st_ctim" }
+ { "off_t" "st_size" }
+ { "blkcnt_t" "st_blocks" }
+ { "blksize_t" "st_blksize" }
+ { "fflags_t" "st_flags" }
+ { "__uint32_t" "st_gen" }
+ { "__int32_t" "st_lspare" }
+ { "timespec" "st_birthtimespec" }
+! not sure about the padding here.
+ { "__uint32_t" "pad0" }
+ { "__uint32_t" "pad1" } ;
+
+FUNCTION: int stat ( char* pathname, stat* buf ) ;
+FUNCTION: int lstat ( char* pathname, stat* buf ) ;
\ No newline at end of file
<<
os
{
- { "linux" [ "unix.stat.linux" require ] }
- { "macosx" [ "unix.stat.macosx" require ] }
+ { "linux" [ "unix.stat.linux" require ] }
+ { "macosx" [ "unix.stat.macosx" require ] }
+ { "freebsd" [ "unix.stat.freebsd" require ] }
[ drop ]
}
case
--- /dev/null
+USING: alien.syntax ;
+
+IN: unix.types
+
+TYPEDEF: ushort __uint16_t
+TYPEDEF: uint __uint32_t
+TYPEDEF: int __int32_t
+TYPEDEF: longlong __int64_t
+
+TYPEDEF: __uint32_t __dev_t
+TYPEDEF: __uint32_t ino_t
+TYPEDEF: __uint16_t mode_t
+TYPEDEF: __uint16_t nlink_t
+TYPEDEF: __uint32_t uid_t
+TYPEDEF: __uint32_t gid_t
+TYPEDEF: __int64_t off_t
+TYPEDEF: __int64_t blkcnt_t
+TYPEDEF: __uint32_t blksize_t
+TYPEDEF: __uint32_t fflags_t
\ No newline at end of file
os
{
- { "linux" [ "unix.types.linux" require ] }
- { "macosx" [ "unix.types.macosx" require ] }
+ { "linux" [ "unix.types.linux" require ] }
+ { "macosx" [ "unix.types.macosx" require ] }
+ { "freebsd" [ "unix.types.freebsd" require ] }
[ drop ]
}
case
\ No newline at end of file