[SeaBIOS] Virtual Machine Crash on Hypercall

Daniel Castro evil.dani at gmail.com
Wed Apr 11 05:29:25 CEST 2012


Hello all,

I am have a small problem, when running the BIOS in 16Bit if Y try to
do a hypercall the virtual machines crashes.

Here is the code of the hypercall:

#define _hypercall2(type, name, a1, a2)                                 \
({                                                                      \
    unsigned long __hentry = xen_hypercall_page+__HYPERVISOR_##name*32; \
    long __res, __ign1, __ign2;                                         \
    asm volatile (                                                      \
        "call *%%eax"                                                   \
        : "=a" (__res), "=b" (__ign1), "=c" (__ign2)                    \
        : "0" (__hentry), "1" ((long)(a1)), "2" ((long)(a2))            \
        : "memory" );                                                   \
    (type)__res;                                                        \
})

I guess the something is being passed wrong to the call, and the
return address is damaged...

Daniel

-- 
+-=====---------------------------+
| +---------------------------------+ | This space intentionally blank
for notetaking.
| |   | Daniel Castro,                |
| |   | Consultant/Programmer.|
| |   | U Andes                         |
+-------------------------------------+



More information about the SeaBIOS mailing list