1ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
2ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/*--------------------------------------------------------------------*/
3ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/*--- Private syscalls header for Darwin.    priv_syswrap-darwin.h ---*/
4ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/*--------------------------------------------------------------------*/
5ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
6ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/*
7ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   This file is part of Valgrind, a dynamic binary instrumentation
8ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   framework.
9ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
10436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov   Copyright (C) 2005-2013 Apple Inc.
11ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      Greg Parker  gparker@apple.com
12ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
13ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   This program is free software; you can redistribute it and/or
14ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   modify it under the terms of the GNU General Public License as
15ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   published by the Free Software Foundation; either version 2 of the
16ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   License, or (at your option) any later version.
17ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
18ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   This program is distributed in the hope that it will be useful, but
19ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   WITHOUT ANY WARRANTY; without even the implied warranty of
20ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
21ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   General Public License for more details.
22ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
23ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   You should have received a copy of the GNU General Public License
24ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   along with this program; if not, write to the Free Software
25ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
26ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   02111-1307, USA.
27ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
28ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   The GNU General Public License is contained in the file COPYING.
29ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown*/
30ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
31ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#ifndef __PRIV_SYSWRAP_DARWIN_H
32ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#define __PRIV_SYSWRAP_DARWIN_H
33ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
34436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#include "pub_core_basics.h"         // ThreadId
35436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#include "priv_types_n_macros.h"     // DECL_TEMPLATE
36ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
37ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// syswrap-darwin.c
38ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownAddr allocstack ( ThreadId tid );
39ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownvoid find_stack_segment ( ThreadId tid, Addr sp );
40ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownvoid start_thread_NORETURN ( Word arg );
41ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownvoid assign_port_name(mach_port_t port, const char *name);
42ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownvoid record_named_port(ThreadId tid, mach_port_t port, mach_port_right_t right, const char *name);
43ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
44ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownextern const SyscallTableEntry ML_(mach_trap_table)[];
45ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownextern const SyscallTableEntry ML_(syscall_table)[];
46ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownextern const SyscallTableEntry ML_(mdep_trap_table)[];
47ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
48ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownextern const UInt ML_(syscall_table_size);
49ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownextern const UInt ML_(mach_trap_table_size);
50ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownextern const UInt ML_(mdep_trap_table_size);
51ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
52ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownvoid VG_(show_open_ports)(void);
53ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
54ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownvoid ML_(sync_mappings)(const HChar *when, const HChar *where, Int num);
55ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
56ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// Unix syscalls.
57ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN = it uses the generic wrapper
58ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI = wrapper not yet implemented in Valgrind
59ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NOC = the non-"_nocancel" wrapper is used
60ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old = the syscall no longer exists in Darwin
61ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, exit);                    // 1
62ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN fork 2
63ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN read 3
64ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN write 4
65ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN open 5
66ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN close 6
67ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN wait4 7
68ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old creat 8
69ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN link 9
70ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN unlink 10
71ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old execv 11
72ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN chdir 12
73ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN fchdir 13
74ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN mknod 14
75ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN chmod 15
76ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN chown 16
77ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old break 17
78ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, getfsstat);               // 18
79ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old lseek 19
80ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN getpid 20
81ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old mount 21
82ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old umount 22
83ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN setuid 23
84ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN getuid 24
85ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN geteuid 25
86ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, ptrace);                  // 26
87ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, recvmsg);                 // 27
88ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, sendmsg);                 // 28
89ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, recvfrom);                // 29
90ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, accept);                  // 30
91ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, getpeername);             // 31
92ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, getsockname);             // 32
93ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN access 33
94ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, chflags);                 // 34
95ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, fchflags);                // 35
96ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN sync 36
97ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN kill 37
98ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old stat 38
99ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN getppid 39
100ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old lstat 40
101ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN dup 41
102ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, pipe);                    // 42
103ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN getegid 43
104ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI profil
105ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old ktrace
106ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, sigaction);               // 46
107ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN getgid 47
108ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, sigprocmask);             // 48
109ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, getlogin);                // 49
110ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI setlogin 50
111ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI acct 51
112ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, sigpending);              // 52
113ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN sigaltstack 53
114ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, ioctl);                   // 54
115ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI reboot 55
116ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI revoke 56
117ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI symlink 57
118ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN readlink 58
119ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN execve 59
120ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN umask 60
121ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN chroot 61
122ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old fstat
123ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 63 used internally, reserved
124ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old getpagesize 64
125ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN msync 65
126ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN vfork 66
127ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old vread
128ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old vwrite
129ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old sbrk
130ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old sstk
131ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old mmap
132ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old vadvise
133ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN munmap 73
134ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN mprotect 74
135ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN madvise 75
136ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old vhangup
137ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old vlimit
138ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI mincore 78
139ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN getgroups 79
140ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI setgroups 80
141ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN getpgrp 81
142ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI setpgid 82
143ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN setitimer 83
144ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old wait
145ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI swapon 85
146ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN getitimer 86
147ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old gethostname
148ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old sethostname
149ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, getdtablesize);           // 89
150ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN dup2 90
151ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old getdopt
152ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, fcntl);                   // 92
153ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN select 93
154ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old setdopt
155ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN fsync 95
156ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN setpriority 96
157ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, socket);                  // 97
158ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, connect);                 // 98
159ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old accept
160ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN getpriority 100
161ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old send
162ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old recv
163ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old sigreturn
164ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, bind);                    // 104
165ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, setsockopt);              // 105
166ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, listen);                  // 106
167ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old vtimes
168ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old sigvec
169ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old sigblock
170ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old sigsetmask
171ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, sigsuspend);              // 111
172ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old sigstack
173ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old recvmsg
174ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old sendmsg
175ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old vtrace
176ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN gettimeofday 116
177ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN getrusage 117
178ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, getsockopt);              // 118
179ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old resuba
180ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN readv 120
181ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN writev 121
182ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI settimeofday 122
183ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN fchown 123
184ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN fchmod 124
185ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old recvfrom
186ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI setreuid 126
187ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI setregid 127
188ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN rename 128
189ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old truncate
190ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old ftruncate
191ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN flock 131
192ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI mkfifo 132
193ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, sendto);                  // 133
194ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, shutdown);                // 134
195ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, socketpair);              // 135
196ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN mkdir 136
197ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN rmdir 137
198ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN utimes 138
199ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, futimes);                 // 139
200ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI adjtime 140
201ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old getpeername
202ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, gethostuuid);             // 142
203ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old sethostid
204ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old getrlimit
205ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old setrlimit
206ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old killpg
207ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN setsid 147
208ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old setquota
209ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old qquota
210ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old getsockname
211ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI getpgid 151
212ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI setprivexec 152
213ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN pread 153
214ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN pwrite 154
215ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI nfssvc 155
216ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old getdirentries
217ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN statfs 157
218ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN fstatfs 158
219ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI unmount 159
220ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old async_daemon
221ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI getfh 161
222ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old getdomainname
223ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old setdomainname
224ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 164
225ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI quotactl 165
226ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old exportfs
227ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mount);                   // 167
228ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old ustat
229ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, csops);                   // 169
230ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old table
231ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old wait3
232ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old rpause
233ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI waitid 173
234ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old getdents
235ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old gc_control
236ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI add_profil 176
237ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 177
238ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 178
239ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 179
240ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, kdebug_trace);            // 180
241ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN setgid 181
242ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, setegid);                 // 182
243ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, seteuid);                 // 183
244ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, sigreturn);               // 184
245ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, FAKE_SIGRETURN);
246ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI chud 185
247ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 186
248ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 187
249ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN stat 188
250ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN fstat 189
251ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN lstat 190
252ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, pathconf);            // 191
253ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, fpathconf);           // 192
254ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 193
255ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN getrlimit 194
256ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN setrlimit 195
257ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, getdirentries);       // 196
258ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mmap);                // 197
259ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 198  __syscall
260ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, lseek);               // 199 (was UX64)
261ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN truncate 200
262ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN ftruncate 201
263ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, __sysctl);                // 202
264ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN mlock 203
265ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN munlock 204
266ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI undelete 205
267ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI ATsocket 206
268ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI ATgetmsg 207
269ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI ATputmsg 208
270ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI ATPsndreq 209
271ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI ATPsndrsp 210
272ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI ATPgetreq 211
273ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI ATPgetrsp 212
274ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 213  Reserved for AppleTalk
275ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI kqueue_from_portset_np 214
276ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI kqueue_portset_np 215
277ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI mkcomplex 216
278ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI statv 217
279ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI lstatv 218
280ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI fstatv 219
281ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, getattrlist);             // 220
282ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, setattrlist);             // 221
283ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, getdirentriesattr);       // 222
284ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, exchangedata);            // 223
285ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 224 checkuseraccess
286ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI searchfs 225
287ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN delete 226
288ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI copyfile 226
289ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 228
290ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 229
291ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN poll 230
292ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, watchevent);              // 231
293ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, waitevent);               // 232
294ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, modwatch);                // 233
295ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, getxattr);                // 234
296ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, fgetxattr);               // 235
297ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, setxattr);                // 236
298ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, fsetxattr);               // 237
299ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, removexattr);             // 238
300ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, fremovexattr);            // 239
301ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, listxattr);               // 240
302ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, flistxattr);              // 241
303ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, fsctl);                   // 242
304ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, initgroups);              // 243
305ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, posix_spawn);             // 244
306ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 245
307ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 246
308ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI nfsclnt 247
309ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI fhopen 248
310ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 249
311ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI minherit 250
312ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI semsys 251
313ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI msgsys 252
314ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI shmsys 253
315ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, semctl);                  // 254
316ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, semget);                  // 255
317ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, semop);                   // 256
318ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 257
319ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI msgctl 258
320ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI msgget 259
321ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI msgsnd 260
322ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI msgrcv 261
323ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, shmat);                   // 262
324ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, shmctl);                  // 263
325ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, shmdt);                   // 264
326ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, shmget);                  // 265
327ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, shm_open);                // 266
328663860b1408516d02ebfcb3a9999a134e6cfb223Ben ChengDECL_TEMPLATE(darwin, shm_unlink);              // 267
329ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, sem_open);                // 268
330ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, sem_close);               // 269
331ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, sem_unlink);              // 270
332ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, sem_wait);                // 271
333ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, sem_trywait);             // 272
334ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, sem_post);                // 273
335ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI sem_getvalue 274
336ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, sem_init);                // 275
337ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, sem_destroy);             // 276
338ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, open_extended)            // 277
339ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI umask_extended 278
340ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, stat_extended);           // 279
341ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, lstat_extended);          // 280
342ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, fstat_extended);          // 281
343ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, chmod_extended);          // 282
344ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, fchmod_extended);         // 283
345ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, access_extended);         // 284
346ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, settid);                  // 285
347ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI gettid 286
348ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI setsgroups 287
349ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI getsgroups 288
350ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI setwgroups 289
351ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI getwgroups 290
352ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI mkfifo_extended 291
353ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI mkdir_extended 292
354ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI identitysvc 293
355ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI shared_region_check_np 294
356ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI shared_region_map_np 295
357ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old load_shared_file
358ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old reset_shared_file
359ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old new_system_shared_regions
360ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old shared_region_map_file_np
361ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old shared_region_make_private_np
362b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy StepanovDECL_TEMPLATE(darwin, psynch_mutexwait);       // 301 // new in 10.7 ?
363b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy StepanovDECL_TEMPLATE(darwin, psynch_mutexdrop);       // 302 // new in 10.7 ?
364b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy StepanovDECL_TEMPLATE(darwin, psynch_cvbroad);         // 303 // new in 10.7 ?
365b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy StepanovDECL_TEMPLATE(darwin, psynch_cvsignal);        // 304 // new in 10.7 ?
366b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy StepanovDECL_TEMPLATE(darwin, psynch_cvwait);          // 305 // new in 10.7 ?
367b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy StepanovDECL_TEMPLATE(darwin, psynch_rw_rdlock);       // 306 // new in 10.7 ?
368b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy StepanovDECL_TEMPLATE(darwin, psynch_rw_wrlock);       // 307 // new in 10.7 ?
369b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy StepanovDECL_TEMPLATE(darwin, psynch_rw_unlock);       // 308 // new in 10.7 ?
370ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI __pthread_cond_signal 309
371ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI getsid 310
372ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI settid_with_pid 311
373b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy StepanovDECL_TEMPLATE(darwin, psynch_cvclrprepost);    // 312 // new in 10.7 ?
374ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI aio_fsync 313
375ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, aio_return);             // 314
376ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, aio_suspend);            // 315
377ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI aio_cancel 316
378ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, aio_error);              // 317
379ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, aio_read);               // 318
380ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, aio_write);              // 319
381ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI lio_listio 320
382ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI __pthread_cond_wait 321
383ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI iopolicysys 322
384ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 323
385ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI mlockall 324
386ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI munlockall 325
387ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 326
388ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, issetugid);               // 327
389ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, __pthread_kill);          // 328
390ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, __pthread_sigmask);       // 329
391ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI __sigwait 330
392ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, __disable_threadsignal);  // 331
393ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, __pthread_markcancel);    // 332
394ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, __pthread_canceled);      // 333
395ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, __semwait_signal);        // 334
396ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// old utrace
397ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#if DARWIN_VERS >= DARWIN_10_6
398ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, proc_info);               // 336
399ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#endif
400ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, sendfile);                // 337
401ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, stat64);                  // 338
402ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, fstat64);                 // 339
403ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, lstat64);                 // 340
404ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, stat64_extended);         // 341
405ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, lstat64_extended);        // 342
406ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, fstat64_extended);        // 343
407ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, getdirentries64);         // 344
408ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, statfs64);                // 345
409ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, fstatfs64);               // 346
410ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, getfsstat64);             // 347
411ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI __pthread_chdir 348
412ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI __pthread_fchdir 349
413ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI audit 350
414ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, auditon);                 // 351
415ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 352
416ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI getauid 353
417ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI setauid 354
418ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI getaudit 355
419ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI setaudit 356
420b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#if DARWIN_VERS >= DARWIN_10_7
421b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy StepanovDECL_TEMPLATE(darwin, getaudit_addr)            // 357
422b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#endif
423ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI setaudit_addr 358
424ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI auditctl 359
425ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, bsdthread_create);        // 360
426ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, bsdthread_terminate);     // 361
427ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, kqueue);                  // 362
428ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, kevent);                  // 363
429ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI lchown 364
430ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI stack_snapshot 365
431ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, bsdthread_register);      // 366
432ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, workq_open);              // 367
433ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, workq_ops);               // 368
434ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 369
435ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 370
436ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 371
437ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, __thread_selfid);         // 372
438ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 373
439ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 374
440ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 375
441ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 376
442ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 377
443ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 378
444ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 379
445ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI __mac_execve 380
446ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, __mac_syscall);           // 381
447ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI __mac_get_file 382
448ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI __mac_set_file 383
449ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI __mac_get_link 384
450ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI __mac_set_link 385
451ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI __mac_get_proc 386
452ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI __mac_set_proc 387
453ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI __mac_get_fd 388
454ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI __mac_set_fd 389
455ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI __mac_get_pid 390
456ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI __mac_get_lcid 391
457ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI __mac_get_lctx 392
458ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI __mac_set_lctx 393
459ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI setlcid 394
460ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI getlcid 395
461ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN read_nocancel 396
462ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN write_nocancel 397
463ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN open_nocancel 398
464ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN close_nocancel 399
465ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN wait4_nocancel 400
466ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NOC recvmsg_nocancel 401
467ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NOC sendmsg_nocancel 402
468ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NOC recvfrom_nocancel 403
469ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NOC accept_nocancel 404
470ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN msync_nocancel 405
471ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NOC fcntl_nocancel 406
472ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN select_nocancel 407
473ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN fsync_nocancel 408
474ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NOC connect_nocancel 409
475ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI sigsuspend_nocancel 410
476ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN readv_nocancel 411
477ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN writev_nocancel 412
478ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NOC sendto_nocancel 413
479ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN pread_nocancel 414
480ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN pwrite_nocancel 415
481ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI waitid_nocancel 416
482ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// GEN poll_nocancel 417
483ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI msgsnd_nocancel 418
484ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI msgrcv_nocancel 419
485ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NOC sem_wait_nocancel 420
486ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI aio_suspend_nocancel 421
487ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI __sigwait_nocancel 422
488ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NOC __semwait_signal_nocancel 423
489ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI __mac_mount 424
490ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI __mac_get_mount 425
491ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI __mac_getfsstat 426
492ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, fsgetpath);                // 427
493ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, audit_session_self);       // 428
494ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// NYI audit_session_join 429
495ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
496ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// Mach message helpers
497b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy StepanovDECL_TEMPLATE(darwin, mach_port_set_context);
498ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, host_info);
499ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, host_page_size);
500ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, host_get_io_master);
501ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, host_get_clock_service);
502ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, host_request_notification);
503ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_port_type);
504ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_port_extract_member);
505ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_port_allocate);
506ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_port_deallocate);
507ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_port_get_refs);
508ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_port_mod_refs);
509ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_port_get_set_status);
510ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_port_move_member);
511ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_port_destroy);
512ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_port_request_notification);
513ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_port_insert_right);
514ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_port_extract_right);
515ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_port_get_attributes);
516ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_port_set_attributes);
517ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_port_insert_member);
518ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, task_get_special_port);
519b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy StepanovDECL_TEMPLATE(darwin, task_get_exception_ports);
520ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, semaphore_create);
521ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, semaphore_destroy);
522ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_ports_lookup);
523ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, task_threads);
524ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, task_suspend);
525ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, task_resume);
526ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, vm_allocate);
527ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, vm_deallocate);
528ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, vm_protect);
529ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, vm_inherit);
530ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, vm_read);
531ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_vm_read);
532ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, vm_copy);
533ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, vm_read_overwrite);
534ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, vm_map);
535ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, vm_remap);
536ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_make_memory_entry_64);
537ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, vm_purgable_control);
538ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_vm_purgable_control);
539ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_vm_allocate);
540ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_vm_deallocate);
541ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_vm_protect);
542ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_vm_copy);
543ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_vm_inherit);
544ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_vm_map);
545ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_vm_region_recurse);
546ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, thread_terminate);
547ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, thread_create);
548ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, thread_create_running);
549ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, thread_suspend);
550ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, thread_get_state);
551ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, thread_policy);
552ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, thread_policy_set);
553ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, thread_info);
554ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, bootstrap_register);
555ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, bootstrap_look_up);
556ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_msg_receive);
557ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_msg_bootstrap);
558ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_msg_host);
559ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_msg_task);
560ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_msg_thread);
561ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
562ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// Mach traps
563663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#if DARWIN_VERS == DARWIN_10_8
564663860b1408516d02ebfcb3a9999a134e6cfb223Ben ChengDECL_TEMPLATE(darwin, mach__10);
565663860b1408516d02ebfcb3a9999a134e6cfb223Ben ChengDECL_TEMPLATE(darwin, mach__12);
566663860b1408516d02ebfcb3a9999a134e6cfb223Ben ChengDECL_TEMPLATE(darwin, mach__14);
567663860b1408516d02ebfcb3a9999a134e6cfb223Ben ChengDECL_TEMPLATE(darwin, mach__16);
568663860b1408516d02ebfcb3a9999a134e6cfb223Ben ChengDECL_TEMPLATE(darwin, mach__18);
569663860b1408516d02ebfcb3a9999a134e6cfb223Ben ChengDECL_TEMPLATE(darwin, mach__19);
570663860b1408516d02ebfcb3a9999a134e6cfb223Ben ChengDECL_TEMPLATE(darwin, mach__20);
571663860b1408516d02ebfcb3a9999a134e6cfb223Ben ChengDECL_TEMPLATE(darwin, mach__21);
572663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#endif /* DARWIN_VERS == DARWIN_10_8 */
573ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_msg_unhandled);
574ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_msg);
575ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_reply_port);
576ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_thread_self);
577ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_host_self);
578ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_task_self);
579ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, syscall_thread_switch);
580ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, semaphore_signal);
581ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, semaphore_signal_all);
582ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, semaphore_signal_thread);
583ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, semaphore_wait);
584ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, semaphore_wait_signal);
585ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, semaphore_timedwait);
586ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, semaphore_timedwait_signal);
587ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, task_for_pid);
588ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, pid_for_task);
589ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_timebase_info);
590ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mach_wait_until);
591ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mk_timer_create);
592ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mk_timer_destroy);
593ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mk_timer_arm);
594ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, mk_timer_cancel);
595ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, iokit_user_client_trap);
596ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, swtch);
597ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, swtch_pri);
598ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
599ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// Machine-dependent traps
600ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDECL_TEMPLATE(darwin, thread_fast_set_cthread_self);
601ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
602ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// syswrap-<arch>-darwin.c
603ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <mach/mach.h>
604ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownextern
605ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownvoid thread_state_from_vex(thread_state_t mach_generic,
606ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                           thread_state_flavor_t flavor,
607ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                           mach_msg_type_number_t count,
608ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                           VexGuestArchState *vex_generic);
609ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownextern
610ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownvoid thread_state_to_vex(const thread_state_t mach_generic,
611ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                         thread_state_flavor_t flavor,
612ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                         mach_msg_type_number_t count,
613ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                         VexGuestArchState *vex_generic);
614ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownextern
615ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownThreadState *build_thread(const thread_state_t state,
616ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                          thread_state_flavor_t flavor,
617ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                          mach_msg_type_number_t count);
618ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownextern
619ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownvoid hijack_thread_state(thread_state_t mach_generic,
620ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                         thread_state_flavor_t flavor,
621ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                         mach_msg_type_number_t count,
622ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                         ThreadState *tst);
623ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownextern
624ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown__attribute__((noreturn))
625ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownvoid call_on_new_stack_0_1 ( Addr stack,
626ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown			     Addr retaddr,
627ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown			     void (*f)(Word),
628ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                             Word arg1 );
629ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
630ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownextern void pthread_hijack_asm(void);
631ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownextern void pthread_hijack(Addr self, Addr kport, Addr func, Addr func_arg,
632ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                           Addr stacksize, Addr flags, Addr sp);
633ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownextern void wqthread_hijack_asm(void);
634ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownextern void wqthread_hijack(Addr self, Addr kport, Addr stackaddr, Addr workitem, Int reuse, Addr sp);
635ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
636ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownextern Addr pthread_starter;
637ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownextern Addr wqthread_starter;
638ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownextern SizeT pthread_structsize;
639ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
640ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
641ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#endif
642ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
643ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/*--------------------------------------------------------------------*/
644ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/*--- end                                                          ---*/
645ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/*--------------------------------------------------------------------*/
646