blob: f9056abe863f13489d243f023b6db07e1bc54c8a [file] [log] [blame]
sewardj8eb8bab2015-07-21 14:44:28 +00001
2/*--------------------------------------------------------------------*/
3/*--- System call numbers for Solaris. vki-scnums-solaris.h ---*/
4/*--------------------------------------------------------------------*/
5
6/*
7 This file is part of Valgrind, a dynamic binary instrumentation
8 framework.
9
Elliott Hughesed398002017-06-21 14:41:24 -070010 Copyright (C) 2011-2017 Petr Pavlu
sewardj8eb8bab2015-07-21 14:44:28 +000011 setup@dagobah.cz
12
13 This program is free software; you can redistribute it and/or
14 modify it under the terms of the GNU General Public License as
15 published by the Free Software Foundation; either version 2 of the
16 License, or (at your option) any later version.
17
18 This program is distributed in the hope that it will be useful, but
19 WITHOUT ANY WARRANTY; without even the implied warranty of
20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 General Public License for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with this program; if not, write to the Free Software
25 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
26 02111-1307, USA.
27
28 The GNU General Public License is contained in the file COPYING.
29*/
30
Elliott Hughesed398002017-06-21 14:41:24 -070031/* Copyright 2013-2017, Ivo Raisr <ivosh@ivosh.net>. */
sewardj8eb8bab2015-07-21 14:44:28 +000032
33/* Copyright 2013, OmniTI Computer Consulting, Inc. All rights reserved. */
34
35#ifndef __VKI_SCNUMS_SOLARIS_H
36#define __VKI_SCNUMS_SOLARIS_H
37
38/* Note: Basic information about Solaris syscalls can be found in the kernel
39 source file uts/common/os/sysent.c.
40 */
41
42/* Include sys/syscall.h to get SYS_* constants (and sys/trap.h to get T_*) to
43 avoid any copyright issues connected with their potential copying out of
44 the header file.
45 */
46#include <sys/syscall.h>
47#include <sys/trap.h>
48
49/* normal syscall (int $0x91) */
50#define VG_SOLARIS_SYSCALL_CLASS_CLASSIC 0
51/* fasttrap syscall (int $0xD2) */
52#define VG_SOLARIS_SYSCALL_CLASS_FASTTRAP 1
53
54#define VG_SOLARIS_SYSCALL_CLASS_SHIFT 24
55#define VG_SOLARIS_SYSCALL_NUMBER_MASK 0x00FFFFFF
56
57#define VG_SOLARIS_SYSCALL_CONSTRUCT_FASTTRAP(sysno) \
58 ((VG_SOLARIS_SYSCALL_CLASS_FASTTRAP << VG_SOLARIS_SYSCALL_CLASS_SHIFT) \
59 | (sysno))
60#define VG_SOLARIS_SYSNO_CLASS(sysno) \
61 ((sysno) >> VG_SOLARIS_SYSCALL_CLASS_SHIFT)
62#define VG_SOLARIS_SYSNO_INDEX(sysno) \
63 ((sysno) & VG_SOLARIS_SYSCALL_NUMBER_MASK)
64
65#define __NR_exit SYS_exit
66#if defined(SOLARIS_SPAWN_SYSCALL)
67#define __NR_spawn SYS_spawn
68#endif /* SOLARIS_SPAWN_SYSCALL */
69#define __NR_read SYS_read
70#define __NR_write SYS_write
71#define __NR_close SYS_close
72#define __NR_linkat SYS_linkat
73#define __NR_symlinkat SYS_symlinkat
74#define __NR_chdir SYS_chdir
75#define __NR_time SYS_time
76#define __NR_brk SYS_brk
77#define __NR_lseek SYS_lseek
78#define __NR_getpid SYS_getpid
79#define __NR_mount SYS_mount
80#define __NR_readlinkat SYS_readlinkat
81#define __NR_setuid SYS_setuid
82#define __NR_getuid SYS_getuid
83#define __NR_stime SYS_stime
84//#define __NR_pcsample SYS_pcsample
85#define __NR_alarm SYS_alarm
86#define __NR_pause SYS_pause
87#if defined(SOLARIS_FREALPATHAT_SYSCALL)
88#define __NR_frealpathat SYS_frealpathat
89#endif /* SOLARIS_FREALPATHAT_SYSCALL */
90#define __NR_stty SYS_stty
91#define __NR_gtty SYS_gtty
92//#define __NR_nice SYS_nice
93//#define __NR_statfs SYS_statfs
94//#define __NR_sync SYS_sync
95#define __NR_kill SYS_kill
96//#define __NR_fstatfs SYS_fstatfs
97#define __NR_pgrpsys SYS_pgrpsys
98//#define __NR_uucopystr SYS_uucopystr
99#define __NR_pipe SYS_pipe
100#define __NR_times SYS_times
101//#define __NR_profil SYS_profil
102#define __NR_faccessat SYS_faccessat
103#define __NR_setgid SYS_setgid
104#define __NR_getgid SYS_getgid
105#define __NR_mknodat SYS_mknodat
106//#define __NR_msgsys SYS_msgsys
107#define __NR_sysi86 SYS_sysi86
108//#define __NR_acct SYS_acct
109#define __NR_shmsys SYS_shmsys
110#define __NR_semsys SYS_semsys
111#define __NR_ioctl SYS_ioctl
112//#define __NR_uadmin SYS_uadmin
113#define __NR_fchownat SYS_fchownat
114//#define __NR_utssys SYS_utssys
115#define __NR_fdsync SYS_fdsync
116#define __NR_execve SYS_execve
117#define __NR_umask SYS_umask
118#define __NR_chroot SYS_chroot
119#define __NR_fcntl SYS_fcntl
120//#define __NR_ulimit SYS_ulimit
121#define __NR_renameat SYS_renameat
122#define __NR_unlinkat SYS_unlinkat
123#define __NR_fstatat SYS_fstatat
124#define __NR_fstatat64 SYS_fstatat64
125#define __NR_openat SYS_openat
126#define __NR_openat64 SYS_openat64
127#define __NR_tasksys SYS_tasksys
128//#define __NR_acctctl SYS_acctctl
129//#define __NR_exacctsys SYS_exacctsys
130#define __NR_getpagesizes SYS_getpagesizes
131//#define __NR_rctlsys SYS_rctlsys
132//#define __NR_sidsys SYS_sidsys
133#define __NR_lwp_park SYS_lwp_park
134#define __NR_sendfilev SYS_sendfilev
135#if defined(SOLARIS_LWP_NAME_SYSCALL)
136#define __NR_lwp_name SYS_lwp_name
137#endif /* SOLARIS_LWP_NAME_SYSCALL */
138#define __NR_getdents SYS_getdents
139#define __NR_privsys SYS_privsys
140#define __NR_ucredsys SYS_ucredsys
Elliott Hughesa0664b92017-04-18 17:46:52 -0700141#define __NR_sysfs SYS_sysfs
sewardj8eb8bab2015-07-21 14:44:28 +0000142#define __NR_getmsg SYS_getmsg
143#define __NR_putmsg SYS_putmsg
144#define __NR_setgroups SYS_setgroups
145#define __NR_getgroups SYS_getgroups
146#define __NR_sigprocmask SYS_sigprocmask
Elliott Hughesed398002017-06-21 14:41:24 -0700147#define __NR_sigsuspend SYS_sigsuspend
sewardj8eb8bab2015-07-21 14:44:28 +0000148#define __NR_sigaltstack SYS_sigaltstack
149#define __NR_sigaction SYS_sigaction
150#define __NR_sigpending SYS_sigpending
151#define __NR_context SYS_context
152#define __NR_fchmodat SYS_fchmodat
153#define __NR_mkdirat SYS_mkdirat
154#define __NR_statvfs SYS_statvfs
155#define __NR_fstatvfs SYS_fstatvfs
156//#define __NR_getloadavg SYS_getloadavg
157#define __NR_nfssys SYS_nfssys
158#define __NR_waitid SYS_waitid
159#define __NR_waitsys SYS_waitsys /* = SYS_waitid (historical) */
Elliott Hughesed398002017-06-21 14:41:24 -0700160#define __NR_sigsendsys SYS_sigsendsys
sewardj8eb8bab2015-07-21 14:44:28 +0000161//#define __NR_hrtsys SYS_hrtsys
162#if defined(SOLARIS_UTIMESYS_SYSCALL)
163#define __NR_utimesys SYS_utimesys
164#endif /* SOLARIS_UTIMESYS_SYSCALL */
165#if defined(SOLARIS_UTIMENSAT_SYSCALL)
166#define __NR_utimensat SYS_utimensat
167#endif /* SOLARIS_UTIMENSAT_SYSCALL */
168#define __NR_sigresend SYS_sigresend
169#define __NR_priocntlsys SYS_priocntlsys
170#define __NR_pathconf SYS_pathconf
171//#define __NR_mincore SYS_mincore
172#define __NR_mmap SYS_mmap
173#define __NR_mprotect SYS_mprotect
174#define __NR_munmap SYS_munmap
175//#define __NR_fpathconf SYS_fpathconf
176//#define __NR_vfork SYS_vfork
iraisrc593e2f2015-10-15 09:37:14 +0000177#define __NR_fchdir SYS_fchdir
sewardj8eb8bab2015-07-21 14:44:28 +0000178#define __NR_readv SYS_readv
179#define __NR_writev SYS_writev
180#if defined(SOLARIS_UUIDSYS_SYSCALL)
181#define __NR_uuidsys SYS_uuidsys
182#endif /* SOLARIS_UUIDSYS_SYSCALL */
183#define __NR_mmapobj SYS_mmapobj
184#define __NR_setrlimit SYS_setrlimit
185#define __NR_getrlimit SYS_getrlimit
186#define __NR_memcntl SYS_memcntl
187#define __NR_getpmsg SYS_getpmsg
188#define __NR_putpmsg SYS_putpmsg
189#define __NR_uname SYS_uname
190#define __NR_setegid SYS_setegid
191#define __NR_sysconfig SYS_sysconfig
192//#define __NR_adjtime SYS_adjtime
193#define __NR_systeminfo SYS_systeminfo
194//#define __NR_sharefs SYS_sharefs
195#define __NR_seteuid SYS_seteuid
196#define __NR_forksys SYS_forksys
Elliott Hughesa0664b92017-04-18 17:46:52 -0700197#if defined(SOLARIS_GETRANDOM_SYSCALL)
198#define __NR_getrandom SYS_getrandom
199#endif /* SOLARIS_GETRANDOM_SYSCALL */
sewardj8eb8bab2015-07-21 14:44:28 +0000200#define __NR_sigtimedwait SYS_sigtimedwait
201//#define __NR_lwp_info SYS_lwp_info
202#define __NR_yield SYS_yield
203#define __NR_lwp_sema_post SYS_lwp_sema_post
204#define __NR_lwp_sema_trywait SYS_lwp_sema_trywait
205#define __NR_lwp_detach SYS_lwp_detach
206//#define __NR_corectl SYS_corectl
Elliott Hughesa0664b92017-04-18 17:46:52 -0700207#define __NR_modctl SYS_modctl
sewardj8eb8bab2015-07-21 14:44:28 +0000208#define __NR_fchroot SYS_fchroot
iraisrc0d46cd2015-09-25 21:04:45 +0000209#if defined(SOLARIS_SYSTEM_STATS_SYSCALL)
210#define __NR_system_stats SYS_system_stats
211#endif /* SOLARIS_SYSTEM_STATS_SYSCALL */
sewardj8eb8bab2015-07-21 14:44:28 +0000212//#define __NR_vhangup SYS_vhangup
213#define __NR_gettimeofday SYS_gettimeofday
214#define __NR_getitimer SYS_getitimer
215#define __NR_setitimer SYS_setitimer
216#define __NR_lwp_create SYS_lwp_create
217#define __NR_lwp_exit SYS_lwp_exit
218#define __NR_lwp_suspend SYS_lwp_suspend
219#define __NR_lwp_continue SYS_lwp_continue
220#if defined(SOLARIS_LWP_SIGQUEUE_SYSCALL)
221#define __NR_lwp_sigqueue SYS_lwp_sigqueue
222#else
223#define __NR_lwp_kill SYS_lwp_kill
224#endif /* SOLARIS_LWP_SIGQUEUE_SYSCALL */
225#define __NR_lwp_self SYS_lwp_self
226#define __NR_lwp_sigmask SYS_lwp_sigmask
227#define __NR_lwp_private SYS_lwp_private
228#define __NR_lwp_wait SYS_lwp_wait
229#define __NR_lwp_mutex_wakeup SYS_lwp_mutex_wakeup
iraisr173bb6e2015-10-16 12:20:20 +0000230#define __NR_lwp_cond_wait SYS_lwp_cond_wait
Elliott Hughesa0664b92017-04-18 17:46:52 -0700231#define __NR_lwp_cond_signal SYS_lwp_cond_signal
sewardj8eb8bab2015-07-21 14:44:28 +0000232#define __NR_lwp_cond_broadcast SYS_lwp_cond_broadcast
233#define __NR_pread SYS_pread
234#define __NR_pwrite SYS_pwrite
235#define __NR_llseek SYS_llseek
236//#define __NR_inst_sync SYS_inst_sync
237//#define __NR_brand SYS_brand
238//#define __NR_kaio SYS_kaio
239//#define __NR_cpc SYS_cpc
Elliott Hughesed398002017-06-21 14:41:24 -0700240#define __NR_lgrpsys SYS_lgrpsys
sewardj8eb8bab2015-07-21 14:44:28 +0000241#define __NR_rusagesys SYS_rusagesys
242#define __NR_port SYS_port
243#define __NR_pollsys SYS_pollsys
244#define __NR_labelsys SYS_labelsys
245#define __NR_acl SYS_acl
246#define __NR_auditsys SYS_auditsys
247//#define __NR_processor_bind SYS_processor_bind
248//#define __NR_processor_info SYS_processor_info
249#define __NR_p_online SYS_p_online
250#define __NR_sigqueue SYS_sigqueue
251#define __NR_clock_gettime SYS_clock_gettime
252#define __NR_clock_settime SYS_clock_settime
253#define __NR_clock_getres SYS_clock_getres
254#define __NR_timer_create SYS_timer_create
255#define __NR_timer_delete SYS_timer_delete
256#define __NR_timer_settime SYS_timer_settime
257#define __NR_timer_gettime SYS_timer_gettime
258#define __NR_timer_getoverrun SYS_timer_getoverrun
259#define __NR_nanosleep SYS_nanosleep
260#define __NR_facl SYS_facl
261#define __NR_door SYS_door
262#define __NR_setreuid SYS_setreuid
263#define __NR_setregid SYS_setregid
264//#define __NR_install_utrap SYS_install_utrap
265//#define __NR_signotify SYS_signotify
266#define __NR_schedctl SYS_schedctl
iraisr7d4aa192015-10-12 19:10:42 +0000267#define __NR_pset SYS_pset
sewardj8eb8bab2015-07-21 14:44:28 +0000268//#define SYS_sparc_utrap_install
269#define __NR_resolvepath SYS_resolvepath
270#define __NR_lwp_mutex_timedlock SYS_lwp_mutex_timedlock
271#define __NR_lwp_sema_timedwait SYS_lwp_sema_timedwait
272#define __NR_lwp_rwlock_sys SYS_lwp_rwlock_sys
273#define __NR_getdents64 SYS_getdents64
274#define __NR_mmap64 SYS_mmap64
275#define __NR_statvfs64 SYS_statvfs64
276#define __NR_fstatvfs64 SYS_fstatvfs64
277#define __NR_setrlimit64 SYS_setrlimit64
278#define __NR_getrlimit64 SYS_getrlimit64
279#define __NR_pread64 SYS_pread64
280#define __NR_pwrite64 SYS_pwrite64
281//#define __NR_rpcsys SYS_rpcsys
282#define __NR_zone SYS_zone
283//#define __NR_autofssys SYS_autofssys
284#define __NR_getcwd SYS_getcwd
285#define __NR_so_socket SYS_so_socket
286#define __NR_so_socketpair SYS_so_socketpair
287#define __NR_bind SYS_bind
288#define __NR_listen SYS_listen
289#define __NR_accept SYS_accept
290#define __NR_connect SYS_connect
291#define __NR_shutdown SYS_shutdown
292#define __NR_recv SYS_recv
293#define __NR_recvfrom SYS_recvfrom
294#define __NR_recvmsg SYS_recvmsg
295#define __NR_send SYS_send
296#define __NR_sendmsg SYS_sendmsg
297#define __NR_sendto SYS_sendto
298#define __NR_getpeername SYS_getpeername
299#define __NR_getsockname SYS_getsockname
300#define __NR_getsockopt SYS_getsockopt
301#define __NR_setsockopt SYS_setsockopt
302//#define __NR_sockconfig SYS_sockconfig
303//#define __NR_ntp_gettime SYS_ntp_gettime
304//#define __NR_ntp_adjtime SYS_ntp_adjtime
305//#define __NR_lwp_mutex_unlock SYS_lwp_mutex_unlock
306//#define __NR_lwp_mutex_trylock SYS_lwp_mutex_trylock
307#define __NR_lwp_mutex_register SYS_lwp_mutex_register
308//#define __NR_cladm SYS_cladm
309#define __NR_uucopy SYS_uucopy
310#define __NR_umount2 SYS_umount2
311
312/* The following syscalls were removed in Solaris 11 (see
313 https://wikis.oracle.com/display/DTrace/syscall+Provider). Valgrind's core
314 cannot use these syscalls but wrappers have to be provided for them because
315 they are still in use on illumos.
316*/
317#if defined(SOLARIS_OLD_SYSCALLS)
318#define __NR_open SYS_open
319#define __NR_link SYS_link
320#define __NR_unlink SYS_unlink
321#define __NR_mknod SYS_mknod
322#define __NR_chmod SYS_chmod
323#define __NR_chown SYS_chown
324#define __NR_stat SYS_stat
325#define __NR_fstat SYS_fstat
326#define __NR_access SYS_access
327#define __NR_rmdir SYS_rmdir
328#define __NR_mkdir SYS_mkdir
329#define __NR_lstat SYS_lstat
330#define __NR_symlink SYS_symlink
331#define __NR_readlink SYS_readlink
332#define __NR_fchmod SYS_fchmod
333#define __NR_fchown SYS_fchown
334#define __NR_lchown SYS_lchown
335#define __NR_rename SYS_rename
336#define __NR_stat64 SYS_stat64
337#define __NR_lstat64 SYS_lstat64
338#define __NR_fstat64 SYS_fstat64
339#define __NR_open64 SYS_open64
340#endif /* SOLARIS_OLD_SYSCALLS */
341
342/*
343#define __NR_null \
344 VG_SOLARIS_SYSCALL_CONSTRUCT_FASTTRAP(T_FNULL)
345#define __NR_fgetfp \
346 VG_SOLARIS_SYSCALL_CONSTRUCT_FASTTRAP(T_FGETFP)
347#define __NR_fsetfp \
348 VG_SOLARIS_SYSCALL_CONSTRUCT_FASTTRAP(T_FSETFP)
349*/
350#define __NR_gethrtime \
351 VG_SOLARIS_SYSCALL_CONSTRUCT_FASTTRAP(T_GETHRTIME)
352#define __NR_gethrvtime \
353 VG_SOLARIS_SYSCALL_CONSTRUCT_FASTTRAP(T_GETHRVTIME)
354#define __NR_gethrestime \
355 VG_SOLARIS_SYSCALL_CONSTRUCT_FASTTRAP(T_GETHRESTIME)
sewardj8eb8bab2015-07-21 14:44:28 +0000356#define __NR_getlgrp \
357 VG_SOLARIS_SYSCALL_CONSTRUCT_FASTTRAP(T_GETLGRP)
sewardj8eb8bab2015-07-21 14:44:28 +0000358#if defined(SOLARIS_GETHRT_FASTTRAP)
359#define __NR_gethrt \
360 VG_SOLARIS_SYSCALL_CONSTRUCT_FASTTRAP(T_GETHRT)
361#endif /* SOLARIS_GETHRT_FASTTRAP */
362#if defined(SOLARIS_GETZONEOFFSET_FASTTRAP)
363#define __NR_getzoneoffset \
364 VG_SOLARIS_SYSCALL_CONSTRUCT_FASTTRAP(T_GETZONEOFFSET)
365#endif /* SOLARIS_GETZONEOFFSET_FASTTRAP */
366
367#endif /* __VKI_SCNUMS_SOLARIS_H */
368
369/*--------------------------------------------------------------------*/
370/*--- end ---*/
371/*--------------------------------------------------------------------*/