ffi structs and typedefs
parent
9940031cda
commit
9228d367a1
|
@ -117,3 +117,18 @@ C-STRUCT: addrinfo
|
|||
: ETIME 101 ; inline
|
||||
: EOPNOTSUPP 102 ; inline
|
||||
: ENOPOLICY 103 ; inline
|
||||
|
||||
: _UTX_USERSIZE 256 ; inline
|
||||
: _UTX_LINESIZE 32 ; inline
|
||||
: _UTX_IDSIZE 4 ; inline
|
||||
: _UTX_HOSTSIZE 256 ; inline
|
||||
|
||||
C-STRUCT: utmpx
|
||||
{ { "char" _UTX_USERSIZE } "ut_user" }
|
||||
{ { "char" _UTX_IDSIZE } "ut_id" }
|
||||
{ { "char" _UTX_LINESIZE } "ut_line" }
|
||||
{ "pid_t" "ut_pid" }
|
||||
{ "short" "ut_type" }
|
||||
{ "timeval" "ut_tv" }
|
||||
{ { "char" _UTX_HOSTSIZE } "ut_host" }
|
||||
{ { "uint" 16 } "ut_pad" } ;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
USING: alien.syntax ;
|
||||
USING: alien.syntax alien.c-types math ;
|
||||
IN: unix
|
||||
|
||||
: FD_SETSIZE 256 ; inline
|
||||
|
@ -111,3 +111,46 @@ C-STRUCT: addrinfo
|
|||
: ENOLINK 95 ; inline
|
||||
: EPROTO 96 ; inline
|
||||
: ELAST 96 ; inline
|
||||
|
||||
TYPEDEF: __uint8_t sa_family_t
|
||||
|
||||
: _UTX_USERSIZE 32 ; inline
|
||||
: _UTX_LINESIZE 32 ; inline
|
||||
: _UTX_IDSIZE 4 ; inline
|
||||
: _UTX_HOSTSIZE 256 ; inline
|
||||
|
||||
: _SS_MAXSIZE ( -- n )
|
||||
128 ; inline
|
||||
|
||||
: _SS_ALIGNSIZE ( -- n )
|
||||
"__int64_t" heap-size ; inline
|
||||
|
||||
: _SS_PAD1SIZE ( -- n )
|
||||
_SS_ALIGNSIZE 2 - ; inline
|
||||
|
||||
: _SS_PAD2SIZE ( -- n )
|
||||
_SS_MAXSIZE 2 - _SS_PAD1SIZE - _SS_ALIGNSIZE - ; inline
|
||||
|
||||
C-STRUCT: sockaddr_storage
|
||||
{ "__uint8_t" "ss_len" }
|
||||
{ "sa_family_t" "ss_family" }
|
||||
{ { "char" _SS_PAD1SIZE } "__ss_pad1" }
|
||||
{ "__int64_t" "__ss_align" }
|
||||
{ { "char" _SS_PAD2SIZE } "__ss_pad2" } ;
|
||||
|
||||
C-STRUCT: exit_struct
|
||||
{ "uint16_t" "e_termination" }
|
||||
{ "uint16_t" "e_exit" } ;
|
||||
|
||||
C-STRUCT: utmpx
|
||||
{ { "char" _UTX_USERSIZE } "ut_user" }
|
||||
{ { "char" _UTX_IDSIZE } "ut_id" }
|
||||
{ { "char" _UTX_LINESIZE } "ut_line" }
|
||||
{ { "char" _UTX_HOSTSIZE } "ut_host" }
|
||||
{ "uint16_t" "ut_session" }
|
||||
{ "uint16_t" "ut_type" }
|
||||
{ "pid_t" "ut_pid" }
|
||||
{ "exit_struct" "ut_exit" }
|
||||
{ "sockaddr_storage" "ut_ss" }
|
||||
{ "timeval" "ut_tv" }
|
||||
{ { "uint32_t" 10 } "ut_pad" } ;
|
||||
|
|
|
@ -15,18 +15,18 @@ IN: unix.stat
|
|||
: S_IFSOCK OCT: 140000 ; inline ! Socket.
|
||||
|
||||
! File Access Permissions
|
||||
: S_ISUID OCT: 0004000 ; inline
|
||||
: S_ISGID OCT: 0002000 ; inline
|
||||
: S_ISVTX OCT: 0001000 ; inline
|
||||
: S_IRUSR OCT: 0000400 ; inline ! r owner
|
||||
: S_IWUSR OCT: 0000200 ; inline ! w owner
|
||||
: S_IXUSR OCT: 0000100 ; inline ! x owner
|
||||
: S_IRGRP OCT: 0000040 ; inline ! r group
|
||||
: S_IWGRP OCT: 0000020 ; inline ! w group
|
||||
: S_IXGRP OCT: 0000010 ; inline ! x group
|
||||
: S_IROTH OCT: 0000004 ; inline ! r other
|
||||
: S_IWOTH OCT: 0000002 ; inline ! w other
|
||||
: S_IXOTH OCT: 0000001 ; inline ! x other
|
||||
: UID OCT: 0004000 ; inline
|
||||
: GID OCT: 0002000 ; inline
|
||||
: STICKY OCT: 0001000 ; inline
|
||||
: USER-READ OCT: 0000400 ; inline ! r owner
|
||||
: USER-WRITE OCT: 0000200 ; inline ! w owner
|
||||
: USER-EXECUTE OCT: 0000100 ; inline ! x owner
|
||||
: GROUP-READ OCT: 0000040 ; inline ! r group
|
||||
: GROUP-WRITE OCT: 0000020 ; inline ! w group
|
||||
: GROUP-EXECUTE OCT: 0000010 ; inline ! x group
|
||||
: OTHER-READ OCT: 0000004 ; inline ! r other
|
||||
: OTHER-WRITE OCT: 0000002 ; inline ! w other
|
||||
: OTHER-EXECUTE OCT: 0000001 ; inline ! x other
|
||||
|
||||
FUNCTION: int chmod ( char* path, mode_t mode ) ;
|
||||
FUNCTION: int fchmod ( int fd, mode_t mode ) ;
|
||||
|
|
|
@ -3,6 +3,29 @@ system ;
|
|||
IN: unix.types
|
||||
|
||||
TYPEDEF: void* caddr_t
|
||||
TYPEDEF: uint in_addr_t
|
||||
TYPEDEF: uint socklen_t
|
||||
|
||||
TYPEDEF: char int8_t
|
||||
TYPEDEF: short int16_t
|
||||
TYPEDEF: int int32_t
|
||||
TYPEDEF: longlong int64_t
|
||||
|
||||
TYPEDEF: uchar uint8_t
|
||||
TYPEDEF: ushort uint16_t
|
||||
TYPEDEF: uint uint32_t
|
||||
TYPEDEF: ulonglong uint64_t
|
||||
|
||||
TYPEDEF: char __int8_t
|
||||
TYPEDEF: short __int16_t
|
||||
TYPEDEF: int __int32_t
|
||||
TYPEDEF: longlong __int64_t
|
||||
|
||||
TYPEDEF: uchar __uint8_t
|
||||
TYPEDEF: ushort __uint16_t
|
||||
TYPEDEF: uint __uint32_t
|
||||
TYPEDEF: ulonglong __uint64_t
|
||||
|
||||
|
||||
os {
|
||||
{ linux [ "unix.types.linux" require ] }
|
||||
|
|
|
@ -7,10 +7,6 @@ stack-checker macros locals generalizations unix.types
|
|||
debugger io prettyprint ;
|
||||
IN: unix
|
||||
|
||||
TYPEDEF: uint in_addr_t
|
||||
TYPEDEF: uint socklen_t
|
||||
TYPEDEF: int int32_t
|
||||
|
||||
: PROT_NONE 0 ; inline
|
||||
: PROT_READ 1 ; inline
|
||||
: PROT_WRITE 2 ; inline
|
||||
|
|
Loading…
Reference in New Issue