1/* 2 * Internal structs that QEMU exports to TCG 3 * 4 * Copyright (c) 2003 Fabrice Bellard 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with this library; if not, see <http://www.gnu.org/licenses/>. 18 */ 19 20#ifndef QEMU_TB_CONTEXT_H_ 21#define QEMU_TB_CONTEXT_H_ 22 23#include "qemu/thread.h" 24 25#define CODE_GEN_PHYS_HASH_BITS 15 26#define CODE_GEN_PHYS_HASH_SIZE (1 << CODE_GEN_PHYS_HASH_BITS) 27 28typedef struct TranslationBlock TranslationBlock; 29typedef struct TBContext TBContext; 30 31struct TBContext { 32 33 TranslationBlock *tbs; 34 TranslationBlock *tb_phys_hash[CODE_GEN_PHYS_HASH_SIZE]; 35 int nb_tbs; 36 /* any access to the tbs or the page table must use this lock */ 37 QemuMutex tb_lock; 38 39 /* statistics */ 40 int tb_flush_count; 41 int tb_phys_invalidate_count; 42}; 43 44#endif 45