1 ! Copyright (C) 2005 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
4 USING: alien errors kernel math namespaces ;
6 ! Alien wrappers for various Unix libc functions.
9 FUNCTION: int err_no ( ) ;
12 FUNCTION: char* strerror ( int errno ) ;
13 FUNCTION: int open ( char* path, int flags, int prot ) ;
14 FUNCTION: void close ( int fd ) ;
15 FUNCTION: int fcntl ( int fd, int cmd, int arg ) ;
16 FUNCTION: ssize_t read ( int fd, ulong buf, size_t nbytes ) ;
17 FUNCTION: ssize_t write ( int fd, ulong buf, size_t nbytes ) ;
24 : make-timeval ( ms -- timeval )
27 [ set-timeval-usec ] keep
28 [ set-timeval-sec ] keep ;
30 FUNCTION: int select ( int nfds, void* readfds, void* writefds, void* exceptfds, timeval* timeout ) ;
37 FIELD: void* addr-list
40 : hostent-addr hostent-addr-list *void* *uint ;
42 : gethostbyname ( name -- hostent )
43 "hostent*" "libc" "gethostbyname" [ "char*" ] alien-invoke ;
45 FUNCTION: int socket ( int domain, int type, int protocol ) ;
46 FUNCTION: int setsockopt ( int s, int level, int optname, void* optval, socklen_t optlen ) ;
47 FUNCTION: int connect ( int s, sockaddr-in* name, socklen_t namelen ) ;
48 FUNCTION: int bind ( int s, sockaddr-in* name, socklen_t namelen ) ;
49 FUNCTION: int listen ( int s, int backlog ) ;
50 FUNCTION: int accept ( int s, sockaddr-in* sockaddr, socklen_t* socklen ) ;
51 FUNCTION: uint htonl ( uint n ) ;
52 FUNCTION: ushort htons ( ushort n ) ;
53 FUNCTION: uint ntohl ( uint n ) ;
54 FUNCTION: ushort ntohs ( ushort n ) ;