Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:13:30

0001 
0002 /*---------------------------------------------------------------*/
0003 /*--- begin                               libvex_trc_values.h ---*/
0004 /*---------------------------------------------------------------*/
0005 
0006 /*
0007    This file is part of Valgrind, a dynamic binary instrumentation
0008    framework.
0009 
0010    Copyright (C) 2004-2017 OpenWorks LLP
0011       info@open-works.net
0012 
0013    This program is free software; you can redistribute it and/or
0014    modify it under the terms of the GNU General Public License as
0015    published by the Free Software Foundation; either version 2 of the
0016    License, or (at your option) any later version.
0017 
0018    This program is distributed in the hope that it will be useful, but
0019    WITHOUT ANY WARRANTY; without even the implied warranty of
0020    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0021    General Public License for more details.
0022 
0023    You should have received a copy of the GNU General Public License
0024    along with this program; if not, see <http://www.gnu.org/licenses/>.
0025 
0026    The GNU General Public License is contained in the file COPYING.
0027 
0028    Neither the names of the U.S. Department of Energy nor the
0029    University of California nor the names of its contributors may be
0030    used to endorse or promote products derived from this software
0031    without prior written permission.
0032 */
0033 
0034 #ifndef __LIBVEX_TRC_VALUES_H
0035 #define __LIBVEX_TRC_VALUES_H
0036 
0037 
0038 /* Magic values that the guest state pointer might be set to when
0039    returning to the dispatcher.  The only other legitimate value is to
0040    point to the start of the thread's VEX guest state.
0041 
0042    This file may get included in assembly code, so do not put
0043    C-specific constructs in it.
0044 
0045    These values should be 61 or above so as not to conflict
0046    with Valgrind's VG_TRC_ values, which are 60 or below.
0047 */
0048 
0049 #define VEX_TRC_JMP_INVALICACHE 61  /* invalidate icache (translations)
0050                                        before continuing */
0051 #define VEX_TRC_JMP_FLUSHDCACHE 103 /* flush dcache before continuing */
0052 
0053 #define VEX_TRC_JMP_NOREDIR    81  /* jump to undirected guest addr */
0054 #define VEX_TRC_JMP_SIGTRAP    85  /* deliver trap (SIGTRAP) before
0055                                       continuing */
0056 #define VEX_TRC_JMP_SIGSEGV    87  /* deliver segv (SIGSEGV) before
0057                                       continuing */
0058 #define VEX_TRC_JMP_SIGBUS     93  /* deliver SIGBUS before continuing */
0059 #define VEX_TRC_JMP_SIGFPE    105  /* deliver SIGFPE before continuing */
0060 
0061 #define VEX_TRC_JMP_SIGFPE_INTDIV     97  /* deliver SIGFPE (integer divide
0062                                              by zero) before continuing */
0063 
0064 #define VEX_TRC_JMP_SIGFPE_INTOVF     99  /* deliver SIGFPE (integer overflow)
0065                                              before continuing */
0066 
0067 #define VEX_TRC_JMP_SIGILL     101  /* deliver SIGILL (Illegal instruction)
0068                                        before continuing */
0069 
0070 #define VEX_TRC_JMP_EMWARN     63  /* deliver emulation warning before
0071                                       continuing */
0072 #define VEX_TRC_JMP_EMFAIL     83  /* emulation fatal error; abort system */
0073 
0074 #define VEX_TRC_JMP_CLIENTREQ  65  /* do a client req before continuing */
0075 #define VEX_TRC_JMP_YIELD      67  /* yield to thread sched 
0076                                       before continuing */
0077 #define VEX_TRC_JMP_NODECODE   69  /* next instruction is not decodable */
0078 #define VEX_TRC_JMP_MAPFAIL    71  /* address translation failed */
0079 
0080 #define VEX_TRC_JMP_SYS_SYSCALL  73 /* do syscall before continuing */
0081 #define VEX_TRC_JMP_SYS_INT32    75 /* do syscall before continuing */
0082 #define VEX_TRC_JMP_SYS_INT128   77 /* do syscall before continuing */
0083 #define VEX_TRC_JMP_SYS_INT129   89 /* do syscall before continuing */
0084 #define VEX_TRC_JMP_SYS_INT130   91 /* do syscall before continuing */
0085 #define VEX_TRC_JMP_SYS_INT145  111 /* do syscall before continuing */
0086 #define VEX_TRC_JMP_SYS_INT210  113 /* do syscall before continuing */
0087 
0088 #define VEX_TRC_JMP_SYS_SYSENTER 79 /* do syscall before continuing */
0089 
0090 #define VEX_TRC_JMP_BORING       95 /* return to sched, but just 
0091                                        keep going; no special action */
0092 
0093 #endif /* ndef __LIBVEX_TRC_VALUES_H */
0094 
0095 /*---------------------------------------------------------------*/
0096 /*---                                     libvex_trc_values.h ---*/
0097 /*---------------------------------------------------------------*/