xref: /openbmc/qemu/target/i386/hvf/x86hvf.h (revision 09a274d8)
1 /*
2  * Copyright (C) 2016 Veertu Inc,
3  * Copyright (C) 2017 Google Inc,
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this program; if not, see <http://www.gnu.org/licenses/>.
17  */
18 #ifndef X86HVF_H
19 #define X86HVF_H
20 #include "cpu.h"
21 #include "x86_descr.h"
22 
23 int hvf_process_events(CPUState *);
24 int hvf_put_registers(CPUState *);
25 int hvf_get_registers(CPUState *);
26 bool hvf_inject_interrupts(CPUState *);
27 void hvf_set_segment(struct CPUState *cpu, struct vmx_segment *vmx_seg,
28                      SegmentCache *qseg, bool is_tr);
29 void hvf_get_segment(SegmentCache *qseg, struct vmx_segment *vmx_seg);
30 void hvf_put_xsave(CPUState *cpu_state);
31 void hvf_put_segments(CPUState *cpu_state);
32 void hvf_put_msrs(CPUState *cpu_state);
33 void hvf_get_xsave(CPUState *cpu_state);
34 void hvf_get_msrs(CPUState *cpu_state);
35 void vmx_clear_int_window_exiting(CPUState *cpu);
36 void hvf_get_segments(CPUState *cpu_state);
37 void vmx_update_tpr(CPUState *cpu);
38 void hvf_cpu_synchronize_state(CPUState *cpu_state);
39 #endif
40