/* Copyright (c) 2008-2010, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Neither the name of Google Inc. nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * --- * Author: Kostya Serebryany */ /* This file lists ThreadSanitizer/Valgrind client requests. See ts_valgrind.cc for details. This file may need to be included into source files outside of ThreadSanitizer, hence the BSD license. */ #ifndef TS_VALGRIND_CLIENT_REQUESTS_H_ #define TS_VALGRIND_CLIENT_REQUESTS_H_ #include "valgrind.h" /* * WARNING: The following enum defines the ThreadSanitizer ABI. * Existing elements should never be changed, new elements should be added to * the end. */ enum { TSREQ_NOOP = VG_USERREQ_TOOL_BASE('T', 'S'), TSREQ_CLEAN_MEMORY, TSREQ_MAIN_IN, TSREQ_MAIN_OUT, TSREQ_MALLOC, TSREQ_FREE, TSREQ_MMAP, TSREQ_MUNMAP, TSREQ_BENIGN_RACE, TSREQ_EXPECT_RACE, TSREQ_PCQ_CREATE, TSREQ_PCQ_DESTROY, TSREQ_PCQ_PUT, TSREQ_PCQ_GET, TSREQ_TRACE_MEM, TSREQ_MUTEX_IS_USED_AS_CONDVAR, TSREQ_IGNORE_READS_BEGIN, TSREQ_IGNORE_READS_END, TSREQ_IGNORE_WRITES_BEGIN, TSREQ_IGNORE_WRITES_END, TSREQ_SET_THREAD_NAME, TSREQ_IGNORE_ALL_ACCESSES_BEGIN, TSREQ_IGNORE_ALL_ACCESSES_END, TSREQ_IGNORE_ALL_SYNC_BEGIN, TSREQ_IGNORE_ALL_SYNC_END, TSREQ_GLOBAL_IGNORE_ON, TSREQ_GLOBAL_IGNORE_OFF, TSREQ_PUBLISH_MEMORY_RANGE, TSREQ_UNPUBLISH_MEMORY_RANGE, TSREQ_PRINT_MEMORY_USAGE, TSREQ_PRINT_STATS, TSREQ_RESET_STATS, TSREQ_SET_MY_PTHREAD_T, TSREQ_THR_STACK_TOP, TSREQ_SET_STACKTOP_STACKSIZE, TSREQ_PTH_API_ERROR, TSREQ_PTHREAD_JOIN_POST, TSREQ_PTHREAD_RWLOCK_CREATE_POST, TSREQ_PTHREAD_RWLOCK_DESTROY_PRE, TSREQ_PTHREAD_RWLOCK_LOCK_POST, TSREQ_PTHREAD_RWLOCK_UNLOCK_PRE, TSREQ_PTHREAD_SPIN_LOCK_INIT_OR_UNLOCK, TSREQ_POSIX_SEM_INIT_POST, TSREQ_POSIX_SEM_DESTROY_PRE, TSREQ_SIGNAL, TSREQ_WAIT, TSREQ_CYCLIC_BARRIER_INIT, TSREQ_CYCLIC_BARRIER_WAIT_BEFORE, TSREQ_CYCLIC_BARRIER_WAIT_AFTER, TSREQ_GET_MY_SEGMENT, TSREQ_GET_THREAD_ID, TSREQ_GET_VG_THREAD_ID, TSREQ_GET_SEGMENT_ID, TSREQ_THREAD_SANITIZER_QUERY, TSREQ_FLUSH_STATE, TSREQ_MUTEX_IS_NOT_PHB, // The opposite of TSREQ_MUTEX_IS_USED_AS_CONDVAR. TSREQ_FLUSH_EXPECTED_RACES }; #endif // TS_VALGRIND_CLIENT_REQUESTS_H_ // end. {{{1 // vim:shiftwidth=2:softtabstop=2:expandtab