]> gitweb.factorcode.org Git - factor.git/blob - basis/unix/ffi/macosx/macosx.factor
unix.ffi,windows.winsock: add the rest of the AI_* flags
[factor.git] / basis / unix / ffi / macosx / macosx.factor
1 USING: alien alien.c-types alien.libraries alien.syntax
2 classes.struct combinators kernel system unix unix.time
3 unix.types vocabs vocabs.loader ;
4 IN: unix.ffi
5
6 CONSTANT: MAXPATHLEN 1024
7
8 CONSTANT: O_RDONLY   0x0000
9 CONSTANT: O_WRONLY   0x0001
10 CONSTANT: O_RDWR     0x0002
11 CONSTANT: O_NONBLOCK 0x0004
12 CONSTANT: O_APPEND   0x0008
13 CONSTANT: O_CREAT    0x0200
14 CONSTANT: O_TRUNC    0x0400
15 CONSTANT: O_EXCL     0x0800
16 CONSTANT: O_NOCTTY   0x20000
17 ALIAS: O_NDELAY O_NONBLOCK
18
19 CONSTANT: SOL_SOCKET 0xffff
20 CONSTANT: SO_REUSEADDR 0x4
21 CONSTANT: SO_KEEPALIVE 0x8
22 CONSTANT: SO_DONTROUTE 0x10
23 CONSTANT: SO_BROADCAST 0x20
24 CONSTANT: SO_OOBINLINE 0x100
25 CONSTANT: SO_SNDBUF 0x1001
26 CONSTANT: SO_RCVBUF 0x1002
27 CONSTANT: SO_SNDTIMEO 0x1005
28 CONSTANT: SO_RCVTIMEO 0x1006
29
30 CONSTANT: F_SETFD 2
31 CONSTANT: F_SETFL 4
32 CONSTANT: FD_CLOEXEC 1
33
34 STRUCT: sockaddr-in
35     { len uchar }
36     { family uchar }
37     { port ushort }
38     { addr in_addr_t }
39     { unused longlong } ;
40
41 STRUCT: sockaddr-in6
42     { len uchar }
43     { family uchar }
44     { port ushort }
45     { flowinfo uint }
46     { addr uchar[16] }
47     { scopeid uint } ;
48
49 STRUCT: sockaddr-un
50     { len uchar }
51     { family uchar }
52     { path char[104] } ;
53
54 STRUCT: passwd
55     { pw_name c-string }
56     { pw_passwd c-string }
57     { pw_uid uid_t }
58     { pw_gid gid_t }
59     { pw_change time_t }
60     { pw_class c-string }
61     { pw_gecos c-string }
62     { pw_dir c-string }
63     { pw_shell c-string }
64     { pw_expire time_t }
65     { pw_fields int } ;
66
67 CONSTANT: max-un-path 104
68
69 CONSTANT: SOCK_STREAM 1
70 CONSTANT: SOCK_DGRAM 2
71 CONSTANT: SOCK_RAW 3
72
73 CONSTANT: AF_UNSPEC 0
74 CONSTANT: AF_UNIX 1
75 CONSTANT: AF_INET 2
76
77 ALIAS: PF_UNSPEC AF_UNSPEC
78 ALIAS: PF_UNIX AF_UNIX
79 ALIAS: PF_INET AF_INET
80
81 CONSTANT: IPPROTO_TCP 6
82 CONSTANT: IPPROTO_UDP 17
83
84 CONSTANT: SEEK_SET 0
85 CONSTANT: SEEK_CUR 1
86 CONSTANT: SEEK_END 2
87
88 CONSTANT: FD_SETSIZE 1024
89
90 CONSTANT: AF_INET6 30
91 ALIAS: PF_INET6 AF_INET6
92
93 STRUCT: addrinfo
94     { flags int }
95     { family int }
96     { socktype int }
97     { protocol int }
98     { addrlen socklen_t }
99     { canonname c-string }
100     { addr void* }
101     { next addrinfo* } ;
102
103 CONSTANT: _UTX_USERSIZE 256
104 CONSTANT: _UTX_LINESIZE 32
105 CONSTANT: _UTX_IDSIZE 4
106 CONSTANT: _UTX_HOSTSIZE 256
107
108 STRUCT: utmpx
109     { ut_user { char _UTX_USERSIZE } }
110     { ut_id   { char _UTX_IDSIZE   } }
111     { ut_line { char _UTX_LINESIZE } }
112     { ut_pid  pid_t }
113     { ut_type short }
114     { ut_tv   timeval }
115     { ut_host { char _UTX_HOSTSIZE } }
116     { ut_pad  { uint 16 } } ;
117
118 CONSTANT: __DARWIN_MAXPATHLEN 1024
119 CONSTANT: __DARWIN_MAXNAMELEN 255
120 CONSTANT: __DARWIN_MAXNAMELEN+1 256
121
122 STRUCT: dirent
123     { d_ino ino_t }
124     { d_reclen __uint16_t }
125     { d_type __uint8_t }
126     { d_namlen __uint8_t }
127     { d_name { char __DARWIN_MAXNAMELEN+1 } } ;
128
129 STRUCT: sf_hdtr
130     { headers void* }
131     { hdr_cnt int }
132     { trailers void* }
133     { trl_cnt int } ;
134
135 FUNCTION: int sendfile ( int fd, int s, off_t offset, off_t* len, sf_hdtr* hdtr, int flags )