130493a03SClaudio Fontana /* 230493a03SClaudio Fontana * x86 segmentation related helpers macros 330493a03SClaudio Fontana * 430493a03SClaudio Fontana * Copyright (c) 2003 Fabrice Bellard 530493a03SClaudio Fontana * 630493a03SClaudio Fontana * This library is free software; you can redistribute it and/or 730493a03SClaudio Fontana * modify it under the terms of the GNU Lesser General Public 830493a03SClaudio Fontana * License as published by the Free Software Foundation; either 930493a03SClaudio Fontana * version 2.1 of the License, or (at your option) any later version. 1030493a03SClaudio Fontana * 1130493a03SClaudio Fontana * This library is distributed in the hope that it will be useful, 1230493a03SClaudio Fontana * but WITHOUT ANY WARRANTY; without even the implied warranty of 1330493a03SClaudio Fontana * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1430493a03SClaudio Fontana * Lesser General Public License for more details. 1530493a03SClaudio Fontana * 1630493a03SClaudio Fontana * You should have received a copy of the GNU Lesser General Public 1730493a03SClaudio Fontana * License along with this library; if not, see <http://www.gnu.org/licenses/>. 1830493a03SClaudio Fontana */ 1930493a03SClaudio Fontana 2030493a03SClaudio Fontana #ifndef SEG_HELPER_H 2130493a03SClaudio Fontana #define SEG_HELPER_H 2230493a03SClaudio Fontana 23*611c34a7SPhilippe Mathieu-Daudé #include "cpu.h" 24*611c34a7SPhilippe Mathieu-Daudé 2530493a03SClaudio Fontana //#define DEBUG_PCALL 2630493a03SClaudio Fontana 2730493a03SClaudio Fontana #ifdef DEBUG_PCALL 2830493a03SClaudio Fontana # define LOG_PCALL(...) qemu_log_mask(CPU_LOG_PCALL, ## __VA_ARGS__) 2930493a03SClaudio Fontana # define LOG_PCALL_STATE(cpu) \ 3030493a03SClaudio Fontana log_cpu_state_mask(CPU_LOG_PCALL, (cpu), CPU_DUMP_CCOP) 3130493a03SClaudio Fontana #else 3230493a03SClaudio Fontana # define LOG_PCALL(...) do { } while (0) 3330493a03SClaudio Fontana # define LOG_PCALL_STATE(cpu) do { } while (0) 3430493a03SClaudio Fontana #endif 3530493a03SClaudio Fontana 36*611c34a7SPhilippe Mathieu-Daudé int cpu_mmu_index_kernel(CPUX86State *env); 37*611c34a7SPhilippe Mathieu-Daudé 3830493a03SClaudio Fontana /* 3930493a03SClaudio Fontana * TODO: Convert callers to compute cpu_mmu_index_kernel once 4030493a03SClaudio Fontana * and use *_mmuidx_ra directly. 4130493a03SClaudio Fontana */ 4230493a03SClaudio Fontana #define cpu_lduw_kernel_ra(e, p, r) \ 4330493a03SClaudio Fontana cpu_lduw_mmuidx_ra(e, p, cpu_mmu_index_kernel(e), r) 4430493a03SClaudio Fontana #define cpu_ldl_kernel_ra(e, p, r) \ 4530493a03SClaudio Fontana cpu_ldl_mmuidx_ra(e, p, cpu_mmu_index_kernel(e), r) 4630493a03SClaudio Fontana #define cpu_ldq_kernel_ra(e, p, r) \ 4730493a03SClaudio Fontana cpu_ldq_mmuidx_ra(e, p, cpu_mmu_index_kernel(e), r) 4830493a03SClaudio Fontana 4930493a03SClaudio Fontana #define cpu_stw_kernel_ra(e, p, v, r) \ 5030493a03SClaudio Fontana cpu_stw_mmuidx_ra(e, p, v, cpu_mmu_index_kernel(e), r) 5130493a03SClaudio Fontana #define cpu_stl_kernel_ra(e, p, v, r) \ 5230493a03SClaudio Fontana cpu_stl_mmuidx_ra(e, p, v, cpu_mmu_index_kernel(e), r) 5330493a03SClaudio Fontana #define cpu_stq_kernel_ra(e, p, v, r) \ 5430493a03SClaudio Fontana cpu_stq_mmuidx_ra(e, p, v, cpu_mmu_index_kernel(e), r) 5530493a03SClaudio Fontana 5630493a03SClaudio Fontana #define cpu_lduw_kernel(e, p) cpu_lduw_kernel_ra(e, p, 0) 5730493a03SClaudio Fontana #define cpu_ldl_kernel(e, p) cpu_ldl_kernel_ra(e, p, 0) 5830493a03SClaudio Fontana #define cpu_ldq_kernel(e, p) cpu_ldq_kernel_ra(e, p, 0) 5930493a03SClaudio Fontana 6030493a03SClaudio Fontana #define cpu_stw_kernel(e, p, v) cpu_stw_kernel_ra(e, p, v, 0) 6130493a03SClaudio Fontana #define cpu_stl_kernel(e, p, v) cpu_stl_kernel_ra(e, p, v, 0) 6230493a03SClaudio Fontana #define cpu_stq_kernel(e, p, v) cpu_stq_kernel_ra(e, p, v, 0) 6330493a03SClaudio Fontana 6430493a03SClaudio Fontana #endif /* SEG_HELPER_H */ 65