From 406a59bd0a2e7a38cd840a5c08602e3a36bd2df8 Mon Sep 17 00:00:00 2001 From: David 'Digit' Turner Date: Thu, 12 May 2011 10:26:09 +0200 Subject: trace.h: rename to trace-android.h This is done to allow for future integration of the upstream auto-generated "trace.h" header file. Change-Id: I9d1bba3320d9e8acfd7359540d3ed6695773061e --- trace_common.h | 144 ++------------------------------------------------------- 1 file changed, 3 insertions(+), 141 deletions(-) (limited to 'trace_common.h') diff --git a/trace_common.h b/trace_common.h index fe84c1a..b2a2188 100644 --- a/trace_common.h +++ b/trace_common.h @@ -1,142 +1,4 @@ -/* Copyright (C) 2006-2007 The Android Open Source Project -** -** This software is licensed under the terms of the GNU General Public -** License version 2, as published by the Free Software Foundation, and -** may be copied, distributed, and modified under those terms. -** -** 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. -*/ - -#ifndef TRACE_COMMON_H -#define TRACE_COMMON_H - -#include - -// This should be the same as OPC_BUF_SIZE -#define kMaxInsnPerBB 512 - -#define kMaxNumBasicBlocks 1024 - -#define kMaxNumAddrs 1024 - -#define kInsnBufferSize 1024 - -#define kCompressedSize 8192 - -#define kMethodEnter 0 -#define kMethodExit 1 -#define kMethodException 2 -#define kNativeEnter 4 -#define kNativeExit 5 -#define kNativeException 6 - -// The trace identifier string must be less than 16 characters. -#define TRACE_IDENT "qemu_trace_file" -#define TRACE_VERSION 2 - -typedef struct TraceHeader { - char ident[16]; - int version; - uint32_t start_sec; - uint32_t start_usec; - uint32_t pdate; - uint32_t ptime; - uint32_t num_used_pids; // number of distinct process ids used - int first_unused_pid; // -1 if all 32,768 pids are used (unlikely) - uint8_t padding[4]; // next field is 8-byte aligned - uint64_t num_static_bb; - uint64_t num_static_insn; - uint64_t num_dynamic_bb; - uint64_t num_dynamic_insn; - uint64_t elapsed_usecs; -} TraceHeader; - -typedef struct BBRec { - uint64_t start_time; // time of first occurrence - uint64_t bb_num; // basic block number - uint32_t repeat; // repeat count (= 0 if just one occurrence) - uint64_t time_diff; // diff from previous time (if repeat > 0) -} BBRec; - -// Define a trace record for addresses that miss in the cache -typedef struct AddrRec { - uint64_t time; - uint32_t addr; -} AddrRec; - -// Define a trace record for the start time of each instruction -typedef struct InsnRec { - uint64_t time_diff; // time difference from last instruction - uint32_t repeat; // repeat count -} InsnRec; - -// Define record types for process id changes. -#define kPidEndOfFile 0 -#define kPidFork 1 -#define kPidClone 2 -#define kPidSwitch 3 -#define kPidExec 4 -#define kPidMmap 5 -#define kPidExit 6 -#define kPidKthreadName 7 -#define kPidSymbolAdd 8 -#define kPidSymbolRemove 9 -#define kPidMunmap 10 -#define kPidNoAction 11 -#define kPidName 12 - -#define bswap16(x) ((((x) & 0xff) << 8) | (((x) >> 8) & 0xff)) - -#define bswap32(x) ((((x) & 0xff) << 24) | (((x) & 0xff00) << 8) \ - | (((x) >> 8) & 0xff00) | (((x) >> 24) & 0xff)) - -#define bswap64(x) (((x) << 56) | (((x) & 0xff00) << 40) \ - | (((x) & 0xff0000) << 24) | (((x) & 0xff000000ull) << 8) \ - | (((x) >> 8) & 0xff000000ull) | (((x) >> 24) & 0xff0000) \ - | (((x) >> 40) & 0xff00) | ((x) >> 56)) - -#if BYTE_ORDER == LITTLE_ENDIAN -#define hostToLE16(x) (x) -#define hostToLE32(x) (x) -#define hostToLE64(x) (x) -#define LE16ToHost(x) (x) -#define LE32ToHost(x) (x) -#define LE64ToHost(x) (x) -#define convert16(x) -#define convert32(x) -#define convert64(x) -#else -#define hostToLE16(x) bswap16(x) -#define hostToLE32(x) bswap32(x) -#define hostToLE64(x) bswap64(x) -#define LE16ToHost(x) bswap16(x) -#define LE32ToHost(x) bswap32(x) -#define LE64ToHost(x) bswap64(x) -#define convert16(x) (x = bswap16(x)) -#define convert32(x) (x = bswap32(x)) -#define convert64(x) (x = bswap64(x)) -#endif - -/* XXX: we wrap 16-bit thumb instructions into 32-bit undefined ARM instructions - * for simplicity reasons. See section 3.13.1 section of the ARM ARM for details - * on the undefined instruction space we're using +/* This file should be removed once we update the Android qtools to + * include 'android-trace_common.h' directly. */ -static __inline__ int insn_is_thumb(uint32_t insn) -{ - return ((insn & 0xfff000f0) == 0xf7f000f0); -} - -static __inline__ uint32_t insn_wrap_thumb(uint32_t insn) -{ - return 0xf7f000f0 | ((insn & 0xfff0) << 4) | (insn & 0x000f); -} - -static __inline__ uint32_t insn_unwrap_thumb(uint32_t insn) -{ - return ((insn >> 4) & 0xfff0) | (insn & 0x000f); -} - -#endif /* TRACE_COMMON_H */ +#include "android-trace_common.h" -- cgit v1.1