100f6da6aSPaolo Bonzini /* 200f6da6aSPaolo Bonzini * Internal structs that QEMU exports to TCG 300f6da6aSPaolo Bonzini * 400f6da6aSPaolo Bonzini * Copyright (c) 2003 Fabrice Bellard 500f6da6aSPaolo Bonzini * 600f6da6aSPaolo Bonzini * This library is free software; you can redistribute it and/or 700f6da6aSPaolo Bonzini * modify it under the terms of the GNU Lesser General Public 800f6da6aSPaolo Bonzini * License as published by the Free Software Foundation; either 900f6da6aSPaolo Bonzini * version 2 of the License, or (at your option) any later version. 1000f6da6aSPaolo Bonzini * 1100f6da6aSPaolo Bonzini * This library is distributed in the hope that it will be useful, 1200f6da6aSPaolo Bonzini * but WITHOUT ANY WARRANTY; without even the implied warranty of 1300f6da6aSPaolo Bonzini * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1400f6da6aSPaolo Bonzini * Lesser General Public License for more details. 1500f6da6aSPaolo Bonzini * 1600f6da6aSPaolo Bonzini * You should have received a copy of the GNU Lesser General Public 1700f6da6aSPaolo Bonzini * License along with this library; if not, see <http://www.gnu.org/licenses/>. 1800f6da6aSPaolo Bonzini */ 1900f6da6aSPaolo Bonzini 202a6a4076SMarkus Armbruster #ifndef QEMU_TB_CONTEXT_H 212a6a4076SMarkus Armbruster #define QEMU_TB_CONTEXT_H 2200f6da6aSPaolo Bonzini 2300f6da6aSPaolo Bonzini #include "qemu/thread.h" 24909eaac9SEmilio G. Cota #include "qemu/qht.h" 2500f6da6aSPaolo Bonzini 26909eaac9SEmilio G. Cota #define CODE_GEN_HTABLE_BITS 15 27909eaac9SEmilio G. Cota #define CODE_GEN_HTABLE_SIZE (1 << CODE_GEN_HTABLE_BITS) 2800f6da6aSPaolo Bonzini 2900f6da6aSPaolo Bonzini typedef struct TranslationBlock TranslationBlock; 3000f6da6aSPaolo Bonzini typedef struct TBContext TBContext; 3100f6da6aSPaolo Bonzini 3200f6da6aSPaolo Bonzini struct TBContext { 3300f6da6aSPaolo Bonzini 342ac01d6dSEmilio G. Cota GTree *tb_tree; 35909eaac9SEmilio G. Cota struct qht htable; 3600f6da6aSPaolo Bonzini /* any access to the tbs or the page table must use this lock */ 3700f6da6aSPaolo Bonzini QemuMutex tb_lock; 3800f6da6aSPaolo Bonzini 3900f6da6aSPaolo Bonzini /* statistics */ 403359baadSSergey Fedorov unsigned tb_flush_count; 4100f6da6aSPaolo Bonzini int tb_phys_invalidate_count; 4200f6da6aSPaolo Bonzini }; 4300f6da6aSPaolo Bonzini 44*44ded3d0SEmilio G. Cota extern TBContext tb_ctx; 45*44ded3d0SEmilio G. Cota 4600f6da6aSPaolo Bonzini #endif 47