USING: alien.c-types alien.syntax classes.struct unix.types unix.ffi.bsd ;
IN: unix.ffi
+CONSTANT: AF_INET 2
+ALIAS: PF_INET AF_INET
CONSTANT: AF_INET6 28
ALIAS: PF_INET6 AF_INET6
CONSTANT: FD_SETSIZE 1024
+STRUCT: sockaddr
+ { sa_len uchar }
+ { sa_family __uint8_t }
+ { sa_data char[14] } ;
+
STRUCT: addrinfo
{ flags int }
{ family int }
CONSTANT: MNT_SUSPEND 4 ! suspend file system after sync
-FUNCTION-ALIAS: getfsstat int getfsstat ( statfs* buf, long bufsize, int flags )
-FUNCTION-ALIAS: getmntinfo int getmntinfo ( statfs **mntbufp, int flags )
+FUNCTION: int getfsstat ( statfs* buf, long bufsize, int flags )
+FUNCTION: int getmntinfo ( statfs **mntbufp, int flags )
IN: unix.kqueue
STRUCT: kevent
- { ident ulong }
+ { ident __uint64_t }
{ filter short }
{ flags ushort }
{ fflags uint }
- { data __uint64_t }
+ { data __int64_t }
{ udata void* }
- { ext[4] __uint64_t } ;
+ { ext __uint64_t[4] } ;
FUNCTION-ALIAS: kevent-func int kevent ( int kq, kevent* changelist, int nchanges, kevent* eventlist, int nevents, timespec* timeout )
! stat64 structure
+STRUCT: fbsd-timespec
+ { tv_sec __int32_t }
+ { tv_nsec long } ;
+
STRUCT: stat
{ st_dev dev_t }
{ st_ino ino_t }
{ st_nlink nlink_t }
{ st_mode mode_t }
- { st_pading0 __int16_t }
+ { st_padding0 __int16_t }
{ st_uid uid_t }
{ st_gid gid_t }
- { st_pading1 __int32_t }
+ { st_padding1 __int32_t }
{ st_rdev dev_t }
{ st_atimespec timespec }
{ st_mtimespec timespec }
CONSTANT: STAFS_VERSION 0x20140518
STRUCT: statfs
- { f_version uint32_t }
- { f_type uint32_t }
- { f_flags uint64_t }
- { f_bsize uint64_t }
- { f_iosize uint64_t }
- { f_blocks uint64_t }
- { f_bfree uint64_t }
- { f_bavail int64_t }
- { f_files uint64_t }
- { f_ffree int64_t }
- { f_syncwrites uint64_t }
- { f_asyncwrites uint64_t }
- { f_syncreads uint64_t }
- { f_asyncreads uint64_t }
- { f_spare uint64_t[10] }
- { f_namemax uint32_t }
+ { f_version __uint32_t }
+ { f_type __uint32_t }
+ { f_flags __uint64_t }
+ { f_bsize __uint64_t }
+ { f_iosize __uint64_t }
+ { f_blocks __uint64_t }
+ { f_bfree __uint64_t }
+ { f_bavail __int64_t }
+ { f_files __uint64_t }
+ { f_ffree __int64_t }
+ { f_syncwrites __uint64_t }
+ { f_asyncwrites __uint64_t }
+ { f_syncreads __uint64_t }
+ { f_asyncreads __uint64_t }
+ { f_spare __uint64_t[10] }
+ { f_namemax __uint32_t }
{ f_owner uid_t }
{ f_fsid fsid_t }
{ f_charspare char[80] }
TYPEDEF: int __int32_t
TYPEDEF: longlong __int64_t
-TYPEDEF: __int32_t dev_t
-TYPEDEF: __uint32_t ino_t
+TYPEDEF: __uint64_t dev_t
+TYPEDEF: __uint64_t ino_t
TYPEDEF: __uint16_t mode_t
-TYPEDEF: __uint16_t nlink_t
+TYPEDEF: __uint64_t nlink_t
TYPEDEF: __uint32_t uid_t
TYPEDEF: __uint32_t gid_t
TYPEDEF: __int64_t off_t
TYPEDEF: long ssize_t
TYPEDEF: int pid_t
TYPEDEF: long time_t
+TYPEDEF: __uint64_t fsblkcnt_t
+TYPEDEF: __uint64_t fsfilcnt_t