summaryrefslogtreecommitdiff
path: root/coregrind/m_syswrap/.svn/text-base/priv_syswrap-aix5.h.svn-base
diff options
context:
space:
mode:
Diffstat (limited to 'coregrind/m_syswrap/.svn/text-base/priv_syswrap-aix5.h.svn-base')
-rw-r--r--coregrind/m_syswrap/.svn/text-base/priv_syswrap-aix5.h.svn-base209
1 files changed, 209 insertions, 0 deletions
diff --git a/coregrind/m_syswrap/.svn/text-base/priv_syswrap-aix5.h.svn-base b/coregrind/m_syswrap/.svn/text-base/priv_syswrap-aix5.h.svn-base
new file mode 100644
index 0000000..4e56095
--- /dev/null
+++ b/coregrind/m_syswrap/.svn/text-base/priv_syswrap-aix5.h.svn-base
@@ -0,0 +1,209 @@
+
+/*--------------------------------------------------------------------*/
+/*--- AIX5-specific syscalls stuff. priv_syswrap-aix5.h ---*/
+/*--------------------------------------------------------------------*/
+
+/*
+ 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.
+
+ Neither the names of the U.S. Department of Energy nor the
+ University of California nor the names of its contributors may be
+ used to endorse or promote products derived from this software
+ without prior written permission.
+*/
+
+#ifndef __PRIV_SYSWRAP_AIX5_H
+#define __PRIV_SYSWRAP_AIX5_H
+
+/* requires #include "priv_types_n_macros.h" */
+
+
+/* Allocate a stack for this thread, if it doesn't already have one.
+ They're allocated lazily, and never freed. Returns the initial stack
+ pointer value to use, or 0 if allocation failed. */
+extern Addr ML_(allocstack)(ThreadId tid);
+
+/* Re-read /proc/../map and update everything that depends on it. */
+extern void ML_(aix5_rescan_procmap_after_load_or_unload) ( void );
+
+/* Mess with the given thread's pc/toc so that it is entering
+ pthread_exit() with argument PTHREAD_CANCELED. Returns True if ok,
+ False if it failed to do so, due to not being able to find
+ pthread_exit() by searching symbol tables. */
+extern Bool ML_(aix5_force_thread_into_pthread_exit)( ThreadId );
+
+/* For various reasons, on AIX we may have to just give up if
+ continuing is too difficult (eg, risk of future deadlock). This
+ sets up the process state to exit straight away, but does not
+ actually itself exit. */
+extern
+void ML_(aix5_set_threadstate_for_emergency_exit)(ThreadId tid, HChar* why);
+
+/* Debugging stuff, for making sense of AIX5 threading syscalls. */
+extern void ML_(aix5debugstuff_show_tstate) ( Addr, HChar* who );
+extern void ML_(aix5debugstuff_show_tstate_flags) ( UWord w );
+extern HChar* ML_(aix5debugstuff_pc_to_fnname) ( Addr pc );
+
+
+// Syscalls which can be handled by a common wrapper for
+// both ppc32-aix5 and ppc64-aix5
+
+DECL_TEMPLATE(aix5, sys___libc_sbrk);
+DECL_TEMPLATE(aix5, sys___msleep);
+DECL_TEMPLATE(aix5, sys__clock_settime);
+DECL_TEMPLATE(aix5, sys__exit);
+DECL_TEMPLATE(aix5, sys__fp_fpscrx_sc);
+DECL_TEMPLATE(aix5, sys__getpgrp);
+DECL_TEMPLATE(aix5, sys__getpid);
+DECL_TEMPLATE(aix5, sys__getppid);
+DECL_TEMPLATE(aix5, sys__getpriority);
+DECL_TEMPLATE(aix5, sys__nsleep);
+DECL_TEMPLATE(aix5, sys__pause);
+DECL_TEMPLATE(aix5, sys__poll);
+DECL_TEMPLATE(aix5, sys__select);
+DECL_TEMPLATE(aix5, sys__sem_wait);
+DECL_TEMPLATE(aix5, sys__setpgid);
+DECL_TEMPLATE(aix5, sys__setsid);
+DECL_TEMPLATE(aix5, sys__sigaction);
+DECL_TEMPLATE(aix5, sys__thread_self);
+DECL_TEMPLATE(aix5, sys__thread_setsched);
+DECL_TEMPLATE(aix5, sys_access);
+DECL_TEMPLATE(aix5, sys_accessx);
+DECL_TEMPLATE(aix5, sys_appgetrlimit);
+DECL_TEMPLATE(aix5, sys_appgetrusage);
+DECL_TEMPLATE(aix5, sys_apprestimer);
+DECL_TEMPLATE(aix5, sys_appsetrlimit);
+DECL_TEMPLATE(aix5, sys_appulimit);
+DECL_TEMPLATE(aix5, sys_bind);
+DECL_TEMPLATE(aix5, sys_chdir);
+DECL_TEMPLATE(aix5, sys_chmod);
+DECL_TEMPLATE(aix5, sys_chown);
+DECL_TEMPLATE(aix5, sys_close);
+DECL_TEMPLATE(aix5, sys_connext);
+DECL_TEMPLATE(aix5, sys_execve);
+DECL_TEMPLATE(aix5, sys_finfo);
+DECL_TEMPLATE(aix5, sys_fstatfs);
+DECL_TEMPLATE(aix5, sys_fstatx);
+DECL_TEMPLATE(aix5, sys_fsync);
+DECL_TEMPLATE(aix5, sys_getdirent);
+DECL_TEMPLATE(aix5, sys_getdirent64);
+DECL_TEMPLATE(aix5, sys_getdomainname);
+DECL_TEMPLATE(aix5, sys_getgidx);
+DECL_TEMPLATE(aix5, sys_getgroups);
+DECL_TEMPLATE(aix5, sys_gethostname);
+DECL_TEMPLATE(aix5, sys_getpriv);
+DECL_TEMPLATE(aix5, sys_getprocs);
+DECL_TEMPLATE(aix5, sys_getrpid);
+DECL_TEMPLATE(aix5, sys_getsockopt);
+DECL_TEMPLATE(aix5, sys_gettimerid);
+DECL_TEMPLATE(aix5, sys_getuidx);
+DECL_TEMPLATE(aix5, sys_incinterval);
+DECL_TEMPLATE(aix5, sys_kfcntl);
+DECL_TEMPLATE(aix5, sys_kfork);
+DECL_TEMPLATE(aix5, sys_kftruncate);
+DECL_TEMPLATE(aix5, sys_kgetsidx);
+DECL_TEMPLATE(aix5, sys_kill);
+DECL_TEMPLATE(aix5, sys_kioctl);
+DECL_TEMPLATE(aix5, sys_klseek);
+DECL_TEMPLATE(aix5, sys_knlist);
+DECL_TEMPLATE(aix5, sys_kpread);
+DECL_TEMPLATE(aix5, sys_kread);
+DECL_TEMPLATE(aix5, sys_kreadv);
+DECL_TEMPLATE(aix5, sys_kthread_ctl);
+DECL_TEMPLATE(aix5, sys_ktruncate);
+DECL_TEMPLATE(aix5, sys_kwaitpid);
+DECL_TEMPLATE(aix5, sys_kwrite);
+DECL_TEMPLATE(aix5, sys_kwritev);
+DECL_TEMPLATE(aix5, sys_listen);
+DECL_TEMPLATE(aix5, sys_loadbind);
+DECL_TEMPLATE(aix5, sys_loadquery);
+DECL_TEMPLATE(aix5, sys_lseek);
+DECL_TEMPLATE(aix5, sys_mkdir);
+DECL_TEMPLATE(aix5, sys_mmap);
+DECL_TEMPLATE(aix5, sys_mprotect);
+DECL_TEMPLATE(aix5, sys_mntctl);
+DECL_TEMPLATE(aix5, sys_munmap);
+DECL_TEMPLATE(aix5, sys_naccept);
+DECL_TEMPLATE(aix5, sys_ngetpeername);
+DECL_TEMPLATE(aix5, sys_ngetsockname);
+DECL_TEMPLATE(aix5, sys_nrecvfrom);
+DECL_TEMPLATE(aix5, sys_nrecvmsg);
+DECL_TEMPLATE(aix5, sys_nsendmsg);
+DECL_TEMPLATE(aix5, sys_open);
+DECL_TEMPLATE(aix5, sys_pipe);
+DECL_TEMPLATE(aix5, sys_privcheck);
+DECL_TEMPLATE(aix5, sys_readlink);
+DECL_TEMPLATE(aix5, sys_recv);
+DECL_TEMPLATE(aix5, sys_rename);
+DECL_TEMPLATE(aix5, sys_sbrk);
+DECL_TEMPLATE(aix5, sys_sched_get_priority_max);
+DECL_TEMPLATE(aix5, sys_sem_destroy);
+DECL_TEMPLATE(aix5, sys_sem_init);
+DECL_TEMPLATE(aix5, sys_sem_post);
+DECL_TEMPLATE(aix5, sys_send);
+DECL_TEMPLATE(aix5, sys_setgid);
+DECL_TEMPLATE(aix5, sys_setsockopt);
+DECL_TEMPLATE(aix5, sys_setuid);
+DECL_TEMPLATE(aix5, sys_shmat);
+DECL_TEMPLATE(aix5, sys_shmctl);
+DECL_TEMPLATE(aix5, sys_shmdt);
+DECL_TEMPLATE(aix5, sys_shmget);
+DECL_TEMPLATE(aix5, sys_shutdown);
+DECL_TEMPLATE(aix5, sys_sigcleanup);
+DECL_TEMPLATE(aix5, sys_sigprocmask);
+DECL_TEMPLATE(aix5, sys_socket);
+DECL_TEMPLATE(aix5, sys_statfs);
+DECL_TEMPLATE(aix5, sys_statx);
+DECL_TEMPLATE(aix5, sys_symlink);
+DECL_TEMPLATE(aix5, sys_sys_parm);
+DECL_TEMPLATE(aix5, sys_sysconfig);
+DECL_TEMPLATE(aix5, sys_thread_create);
+DECL_TEMPLATE(aix5, sys_thread_init);
+DECL_TEMPLATE(aix5, sys_thread_kill);
+/* thread_setmymask_fast is platform specific */
+DECL_TEMPLATE(aix5, sys_thread_setmystate);
+DECL_TEMPLATE(aix5, sys_thread_setmystate_fast);
+/* thread_setstate is platform specific */
+DECL_TEMPLATE(aix5, sys_thread_terminate_unlock);
+DECL_TEMPLATE(aix5, sys_thread_tsleep);
+DECL_TEMPLATE(aix5, sys_thread_tsleep_event);
+DECL_TEMPLATE(aix5, sys_thread_twakeup);
+DECL_TEMPLATE(aix5, sys_thread_twakeup_event);
+DECL_TEMPLATE(aix5, sys_thread_unlock);
+DECL_TEMPLATE(aix5, sys_thread_waitlock);
+DECL_TEMPLATE(aix5, sys_thread_waitlock_);
+DECL_TEMPLATE(aix5, sys_times);
+DECL_TEMPLATE(aix5, sys_umask);
+DECL_TEMPLATE(aix5, sys_uname);
+DECL_TEMPLATE(aix5, sys_unlink);
+DECL_TEMPLATE(aix5, sys_utimes);
+DECL_TEMPLATE(aix5, sys_vmgetinfo);
+DECL_TEMPLATE(aix5, sys_yield);
+
+
+#endif // __PRIV_SYSWRAP_AIX5_H
+
+/*--------------------------------------------------------------------*/
+/*--- end ---*/
+/*--------------------------------------------------------------------*/