mirror of
https://github.com/ioacademy-jikim/debugging
synced 2025-06-09 17:06:24 +00:00
369 lines
17 KiB
C
369 lines
17 KiB
C
|
|
/*--------------------------------------------------------------------*/
|
|
/*--- System call numbers for Solaris. vki-scnums-solaris.h ---*/
|
|
/*--------------------------------------------------------------------*/
|
|
|
|
/*
|
|
This file is part of Valgrind, a dynamic binary instrumentation
|
|
framework.
|
|
|
|
Copyright (C) 2011-2015 Petr Pavlu
|
|
setup@dagobah.cz
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License as
|
|
published by the Free Software Foundation; either version 2 of the
|
|
License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful, but
|
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
02111-1307, USA.
|
|
|
|
The GNU General Public License is contained in the file COPYING.
|
|
*/
|
|
|
|
/* Copyright 2013-2015, Ivo Raisr <ivosh@ivosh.net>. */
|
|
|
|
/* Copyright 2013, OmniTI Computer Consulting, Inc. All rights reserved. */
|
|
|
|
#ifndef __VKI_SCNUMS_SOLARIS_H
|
|
#define __VKI_SCNUMS_SOLARIS_H
|
|
|
|
/* Note: Basic information about Solaris syscalls can be found in the kernel
|
|
source file uts/common/os/sysent.c.
|
|
*/
|
|
|
|
/* Include sys/syscall.h to get SYS_* constants (and sys/trap.h to get T_*) to
|
|
avoid any copyright issues connected with their potential copying out of
|
|
the header file.
|
|
*/
|
|
#include <sys/syscall.h>
|
|
#include <sys/trap.h>
|
|
|
|
/* normal syscall (int $0x91) */
|
|
#define VG_SOLARIS_SYSCALL_CLASS_CLASSIC 0
|
|
/* fasttrap syscall (int $0xD2) */
|
|
#define VG_SOLARIS_SYSCALL_CLASS_FASTTRAP 1
|
|
|
|
#define VG_SOLARIS_SYSCALL_CLASS_SHIFT 24
|
|
#define VG_SOLARIS_SYSCALL_NUMBER_MASK 0x00FFFFFF
|
|
|
|
#define VG_SOLARIS_SYSCALL_CONSTRUCT_FASTTRAP(sysno) \
|
|
((VG_SOLARIS_SYSCALL_CLASS_FASTTRAP << VG_SOLARIS_SYSCALL_CLASS_SHIFT) \
|
|
| (sysno))
|
|
#define VG_SOLARIS_SYSNO_CLASS(sysno) \
|
|
((sysno) >> VG_SOLARIS_SYSCALL_CLASS_SHIFT)
|
|
#define VG_SOLARIS_SYSNO_INDEX(sysno) \
|
|
((sysno) & VG_SOLARIS_SYSCALL_NUMBER_MASK)
|
|
|
|
#define __NR_exit SYS_exit
|
|
#if defined(SOLARIS_SPAWN_SYSCALL)
|
|
#define __NR_spawn SYS_spawn
|
|
#endif /* SOLARIS_SPAWN_SYSCALL */
|
|
#define __NR_read SYS_read
|
|
#define __NR_write SYS_write
|
|
#define __NR_close SYS_close
|
|
#define __NR_linkat SYS_linkat
|
|
#define __NR_symlinkat SYS_symlinkat
|
|
#define __NR_chdir SYS_chdir
|
|
#define __NR_time SYS_time
|
|
#define __NR_brk SYS_brk
|
|
#define __NR_lseek SYS_lseek
|
|
#define __NR_getpid SYS_getpid
|
|
#define __NR_mount SYS_mount
|
|
#define __NR_readlinkat SYS_readlinkat
|
|
#define __NR_setuid SYS_setuid
|
|
#define __NR_getuid SYS_getuid
|
|
#define __NR_stime SYS_stime
|
|
//#define __NR_pcsample SYS_pcsample
|
|
#define __NR_alarm SYS_alarm
|
|
#define __NR_pause SYS_pause
|
|
#if defined(SOLARIS_FREALPATHAT_SYSCALL)
|
|
#define __NR_frealpathat SYS_frealpathat
|
|
#endif /* SOLARIS_FREALPATHAT_SYSCALL */
|
|
#define __NR_stty SYS_stty
|
|
#define __NR_gtty SYS_gtty
|
|
//#define __NR_nice SYS_nice
|
|
//#define __NR_statfs SYS_statfs
|
|
//#define __NR_sync SYS_sync
|
|
#define __NR_kill SYS_kill
|
|
//#define __NR_fstatfs SYS_fstatfs
|
|
#define __NR_pgrpsys SYS_pgrpsys
|
|
//#define __NR_uucopystr SYS_uucopystr
|
|
#define __NR_pipe SYS_pipe
|
|
#define __NR_times SYS_times
|
|
//#define __NR_profil SYS_profil
|
|
#define __NR_faccessat SYS_faccessat
|
|
#define __NR_setgid SYS_setgid
|
|
#define __NR_getgid SYS_getgid
|
|
#define __NR_mknodat SYS_mknodat
|
|
//#define __NR_msgsys SYS_msgsys
|
|
#define __NR_sysi86 SYS_sysi86
|
|
//#define __NR_acct SYS_acct
|
|
#define __NR_shmsys SYS_shmsys
|
|
#define __NR_semsys SYS_semsys
|
|
#define __NR_ioctl SYS_ioctl
|
|
//#define __NR_uadmin SYS_uadmin
|
|
#define __NR_fchownat SYS_fchownat
|
|
//#define __NR_utssys SYS_utssys
|
|
#define __NR_fdsync SYS_fdsync
|
|
#define __NR_execve SYS_execve
|
|
#define __NR_umask SYS_umask
|
|
#define __NR_chroot SYS_chroot
|
|
#define __NR_fcntl SYS_fcntl
|
|
//#define __NR_ulimit SYS_ulimit
|
|
#define __NR_renameat SYS_renameat
|
|
#define __NR_unlinkat SYS_unlinkat
|
|
#define __NR_fstatat SYS_fstatat
|
|
#define __NR_fstatat64 SYS_fstatat64
|
|
#define __NR_openat SYS_openat
|
|
#define __NR_openat64 SYS_openat64
|
|
#define __NR_tasksys SYS_tasksys
|
|
//#define __NR_acctctl SYS_acctctl
|
|
//#define __NR_exacctsys SYS_exacctsys
|
|
#define __NR_getpagesizes SYS_getpagesizes
|
|
//#define __NR_rctlsys SYS_rctlsys
|
|
//#define __NR_sidsys SYS_sidsys
|
|
#define __NR_lwp_park SYS_lwp_park
|
|
#define __NR_sendfilev SYS_sendfilev
|
|
#if defined(SOLARIS_LWP_NAME_SYSCALL)
|
|
#define __NR_lwp_name SYS_lwp_name
|
|
#endif /* SOLARIS_LWP_NAME_SYSCALL */
|
|
#define __NR_getdents SYS_getdents
|
|
#define __NR_privsys SYS_privsys
|
|
#define __NR_ucredsys SYS_ucredsys
|
|
//#define __NR_sysfs SYS_sysfs
|
|
#define __NR_getmsg SYS_getmsg
|
|
#define __NR_putmsg SYS_putmsg
|
|
#define __NR_setgroups SYS_setgroups
|
|
#define __NR_getgroups SYS_getgroups
|
|
#define __NR_sigprocmask SYS_sigprocmask
|
|
//#define __NR_sigsuspend SYS_sigsuspend
|
|
#define __NR_sigaltstack SYS_sigaltstack
|
|
#define __NR_sigaction SYS_sigaction
|
|
#define __NR_sigpending SYS_sigpending
|
|
#define __NR_context SYS_context
|
|
#define __NR_fchmodat SYS_fchmodat
|
|
#define __NR_mkdirat SYS_mkdirat
|
|
#define __NR_statvfs SYS_statvfs
|
|
#define __NR_fstatvfs SYS_fstatvfs
|
|
//#define __NR_getloadavg SYS_getloadavg
|
|
#define __NR_nfssys SYS_nfssys
|
|
#define __NR_waitid SYS_waitid
|
|
#define __NR_waitsys SYS_waitsys /* = SYS_waitid (historical) */
|
|
//#define __NR_sigsendsys SYS_sigsendsys
|
|
//#define __NR_hrtsys SYS_hrtsys
|
|
#if defined(SOLARIS_UTIMESYS_SYSCALL)
|
|
#define __NR_utimesys SYS_utimesys
|
|
#endif /* SOLARIS_UTIMESYS_SYSCALL */
|
|
#if defined(SOLARIS_UTIMENSAT_SYSCALL)
|
|
#define __NR_utimensat SYS_utimensat
|
|
#endif /* SOLARIS_UTIMENSAT_SYSCALL */
|
|
#define __NR_sigresend SYS_sigresend
|
|
#define __NR_priocntlsys SYS_priocntlsys
|
|
#define __NR_pathconf SYS_pathconf
|
|
//#define __NR_mincore SYS_mincore
|
|
#define __NR_mmap SYS_mmap
|
|
#define __NR_mprotect SYS_mprotect
|
|
#define __NR_munmap SYS_munmap
|
|
//#define __NR_fpathconf SYS_fpathconf
|
|
//#define __NR_vfork SYS_vfork
|
|
//#define __NR_fchdir SYS_fchdir
|
|
#define __NR_readv SYS_readv
|
|
#define __NR_writev SYS_writev
|
|
#if defined(SOLARIS_UUIDSYS_SYSCALL)
|
|
#define __NR_uuidsys SYS_uuidsys
|
|
#endif /* SOLARIS_UUIDSYS_SYSCALL */
|
|
#define __NR_mmapobj SYS_mmapobj
|
|
#define __NR_setrlimit SYS_setrlimit
|
|
#define __NR_getrlimit SYS_getrlimit
|
|
#define __NR_memcntl SYS_memcntl
|
|
#define __NR_getpmsg SYS_getpmsg
|
|
#define __NR_putpmsg SYS_putpmsg
|
|
#define __NR_uname SYS_uname
|
|
#define __NR_setegid SYS_setegid
|
|
#define __NR_sysconfig SYS_sysconfig
|
|
//#define __NR_adjtime SYS_adjtime
|
|
#define __NR_systeminfo SYS_systeminfo
|
|
//#define __NR_sharefs SYS_sharefs
|
|
#define __NR_seteuid SYS_seteuid
|
|
#define __NR_forksys SYS_forksys
|
|
#define __NR_sigtimedwait SYS_sigtimedwait
|
|
//#define __NR_lwp_info SYS_lwp_info
|
|
#define __NR_yield SYS_yield
|
|
#define __NR_lwp_sema_post SYS_lwp_sema_post
|
|
#define __NR_lwp_sema_trywait SYS_lwp_sema_trywait
|
|
#define __NR_lwp_detach SYS_lwp_detach
|
|
//#define __NR_corectl SYS_corectl
|
|
//#define __NR_modctl SYS_modctl
|
|
#define __NR_fchroot SYS_fchroot
|
|
//#define __NR_vhangup SYS_vhangup
|
|
#define __NR_gettimeofday SYS_gettimeofday
|
|
#define __NR_getitimer SYS_getitimer
|
|
#define __NR_setitimer SYS_setitimer
|
|
#define __NR_lwp_create SYS_lwp_create
|
|
#define __NR_lwp_exit SYS_lwp_exit
|
|
#define __NR_lwp_suspend SYS_lwp_suspend
|
|
#define __NR_lwp_continue SYS_lwp_continue
|
|
#if defined(SOLARIS_LWP_SIGQUEUE_SYSCALL)
|
|
#define __NR_lwp_sigqueue SYS_lwp_sigqueue
|
|
#else
|
|
#define __NR_lwp_kill SYS_lwp_kill
|
|
#endif /* SOLARIS_LWP_SIGQUEUE_SYSCALL */
|
|
#define __NR_lwp_self SYS_lwp_self
|
|
#define __NR_lwp_sigmask SYS_lwp_sigmask
|
|
#define __NR_lwp_private SYS_lwp_private
|
|
#define __NR_lwp_wait SYS_lwp_wait
|
|
#define __NR_lwp_mutex_wakeup SYS_lwp_mutex_wakeup
|
|
//#define __NR_lwp_cond_wait SYS_lwp_cond_wait
|
|
//#define __NR_lwp_cond_signal SYS_lwp_cond_signal
|
|
#define __NR_lwp_cond_broadcast SYS_lwp_cond_broadcast
|
|
#define __NR_pread SYS_pread
|
|
#define __NR_pwrite SYS_pwrite
|
|
#define __NR_llseek SYS_llseek
|
|
//#define __NR_inst_sync SYS_inst_sync
|
|
//#define __NR_brand SYS_brand
|
|
//#define __NR_kaio SYS_kaio
|
|
//#define __NR_cpc SYS_cpc
|
|
//#define __NR_lgrpsys SYS_lgrpsys
|
|
//#define __NR_meminfosys SYS_meminfosys /* = SYS_lgrpsys */
|
|
#define __NR_rusagesys SYS_rusagesys
|
|
#define __NR_port SYS_port
|
|
#define __NR_pollsys SYS_pollsys
|
|
#define __NR_labelsys SYS_labelsys
|
|
#define __NR_acl SYS_acl
|
|
#define __NR_auditsys SYS_auditsys
|
|
//#define __NR_processor_bind SYS_processor_bind
|
|
//#define __NR_processor_info SYS_processor_info
|
|
#define __NR_p_online SYS_p_online
|
|
#define __NR_sigqueue SYS_sigqueue
|
|
#define __NR_clock_gettime SYS_clock_gettime
|
|
#define __NR_clock_settime SYS_clock_settime
|
|
#define __NR_clock_getres SYS_clock_getres
|
|
#define __NR_timer_create SYS_timer_create
|
|
#define __NR_timer_delete SYS_timer_delete
|
|
#define __NR_timer_settime SYS_timer_settime
|
|
#define __NR_timer_gettime SYS_timer_gettime
|
|
#define __NR_timer_getoverrun SYS_timer_getoverrun
|
|
#define __NR_nanosleep SYS_nanosleep
|
|
#define __NR_facl SYS_facl
|
|
#define __NR_door SYS_door
|
|
#define __NR_setreuid SYS_setreuid
|
|
#define __NR_setregid SYS_setregid
|
|
//#define __NR_install_utrap SYS_install_utrap
|
|
//#define __NR_signotify SYS_signotify
|
|
#define __NR_schedctl SYS_schedctl
|
|
//#define __NR_pset SYS_pset
|
|
//#define SYS_sparc_utrap_install
|
|
#define __NR_resolvepath SYS_resolvepath
|
|
#define __NR_lwp_mutex_timedlock SYS_lwp_mutex_timedlock
|
|
#define __NR_lwp_sema_timedwait SYS_lwp_sema_timedwait
|
|
#define __NR_lwp_rwlock_sys SYS_lwp_rwlock_sys
|
|
#define __NR_getdents64 SYS_getdents64
|
|
#define __NR_mmap64 SYS_mmap64
|
|
#define __NR_statvfs64 SYS_statvfs64
|
|
#define __NR_fstatvfs64 SYS_fstatvfs64
|
|
#define __NR_setrlimit64 SYS_setrlimit64
|
|
#define __NR_getrlimit64 SYS_getrlimit64
|
|
#define __NR_pread64 SYS_pread64
|
|
#define __NR_pwrite64 SYS_pwrite64
|
|
//#define __NR_rpcsys SYS_rpcsys
|
|
#define __NR_zone SYS_zone
|
|
//#define __NR_autofssys SYS_autofssys
|
|
#define __NR_getcwd SYS_getcwd
|
|
#define __NR_so_socket SYS_so_socket
|
|
#define __NR_so_socketpair SYS_so_socketpair
|
|
#define __NR_bind SYS_bind
|
|
#define __NR_listen SYS_listen
|
|
#define __NR_accept SYS_accept
|
|
#define __NR_connect SYS_connect
|
|
#define __NR_shutdown SYS_shutdown
|
|
#define __NR_recv SYS_recv
|
|
#define __NR_recvfrom SYS_recvfrom
|
|
#define __NR_recvmsg SYS_recvmsg
|
|
#define __NR_send SYS_send
|
|
#define __NR_sendmsg SYS_sendmsg
|
|
#define __NR_sendto SYS_sendto
|
|
#define __NR_getpeername SYS_getpeername
|
|
#define __NR_getsockname SYS_getsockname
|
|
#define __NR_getsockopt SYS_getsockopt
|
|
#define __NR_setsockopt SYS_setsockopt
|
|
//#define __NR_sockconfig SYS_sockconfig
|
|
//#define __NR_ntp_gettime SYS_ntp_gettime
|
|
//#define __NR_ntp_adjtime SYS_ntp_adjtime
|
|
//#define __NR_lwp_mutex_unlock SYS_lwp_mutex_unlock
|
|
//#define __NR_lwp_mutex_trylock SYS_lwp_mutex_trylock
|
|
#define __NR_lwp_mutex_register SYS_lwp_mutex_register
|
|
//#define __NR_cladm SYS_cladm
|
|
#define __NR_uucopy SYS_uucopy
|
|
#define __NR_umount2 SYS_umount2
|
|
|
|
/* The following syscalls were removed in Solaris 11 (see
|
|
https://wikis.oracle.com/display/DTrace/syscall+Provider). Valgrind's core
|
|
cannot use these syscalls but wrappers have to be provided for them because
|
|
they are still in use on illumos.
|
|
*/
|
|
#if defined(SOLARIS_OLD_SYSCALLS)
|
|
#define __NR_open SYS_open
|
|
#define __NR_link SYS_link
|
|
#define __NR_unlink SYS_unlink
|
|
#define __NR_mknod SYS_mknod
|
|
#define __NR_chmod SYS_chmod
|
|
#define __NR_chown SYS_chown
|
|
#define __NR_stat SYS_stat
|
|
#define __NR_fstat SYS_fstat
|
|
#define __NR_access SYS_access
|
|
#define __NR_rmdir SYS_rmdir
|
|
#define __NR_mkdir SYS_mkdir
|
|
#define __NR_lstat SYS_lstat
|
|
#define __NR_symlink SYS_symlink
|
|
#define __NR_readlink SYS_readlink
|
|
#define __NR_fchmod SYS_fchmod
|
|
#define __NR_fchown SYS_fchown
|
|
#define __NR_lchown SYS_lchown
|
|
#define __NR_rename SYS_rename
|
|
#define __NR_stat64 SYS_stat64
|
|
#define __NR_lstat64 SYS_lstat64
|
|
#define __NR_fstat64 SYS_fstat64
|
|
#define __NR_open64 SYS_open64
|
|
#endif /* SOLARIS_OLD_SYSCALLS */
|
|
|
|
/*
|
|
#define __NR_null \
|
|
VG_SOLARIS_SYSCALL_CONSTRUCT_FASTTRAP(T_FNULL)
|
|
#define __NR_fgetfp \
|
|
VG_SOLARIS_SYSCALL_CONSTRUCT_FASTTRAP(T_FGETFP)
|
|
#define __NR_fsetfp \
|
|
VG_SOLARIS_SYSCALL_CONSTRUCT_FASTTRAP(T_FSETFP)
|
|
*/
|
|
#define __NR_gethrtime \
|
|
VG_SOLARIS_SYSCALL_CONSTRUCT_FASTTRAP(T_GETHRTIME)
|
|
#define __NR_gethrvtime \
|
|
VG_SOLARIS_SYSCALL_CONSTRUCT_FASTTRAP(T_GETHRVTIME)
|
|
#define __NR_gethrestime \
|
|
VG_SOLARIS_SYSCALL_CONSTRUCT_FASTTRAP(T_GETHRESTIME)
|
|
/*
|
|
#define __NR_getlgrp \
|
|
VG_SOLARIS_SYSCALL_CONSTRUCT_FASTTRAP(T_GETLGRP)
|
|
*/
|
|
#if defined(SOLARIS_GETHRT_FASTTRAP)
|
|
#define __NR_gethrt \
|
|
VG_SOLARIS_SYSCALL_CONSTRUCT_FASTTRAP(T_GETHRT)
|
|
#endif /* SOLARIS_GETHRT_FASTTRAP */
|
|
#if defined(SOLARIS_GETZONEOFFSET_FASTTRAP)
|
|
#define __NR_getzoneoffset \
|
|
VG_SOLARIS_SYSCALL_CONSTRUCT_FASTTRAP(T_GETZONEOFFSET)
|
|
#endif /* SOLARIS_GETZONEOFFSET_FASTTRAP */
|
|
|
|
#endif /* __VKI_SCNUMS_SOLARIS_H */
|
|
|
|
/*--------------------------------------------------------------------*/
|
|
/*--- end ---*/
|
|
/*--------------------------------------------------------------------*/
|