]> gitweb.factorcode.org Git - factor.git/blob - basis/unix/ffi/macosx/macosx.factor
libc.*, unix.*: move constants and functions from the unix namespace to libc
[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: AI_PASSIVE 1
85
86 CONSTANT: SEEK_SET 0
87 CONSTANT: SEEK_CUR 1
88 CONSTANT: SEEK_END 2
89
90 CONSTANT: FD_SETSIZE 1024
91
92 CONSTANT: AF_INET6 30
93 ALIAS: PF_INET6 AF_INET6
94
95 STRUCT: addrinfo
96     { flags int }
97     { family int }
98     { socktype int }
99     { protocol int }
100     { addrlen socklen_t }
101     { canonname c-string }
102     { addr void* }
103     { next addrinfo* } ;
104
105 CONSTANT: _UTX_USERSIZE 256
106 CONSTANT: _UTX_LINESIZE 32
107 CONSTANT: _UTX_IDSIZE 4
108 CONSTANT: _UTX_HOSTSIZE 256
109
110 STRUCT: utmpx
111     { ut_user { char _UTX_USERSIZE } }
112     { ut_id   { char _UTX_IDSIZE   } }
113     { ut_line { char _UTX_LINESIZE } }
114     { ut_pid  pid_t }
115     { ut_type short }
116     { ut_tv   timeval }
117     { ut_host { char _UTX_HOSTSIZE } }
118     { ut_pad  { uint 16 } } ;
119
120 CONSTANT: __DARWIN_MAXPATHLEN 1024
121 CONSTANT: __DARWIN_MAXNAMELEN 255
122 CONSTANT: __DARWIN_MAXNAMELEN+1 256
123
124 STRUCT: dirent
125     { d_ino ino_t }
126     { d_reclen __uint16_t }
127     { d_type __uint8_t }
128     { d_namlen __uint8_t }
129     { d_name { char __DARWIN_MAXNAMELEN+1 } } ;
130
131 STRUCT: sf_hdtr
132     { headers void* }
133     { hdr_cnt int }
134     { trailers void* }
135     { trl_cnt int } ;
136
137 FUNCTION: int sendfile ( int fd, int s, off_t offset, off_t* len, sf_hdtr* hdtr, int flags ) ;