Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Basic HRT startup for HVM, plus assorted cleanup
[palacios.git] / palacios / src / palacios / vmm_hvm_lowlevel.S
1 /* HVM environment code and data */
2
3 /* This must match the number in vmm_hypercall.h */
4 #define HVM_HCALL $0xf000
5         
6 /*
7         The default installed interrupt handlers simply hcall
8         and then halt.  They should never be called - this is
9         a panic
10 */
11         
12 .global v3_hvm_svm_null_int_handler_start
13 v3_hvm_svm_null_int_handler_start:
14         pushq %rax
15         pushq %rbx
16         pushq %rcx
17         movq HVM_HCALL, %rax
18         movq 24(%rsp), %rbx  /* last two words of interrupt stack */
19         movq 32(%rsp), %rcx  
20         vmmcall
21         popq %rcx
22         popq %rbx
23         popq %rax
24         hlt
25         iretq
26 .global v3_hvm_svm_null_int_handler_end
27 v3_hvm_svm_null_int_handler_end:
28
29 .global v3_hvm_vmx_null_int_handler_start
30 v3_hvm_vmx_null_int_handler_start:
31         pushq %rax
32         pushq %rbx
33         pushq %rcx
34         movq HVM_HCALL, %rax
35         movq 24(%rsp), %rbx /* last two words of interrupt stack */
36         movq 32(%rsp), %rcx
37         vmcall              /* That's right - one letter different */
38         popq %rcx
39         popq %rbx
40         popq %rax
41         hlt
42         iretq
43 .global v3_hvm_vmx_null_int_handler_end
44 v3_hvm_vmx_null_int_handler_end:
45
46         
47         
48