VirtualBox

Ignore:
Timestamp:
Feb 28, 2007 4:42:54 PM (18 years ago)
Author:
vboxsync
Message:

Detect attempt to enter PXE code in V86 mode. Print error message and
send guest into a tight hlt loop.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/PC/Etherboot-src/arch/i386/core/realmode_asm.S

    r1 r1118  
    934934    popfl
    935935#endif /* VBOX_DEBUG_PXE_EP */
     936#ifdef VBOX
     937        /* Detect V86 mode. Etherboot doesn't work in V86 mode, because it
     938         * switches to protected mode on entry. The follow-up project gPXE
     939         * can run completely in real mode (and thus can implement the full
     940         * PXE calling conventions), but its PXE support isn't anywhere near
     941         * what Etherboot currently provides. */
     942        pushw %ax
     943        smsw %ax
     944        andw $0x0001,%ax
     945        jz 4f
     946        push %cs
     947        pop %ds
     948        call 0f
     9490:      popw %si
     950        addl $msg_v86_unsupported-0b,%si    /* start of zero-terminated string */
     9511:
     952        cld
     953        lodsb
     954        or %al,%al
     955        jnz 3f
     956
     9572:      hlt
     958        jmp 2b
     959
     960msg_v86_unsupported: .asciz "\r\nVirtualBox PXE cannot be used from V86 mode. Guest halted.\r\n"
     961
     9623:
     963        mov $0x0e,%ah   /* teletype output character at cursor position */
     964        mov $0x0070,%bx /* page 0, attribute 0x70 */
     965        int $0x10
     966        jmp 1b
     9674:
     968        popw %ax
     969#endif /* VBOX */
    936970        /* Perform real-mode in_call */
    937971        call    pxe_rm_in_call
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette