summaryrefslogtreecommitdiff
path: root/coregrind/m_vkiscnums.c
diff options
context:
space:
mode:
authorStephane Marchesin <marchesin@icps.u-strasbg.fr>2009-05-04 19:05:59 +0200
committerStephane Marchesin <marchesin@icps.u-strasbg.fr>2009-05-04 19:05:59 +0200
commit6e410b3bb6ff51580897431105aae14591cbf7fb (patch)
treef8aeba9352710f10cd6b1d5138c8fc3ece91c8c3 /coregrind/m_vkiscnums.c
Initial import of fatgrind.HEADmaster
Diffstat (limited to 'coregrind/m_vkiscnums.c')
-rw-r--r--coregrind/m_vkiscnums.c1129
1 files changed, 1129 insertions, 0 deletions
diff --git a/coregrind/m_vkiscnums.c b/coregrind/m_vkiscnums.c
new file mode 100644
index 0000000..a191496
--- /dev/null
+++ b/coregrind/m_vkiscnums.c
@@ -0,0 +1,1129 @@
+
+/*--------------------------------------------------------------------*/
+/*--- Notional "implementation" for m_vkiscnums. ---*/
+/*--- m_vkiscnums.c ---*/
+/*--------------------------------------------------------------------*/
+
+/*
+ This file is part of Valgrind, a dynamic binary instrumentation
+ framework.
+
+ Copyright (C) 2006-2009 OpenWorks LLP
+ info@open-works.co.uk
+
+ 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.
+*/
+
+#include "pub_core_basics.h"
+#include "pub_core_vkiscnums.h" /* self */
+
+/* We have pub_{core,tool}_vkiscnums.h. This is the matching implementation
+ for that interface.
+
+ On Linux, the interface exports a bunch of "#define __NR_foo 42" style
+ definitions, so there is no implementation.
+
+ On AIX, syscall numbers are not fixed ahead of time; in principle
+ each process can have its own assignment of numbers to actual
+ syscalls. As a result we have a bunch of global variables to store
+ the number for each syscall, which are assigned to at system
+ startup, and a bunch of #defines which map "__NR_foo" names to
+ these global variables. Initially, when we don't know what a
+ syscall's number is, it is set to __NR_AIX5_UNKNOWN.
+
+ Therefore, on AIX, this module provides a home for those variables.
+
+ It also provides VG_(aix5_register_syscall) to assign numbers to
+ those variables.
+*/
+
+#if defined(VGO_aix5)
+/* These ones are for AIX 5.2. */
+Int VG_(aix5_NR_utrchook_sc) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_thread_create) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kfork) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kra_fork) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_execve) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ra_execve) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__load) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR___unload) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_loadbind) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR___loadx) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_bindprocessor) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_trcgent) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_trcgen) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_trchk) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_trchkt) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_trchkl) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_trchklt) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_trchkg) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_trchkgt) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kill) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__addcpucosts) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_mycpu) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_adjtime) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_checkpnt_block) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__checkpnt_kill) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__checkpnt_fail) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__checkpnt_commit) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__checkpnt_register) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__checkpnt) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_setcrid) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getcrid) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_mkcrid) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_checkpnt_wait) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_checkpnt_deliver) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_gencore) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_thread_terminate) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__exit) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kwaitpid64) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kwaitpid) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_yield) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getprocs64) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getevars) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getargs) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getthrds64) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getthrds) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getprocs) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_sigcleanup) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__setpri) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__getpri) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_profil) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_reboot) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_appgetrlimit) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_appsetrlimit) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__setpriority) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__getpriority) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_setrlimit64) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getrlimit64) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_appgetrusage) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getrusage64) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getvtid) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getrtid) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getrpid) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_restart_wait) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_restart) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__rmcpucosts) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__clock_getcpuclockid) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__clock_settime) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__clock_gettime) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__clock_getres) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__timer_settime) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__timer_gettime) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__timer_getoverrun) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__timer_delete) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__timer_create) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__sigqueue) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__sigsuspend) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__sigaction) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_sigprocmask) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_siglocalmask) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_count_event_waiters) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_thread_waitact) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_thread_waitlock_local) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_thread_waitlock) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_thread_wait) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_thread_unlock) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_thread_twakeup_unlock) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_thread_twakeup_event) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_thread_twakeup) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_thread_tsleep_event) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_thread_tsleep_chkpnt) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_thread_tsleep) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_thread_post_many) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_thread_post) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ue_proc_unregister) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ue_proc_register) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kthread_ctl) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__thread_setsched) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_threads_runnable) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_thread_getregs) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_thread_terminate_unlock) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_thread_terminate_ack) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_thread_setstate_fast) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_thread_setstate) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_thread_setmymask_fast) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_thread_setmystate_fast) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_thread_setmystate) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_thread_init) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_times) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__nsleep) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_reltimerid) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_appresinc) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_apprestimer) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_appresabs) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_appsettimer) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_appgettimer) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_gettimerid) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_incinterval) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_absinterval) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getinterval) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_upfget) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__wlm_wait) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__wlm_post) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__wlm_event_init) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__wlm_set_tag) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__wlm_set) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ptrace64) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ptracex) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ptrace) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ksetcontext_sigreturn) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ksetcontext) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kgetcontext) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_sigreturn) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__wlm_get_bio_stats) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_splice) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_rmsock) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_nrecvmsg) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_socket_aio_dequeue) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getkerninfo) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getpeereid) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getpeername) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ngetpeername) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getsockname) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ngetsockname) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getsockopt) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_setsockopt) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_shutdown) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_recvmsg) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_recv) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_nrecvfrom) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_recvfrom) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_nsendmsg) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_sendmsg) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_send) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_sendto) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_socketpair) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_accept) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_naccept) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_listen) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_bind) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_socket) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_connext) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_setdomainname) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getdomainname) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_sethostname) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_sethostid) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_gethostid) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_gethostname) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_send_file) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__rmlmbcost) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR___rs_pickmcm) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_rs_getsystem) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_rs_getassociativity) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_rs_setpartition) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_rs_getpartition) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ra_getrset) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_rs_getinfo) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_rs_getrad) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_rs_numrads) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR___kdb_format_print_rele) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR___kdb_format_print_init) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_close) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kfsync_range) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_fsync) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kpwrite) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kwritev) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kwrite) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kpread) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kreadv) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kread) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_klseek) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__lseek) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_lseek) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__setsid) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__setpgid) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__setpgrp) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__getpgrpx) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__getpgrp) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__getppid) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__thread_self) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__getpid) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kgetpgidx) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_setuid) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_setuidx) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getuidx) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_seteuid) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_setreuid) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_chdir) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_fchdir) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_chroot) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_fchmod) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_chmod) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_chown) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_lchown) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_fchown) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_fchownx) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_chownx) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kfclear) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_fclear) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ffinfo) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_finfo) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_fscntl) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ktruncate) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kftruncate) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_truncate) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ftruncate) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getdirent64) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getdirent) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kioctl32) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kioctl) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_link) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_klockf) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_lockf) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_mkdir) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_mknod) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_mntctl) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_vmount) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_creat) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_openx) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_open) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_quotactl) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_rename) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_rmdir) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_fstatx) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_statx) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_symlink) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_readlink) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_syncvfs) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_sync) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_umask) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_uvmount) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_umount) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_unameu) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_unamex) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_uname) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_unlink) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ustat) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_utimes) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR___msgxrcv) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR___msgrcv) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR___msgsnd) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_msgctl) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_msgget) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getgidx) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR___semop) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_semget) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_semctl) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_shmctl) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_shmdt) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_shmat) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_shmget) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ra_shmgetv) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ra_shmget) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_privcheck) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_disclaim) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__sem_destroy_unnamed) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__sem_wait) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__sem_close) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__sem_open) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_sem_unlink) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_sem_post) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_sem_init) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_sem_getvalue) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_sem_destroy) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__mq_notify) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__mq_open) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_mq_unlink) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_mq_setattr) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_mq_send) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_mq_receive) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_mq_getattr) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_mq_close) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_shm_unlink) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_shm_open) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__poll) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__select) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_sysconfig) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_sys_parm) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_loadquery) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_knlist) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_brk) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_fjfs_sys_call) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_jfs_sys_call) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_acct) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__dr_unregister) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__dr_notify) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__dr_register) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getlparload) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_dr_reconfig) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_projctl) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_sbrk) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__sigpending) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__pause) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_thread_kill) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_sigstack) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_sigaltstack) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_appulimit) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ras_service) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__wlm_class_descr2key) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__wlm_get_procinfo) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__wlm_get_info) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__wlm_getclassname) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__wlm_unload_classes) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__wlm_load) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__wlm_tune) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__wlm_assign) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__wlm_classify) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_fp_cpusync) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__fp_trapstate_ker) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__ewlm_classify_correlator) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__arm_stop_transaction) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__arm_destroy_application) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__arm_stop_application) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__arm_generate_correlator) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__arm_discard_transaction) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__arm_unbind_thread) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__arm_bind_thread) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__arm_unblock_transaction) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__arm_block_transaction) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__arm_update_transaction) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__arm_register_metric) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__arm_report_transaction) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__arm_start_transaction) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__arm_register_transaction) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__arm_start_application) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__arm_register_application) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__lsarm_getinfo) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__ewlm_init) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__ewlm_query) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ewlm_verify_policy) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ewlm_abort_policy) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ewlm_commit_policy) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ewlm_prepare_policy) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ewlm_get_completions) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ewlm_get_activedata) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ewlm_get_appldata) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ewlm_collect_samples) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ewlm_disconnect) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ewlm_connect) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_auditlog) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_auditproc) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getgroups) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_setgid) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_setgidx) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_setgroups) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_frevoke) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_revoke) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR___pag_setvalue) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR___pag_getvalue) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR___pag_getid) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR___pag_getname) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR___pag_setname) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kcap_set_proc) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kcap_get_proc) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_pipe) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_mwakeup) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR___msleep) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kmmap) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_msem_remove) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_mincore) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_madvise) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_munmap) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_msync) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_mprotect) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_mmap) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_swapqry) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_swapon) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_swapoff) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_psdanger) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_vmgetinfo) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_rs_admregistername) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_rs_discardname) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_rs_setnameattr) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_rs_registername) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_rs_getnamedrset) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_rs_getnameattr) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_rs_getrsetnames) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ra_attachrset) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_ra_detachrset) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_dmapi_init) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kdm_ioctl) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_access) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_accessx) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kfcntl) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR___pfcntl) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_fstatfs64) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_statfs64) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_fstatfs) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_statfs) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_probe) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_cmp_swap) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__validate_pag) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kgetsidx) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kgetsid) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_plock) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_upfput) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_usrinfo) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_audit) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_auditobj) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_auditbin) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_auditevents) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_faccessx) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR___fchaclx) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR___chaclx) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_fchacl) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_chacl) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR___fstataclx) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR___stataclx) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_fstatacl) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_statacl) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_setpriv) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getpriv) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_fstatpriv) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_statpriv) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_fchpriv) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_chpriv) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_i_int2cpu_pal) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_hd_cfg) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_putpmsg) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_putmsg) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getpmsg) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_getmsg) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_strinfo) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_strreset) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_dupmsg) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__kgrantpt) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_aixgsc) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_smaccept) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_smconnect) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_smlisten) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_smbind) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_smsocket) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_smdetatt) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_smattach) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_smselect) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_smwait) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_smsetthresh) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_smsendbuff) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_smfreebuff) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_smrcvbuff) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_smgetbuff) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_smversion) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_smtcheckinit) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_aio_nwait_timeout) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kaio_stats) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_aio_cntl) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_listio) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_acancel) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_iosuspend) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kaio_rdwr) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_aio_nwait) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__posix_iofsync) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__posix_aio_nwait_timeout) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__posix_kaio_stats) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__posix_listio) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__posix_acancel) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__posix_iosuspend) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__posix_kaio_rdwr) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__posix_aio_cntl) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__posix_aio_nwait) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_nfs_cntl) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_nfssvc) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_nfs_getfh) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_exportfs) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_lm_svc) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_pw_config) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_pw_post) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_pw_wait) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_pw_loadavg) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_pw_debug) = __NR_AIX5_UNKNOWN;
+
+/* Extras for AIX 5.3 */
+Int VG_(aix5_NR___libc_sbrk) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_thread_waitlock_) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__fp_fpscrx_sc) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_sched_get_priority_max) = __NR_AIX5_UNKNOWN;
+
+/* Extras for AIX 5.3 64-bit mode. */
+Int VG_(aix5_NR_kload) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR__fp_fpscrx64_) = __NR_AIX5_UNKNOWN;
+Int VG_(aix5_NR_kunload64) = __NR_AIX5_UNKNOWN;
+
+/* We need an extra fake syscall to denote signal handler returns, as
+ used in sigframe-ppc{32,64}-aix5.c. Since we don't know what
+ number we can assign to it, monitor the numbers passed to
+ VG_(aix5_register_syscall), and set it to 10000+the largest syscall
+ nummber seen. */
+Int VG_(aix5_NR_FAKE_SIGRETURN) = __NR_AIX5_UNKNOWN;
+
+
+
+/* Also make a record of the registered syscalls, so we can print the
+ name in bad_before() (syswrap-main.c) if needed. The obvious
+ approach would be to dump them in an XArray, but that requires
+ dynamic memory allocation, and syscall registration is done before
+ dynamic memory allocation is available. So just use a fixed size
+ array and hope it doesn't fill up. */
+#define N_BINDINGS 2000
+static Int bindings_used = 0;
+static Int bindings_sysno[N_BINDINGS];
+static UChar* bindings_sysname[N_BINDINGS];
+
+UChar* VG_(aix5_sysno_to_sysname)( Int sysno ) {
+ Int i;
+ for (i = 0; i < bindings_used; i++)
+ if (bindings_sysno[i] == sysno)
+ return bindings_sysname[i];
+ return "(unknown name)";
+}
+
+static Bool local_streq ( UChar* s1, UChar* s2 ); /* fwds */
+
+Bool VG_(aix5_register_syscall)( Int sysno, UChar* sysname )
+{
+ /* Establish the FAKE_SIGRETURN number. */
+ if (VG_(aix5_NR_FAKE_SIGRETURN) == __NR_AIX5_UNKNOWN)
+ VG_(aix5_NR_FAKE_SIGRETURN) = sysno + 10000;
+ else
+ if (sysno + 10000 > VG_(aix5_NR_FAKE_SIGRETURN))
+ VG_(aix5_NR_FAKE_SIGRETURN) = sysno + 10000;
+
+ /* Note the name, just in case bad_before() needs to complain. */
+ if (bindings_used < N_BINDINGS) {
+ bindings_sysno[bindings_used] = sysno;
+ bindings_sysname[bindings_used] = sysname;
+ bindings_used++;
+ }
+
+ /* Now do the normal name-to-number binding checks. */
+# define XXX(name) \
+ if (local_streq(sysname, #name)) { \
+ VG_(aix5_NR_##name) = sysno; \
+ return True; \
+ }
+ /* AIX 5.2 */
+ XXX(utrchook_sc)
+ XXX(thread_create)
+ XXX(kfork)
+ XXX(kra_fork)
+ XXX(execve)
+ XXX(ra_execve)
+ XXX(_load)
+ XXX(__unload)
+ XXX(loadbind)
+ XXX(__loadx)
+ XXX(bindprocessor)
+ XXX(trcgent)
+ XXX(trcgen)
+ XXX(trchk)
+ XXX(trchkt)
+ XXX(trchkl)
+ XXX(trchklt)
+ XXX(trchkg)
+ XXX(trchkgt)
+ XXX(kill)
+ XXX(_addcpucosts)
+ XXX(mycpu)
+ XXX(adjtime)
+ XXX(checkpnt_block)
+ XXX(_checkpnt_kill)
+ XXX(_checkpnt_fail)
+ XXX(_checkpnt_commit)
+ XXX(_checkpnt_register)
+ XXX(_checkpnt)
+ XXX(setcrid)
+ XXX(getcrid)
+ XXX(mkcrid)
+ XXX(checkpnt_wait)
+ XXX(checkpnt_deliver)
+ XXX(gencore)
+ XXX(thread_terminate)
+ XXX(_exit)
+ XXX(kwaitpid64)
+ XXX(kwaitpid)
+ XXX(yield)
+ XXX(getprocs64)
+ XXX(getevars)
+ XXX(getargs)
+ XXX(getthrds64)
+ XXX(getthrds)
+ XXX(getprocs)
+ XXX(sigcleanup)
+ XXX(_setpri)
+ XXX(_getpri)
+ XXX(profil)
+ XXX(reboot)
+ XXX(appgetrlimit)
+ XXX(appsetrlimit)
+ XXX(_setpriority)
+ XXX(_getpriority)
+ XXX(setrlimit64)
+ XXX(getrlimit64)
+ XXX(appgetrusage)
+ XXX(getrusage64)
+ XXX(getvtid)
+ XXX(getrtid)
+ XXX(getrpid)
+ XXX(restart_wait)
+ XXX(restart)
+ XXX(_rmcpucosts)
+ XXX(_clock_getcpuclockid)
+ XXX(_clock_settime)
+ XXX(_clock_gettime)
+ XXX(_clock_getres)
+ XXX(_timer_settime)
+ XXX(_timer_gettime)
+ XXX(_timer_getoverrun)
+ XXX(_timer_delete)
+ XXX(_timer_create)
+ XXX(_sigqueue)
+ XXX(_sigsuspend)
+ XXX(_sigaction)
+ XXX(sigprocmask)
+ XXX(siglocalmask)
+ XXX(count_event_waiters)
+ XXX(thread_waitact)
+ XXX(thread_waitlock_local)
+ XXX(thread_waitlock)
+ XXX(thread_wait)
+ XXX(thread_unlock)
+ XXX(thread_twakeup_unlock)
+ XXX(thread_twakeup_event)
+ XXX(thread_twakeup)
+ XXX(thread_tsleep_event)
+ XXX(thread_tsleep_chkpnt)
+ XXX(thread_tsleep)
+ XXX(thread_post_many)
+ XXX(thread_post)
+ XXX(ue_proc_unregister)
+ XXX(ue_proc_register)
+ XXX(kthread_ctl)
+ XXX(_thread_setsched)
+ XXX(threads_runnable)
+ XXX(thread_getregs)
+ XXX(thread_terminate_unlock)
+ XXX(thread_terminate_ack)
+ XXX(thread_setstate_fast)
+ XXX(thread_setstate)
+ XXX(thread_setmymask_fast)
+ XXX(thread_setmystate_fast)
+ XXX(thread_setmystate)
+ XXX(thread_init)
+ XXX(times)
+ XXX(_nsleep)
+ XXX(reltimerid)
+ XXX(appresinc)
+ XXX(apprestimer)
+ XXX(appresabs)
+ XXX(appsettimer)
+ XXX(appgettimer)
+ XXX(gettimerid)
+ XXX(incinterval)
+ XXX(absinterval)
+ XXX(getinterval)
+ XXX(upfget)
+ XXX(_wlm_wait)
+ XXX(_wlm_post)
+ XXX(_wlm_event_init)
+ XXX(_wlm_set_tag)
+ XXX(_wlm_set)
+ XXX(ptrace64)
+ XXX(ptracex)
+ XXX(ptrace)
+ XXX(ksetcontext_sigreturn)
+ XXX(ksetcontext)
+ XXX(kgetcontext)
+ XXX(sigreturn)
+ XXX(_wlm_get_bio_stats)
+ XXX(splice)
+ XXX(rmsock)
+ XXX(nrecvmsg)
+ XXX(socket_aio_dequeue)
+ XXX(getkerninfo)
+ XXX(getpeereid)
+ XXX(getpeername)
+ XXX(ngetpeername)
+ XXX(getsockname)
+ XXX(ngetsockname)
+ XXX(getsockopt)
+ XXX(setsockopt)
+ XXX(shutdown)
+ XXX(recvmsg)
+ XXX(recv)
+ XXX(nrecvfrom)
+ XXX(recvfrom)
+ XXX(nsendmsg)
+ XXX(sendmsg)
+ XXX(send)
+ XXX(sendto)
+ XXX(socketpair)
+ XXX(accept)
+ XXX(naccept)
+ XXX(listen)
+ XXX(bind)
+ XXX(socket)
+ XXX(connext)
+ XXX(setdomainname)
+ XXX(getdomainname)
+ XXX(sethostname)
+ XXX(sethostid)
+ XXX(gethostid)
+ XXX(gethostname)
+ XXX(send_file)
+ XXX(_rmlmbcost)
+ XXX(__rs_pickmcm)
+ XXX(rs_getsystem)
+ XXX(rs_getassociativity)
+ XXX(rs_setpartition)
+ XXX(rs_getpartition)
+ XXX(ra_getrset)
+ XXX(rs_getinfo)
+ XXX(rs_getrad)
+ XXX(rs_numrads)
+ XXX(__kdb_format_print_rele)
+ XXX(__kdb_format_print_init)
+ XXX(close)
+ XXX(kfsync_range)
+ XXX(fsync)
+ XXX(kpwrite)
+ XXX(kwritev)
+ XXX(kwrite)
+ XXX(kpread)
+ XXX(kreadv)
+ XXX(kread)
+ XXX(klseek)
+ XXX(_lseek)
+ XXX(lseek)
+ XXX(_setsid)
+ XXX(_setpgid)
+ XXX(_setpgrp)
+ XXX(_getpgrpx)
+ XXX(_getpgrp)
+ XXX(_getppid)
+ XXX(_thread_self)
+ XXX(_getpid)
+ XXX(kgetpgidx)
+ XXX(setuid)
+ XXX(setuidx)
+ XXX(getuidx)
+ XXX(seteuid)
+ XXX(setreuid)
+ XXX(chdir)
+ XXX(fchdir)
+ XXX(chroot)
+ XXX(fchmod)
+ XXX(chmod)
+ XXX(chown)
+ XXX(lchown)
+ XXX(fchown)
+ XXX(fchownx)
+ XXX(chownx)
+ XXX(kfclear)
+ XXX(fclear)
+ XXX(ffinfo)
+ XXX(finfo)
+ XXX(fscntl)
+ XXX(ktruncate)
+ XXX(kftruncate)
+ XXX(truncate)
+ XXX(ftruncate)
+ XXX(getdirent64)
+ XXX(getdirent)
+ XXX(kioctl32)
+ XXX(kioctl)
+ XXX(link)
+ XXX(klockf)
+ XXX(lockf)
+ XXX(mkdir)
+ XXX(mknod)
+ XXX(mntctl)
+ XXX(vmount)
+ XXX(creat)
+ XXX(openx)
+ XXX(open)
+ XXX(quotactl)
+ XXX(rename)
+ XXX(rmdir)
+ XXX(fstatx)
+ XXX(statx)
+ XXX(symlink)
+ XXX(readlink)
+ XXX(syncvfs)
+ XXX(sync)
+ XXX(umask)
+ XXX(uvmount)
+ XXX(umount)
+ XXX(unameu)
+ XXX(unamex)
+ XXX(uname)
+ XXX(unlink)
+ XXX(ustat)
+ XXX(utimes)
+ XXX(__msgxrcv)
+ XXX(__msgrcv)
+ XXX(__msgsnd)
+ XXX(msgctl)
+ XXX(msgget)
+ XXX(getgidx)
+ XXX(__semop)
+ XXX(semget)
+ XXX(semctl)
+ XXX(shmctl)
+ XXX(shmdt)
+ XXX(shmat)
+ XXX(shmget)
+ XXX(ra_shmgetv)
+ XXX(ra_shmget)
+ XXX(privcheck)
+ XXX(disclaim)
+ XXX(_sem_destroy_unnamed)
+ XXX(_sem_wait)
+ XXX(_sem_close)
+ XXX(_sem_open)
+ XXX(sem_unlink)
+ XXX(sem_post)
+ XXX(sem_init)
+ XXX(sem_getvalue)
+ XXX(sem_destroy)
+ XXX(_mq_notify)
+ XXX(_mq_open)
+ XXX(mq_unlink)
+ XXX(mq_setattr)
+ XXX(mq_send)
+ XXX(mq_receive)
+ XXX(mq_getattr)
+ XXX(mq_close)
+ XXX(shm_unlink)
+ XXX(shm_open)
+ XXX(_poll)
+ XXX(_select)
+ XXX(sysconfig)
+ XXX(sys_parm)
+ XXX(loadquery)
+ XXX(knlist)
+ XXX(brk)
+ XXX(fjfs_sys_call)
+ XXX(jfs_sys_call)
+ XXX(acct)
+ XXX(_dr_unregister)
+ XXX(_dr_notify)
+ XXX(_dr_register)
+ XXX(getlparload)
+ XXX(dr_reconfig)
+ XXX(projctl)
+ XXX(sbrk)
+ XXX(_sigpending)
+ XXX(_pause)
+ XXX(thread_kill)
+ XXX(sigstack)
+ XXX(sigaltstack)
+ XXX(appulimit)
+ XXX(ras_service)
+ XXX(_wlm_class_descr2key)
+ XXX(_wlm_get_procinfo)
+ XXX(_wlm_get_info)
+ XXX(_wlm_getclassname)
+ XXX(_wlm_unload_classes)
+ XXX(_wlm_load)
+ XXX(_wlm_tune)
+ XXX(_wlm_assign)
+ XXX(_wlm_classify)
+ XXX(fp_cpusync)
+ XXX(_fp_trapstate_ker)
+ XXX(_ewlm_classify_correlator)
+ XXX(_arm_stop_transaction)
+ XXX(_arm_destroy_application)
+ XXX(_arm_stop_application)
+ XXX(_arm_generate_correlator)
+ XXX(_arm_discard_transaction)
+ XXX(_arm_unbind_thread)
+ XXX(_arm_bind_thread)
+ XXX(_arm_unblock_transaction)
+ XXX(_arm_block_transaction)
+ XXX(_arm_update_transaction)
+ XXX(_arm_register_metric)
+ XXX(_arm_report_transaction)
+ XXX(_arm_start_transaction)
+ XXX(_arm_register_transaction)
+ XXX(_arm_start_application)
+ XXX(_arm_register_application)
+ XXX(_lsarm_getinfo)
+ XXX(_ewlm_init)
+ XXX(_ewlm_query)
+ XXX(ewlm_verify_policy)
+ XXX(ewlm_abort_policy)
+ XXX(ewlm_commit_policy)
+ XXX(ewlm_prepare_policy)
+ XXX(ewlm_get_completions)
+ XXX(ewlm_get_activedata)
+ XXX(ewlm_get_appldata)
+ XXX(ewlm_collect_samples)
+ XXX(ewlm_disconnect)
+ XXX(ewlm_connect)
+ XXX(auditlog)
+ XXX(auditproc)
+ XXX(getgroups)
+ XXX(setgid)
+ XXX(setgidx)
+ XXX(setgroups)
+ XXX(frevoke)
+ XXX(revoke)
+ XXX(__pag_setvalue)
+ XXX(__pag_getvalue)
+ XXX(__pag_getid)
+ XXX(__pag_getname)
+ XXX(__pag_setname)
+ XXX(kcap_set_proc)
+ XXX(kcap_get_proc)
+ XXX(pipe)
+ XXX(mwakeup)
+ XXX(__msleep)
+ XXX(kmmap)
+ XXX(msem_remove)
+ XXX(mincore)
+ XXX(madvise)
+ XXX(munmap)
+ XXX(msync)
+ XXX(mprotect)
+ XXX(mmap)
+ XXX(swapqry)
+ XXX(swapon)
+ XXX(swapoff)
+ XXX(psdanger)
+ XXX(vmgetinfo)
+ XXX(rs_admregistername)
+ XXX(rs_discardname)
+ XXX(rs_setnameattr)
+ XXX(rs_registername)
+ XXX(rs_getnamedrset)
+ XXX(rs_getnameattr)
+ XXX(rs_getrsetnames)
+ XXX(ra_attachrset)
+ XXX(ra_detachrset)
+ XXX(dmapi_init)
+ XXX(kdm_ioctl)
+ XXX(access)
+ XXX(accessx)
+ XXX(kfcntl)
+ XXX(__pfcntl)
+ XXX(fstatfs64)
+ XXX(statfs64)
+ XXX(fstatfs)
+ XXX(statfs)
+ XXX(probe)
+ XXX(cmp_swap)
+ XXX(_validate_pag)
+ XXX(kgetsidx)
+ XXX(kgetsid)
+ XXX(plock)
+ XXX(upfput)
+ XXX(usrinfo)
+ XXX(audit)
+ XXX(auditobj)
+ XXX(auditbin)
+ XXX(auditevents)
+ XXX(faccessx)
+ XXX(__fchaclx)
+ XXX(__chaclx)
+ XXX(fchacl)
+ XXX(chacl)
+ XXX(__fstataclx)
+ XXX(__stataclx)
+ XXX(fstatacl)
+ XXX(statacl)
+ XXX(setpriv)
+ XXX(getpriv)
+ XXX(fstatpriv)
+ XXX(statpriv)
+ XXX(fchpriv)
+ XXX(chpriv)
+ XXX(i_int2cpu_pal)
+ XXX(hd_cfg)
+ XXX(putpmsg)
+ XXX(putmsg)
+ XXX(getpmsg)
+ XXX(getmsg)
+ XXX(strinfo)
+ XXX(strreset)
+ XXX(dupmsg)
+ XXX(_kgrantpt)
+ XXX(aixgsc)
+ XXX(smaccept)
+ XXX(smconnect)
+ XXX(smlisten)
+ XXX(smbind)
+ XXX(smsocket)
+ XXX(smdetatt)
+ XXX(smattach)
+ XXX(smselect)
+ XXX(smwait)
+ XXX(smsetthresh)
+ XXX(smsendbuff)
+ XXX(smfreebuff)
+ XXX(smrcvbuff)
+ XXX(smgetbuff)
+ XXX(smversion)
+ XXX(smtcheckinit)
+ XXX(aio_nwait_timeout)
+ XXX(kaio_stats)
+ XXX(aio_cntl)
+ XXX(listio)
+ XXX(acancel)
+ XXX(iosuspend)
+ XXX(kaio_rdwr)
+ XXX(aio_nwait)
+ XXX(_posix_iofsync)
+ XXX(_posix_aio_nwait_timeout)
+ XXX(_posix_kaio_stats)
+ XXX(_posix_listio)
+ XXX(_posix_acancel)
+ XXX(_posix_iosuspend)
+ XXX(_posix_kaio_rdwr)
+ XXX(_posix_aio_cntl)
+ XXX(_posix_aio_nwait)
+ XXX(nfs_cntl)
+ XXX(nfssvc)
+ XXX(nfs_getfh)
+ XXX(exportfs)
+ XXX(lm_svc)
+ XXX(pw_config)
+ XXX(pw_post)
+ XXX(pw_wait)
+ XXX(pw_loadavg)
+ XXX(pw_debug)
+ /* Extras for AIX 5.3 */
+ XXX(__libc_sbrk)
+ XXX(thread_waitlock_)
+ XXX(_fp_fpscrx_sc)
+ XXX(sched_get_priority_max)
+ /* Extras for AIX 5.3 64-bit */
+ XXX(kload)
+ XXX(_fp_fpscrx64_)
+ XXX(kunload64)
+# undef XXX
+ return False;
+}
+
+
+static Bool local_streq ( UChar* s1, UChar* s2 )
+{
+ while (True) {
+ if (*s1 == 0 && *s2 == 0) return True;
+ if (*s1 == 0) return False;
+ if (*s2 == 0) return False;
+ if (*s1 != *s2) return False;
+ s1++; s2++;
+ }
+}
+
+#endif /* defined(VGO_aix5) */
+
+/*--------------------------------------------------------------------*/
+/*--- end ---*/
+/*--------------------------------------------------------------------*/