VirtualBox

Ignore:
Timestamp:
Mar 11, 2016 8:18:39 PM (9 years ago)
Author:
vboxsync
Message:

bs3kit: print working in all normal modes, it seems.

Location:
trunk/src/VBox/ValidationKit/bootsectors/bs3kit
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-SwitchToRing0.asm

    r60000 r60001  
    4242;
    4343; @remarks  Does not require 20h of parameter scratch space in 64-bit mode.
     44; @uses     No GPRs.
    4445;
    4546BS3_PROC_BEGIN_CMN Bs3SwitchToRing0
    46         BS3_ONLY_64BIT_STMT sub rsp, 18h
     47%if TMPL_BITS == 64
     48        push    rcx
     49        sub     rsp, 20h
     50        mov     ecx, 0
     51        mov     [rsp], rcx
     52        call    Bs3SwitchToRingX
     53        add     rsp, 20h
     54        pop     rcx
     55%else
    4756        push    0
    48         BS3_CALL Bs3SwitchToRingX, 1
    49         add     xSP, xCB BS3_ONLY_64BIT(+ 18h)
     57        call    Bs3SwitchToRingX
     58        add     xSP, xCB
     59%endif
    5060        ret
    5161BS3_PROC_END_CMN   Bs3SwitchToRing0
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-SwitchToRing1.asm

    r60000 r60001  
    4242;
    4343; @remarks  Does not require 20h of parameter scratch space in 64-bit mode.
     44; @uses     No GPRs.
    4445;
    4546BS3_PROC_BEGIN_CMN Bs3SwitchToRing1
    46         BS3_ONLY_64BIT_STMT sub rsp, 18h
     47%if TMPL_BITS == 64
     48        push    rcx
     49        sub     rsp, 20h
     50        mov     ecx, 1
     51        mov     [rsp], rcx
     52        call    Bs3SwitchToRingX
     53        add     rsp, 20h
     54        pop     rcx
     55%else
    4756        push    1
    48         BS3_CALL Bs3SwitchToRingX, 1
    49         add     xSP, xCB BS3_ONLY_64BIT(+ 18h)
     57        call    Bs3SwitchToRingX
     58        add     xSP, xCB
     59%endif
    5060        ret
    5161BS3_PROC_END_CMN   Bs3SwitchToRing1
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-SwitchToRing2.asm

    r60000 r60001  
    4242;
    4343; @remarks  Does not require 20h of parameter scratch space in 64-bit mode.
     44; @uses     No GPRs.
    4445;
    4546BS3_PROC_BEGIN_CMN Bs3SwitchToRing2
    46         BS3_ONLY_64BIT_STMT sub rsp, 18h
     47%if TMPL_BITS == 64
     48        push    rcx
     49        sub     rsp, 20h
     50        mov     ecx, 2
     51        mov     [rsp], rcx
     52        call    Bs3SwitchToRingX
     53        add     rsp, 20h
     54        pop     rcx
     55%else
    4756        push    2
    48         BS3_CALL Bs3SwitchToRingX, 1
    49         add     xSP, xCB BS3_ONLY_64BIT(+ 18h)
     57        call    Bs3SwitchToRingX
     58        add     xSP, xCB
     59%endif
    5060        ret
    5161BS3_PROC_END_CMN   Bs3SwitchToRing2
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-SwitchToRing3.asm

    r60000 r60001  
    4242;
    4343; @remarks  Does not require 20h of parameter scratch space in 64-bit mode.
     44; @uses     No GPRs.
    4445;
    4546BS3_PROC_BEGIN_CMN Bs3SwitchToRing3
    46         BS3_ONLY_64BIT_STMT sub rsp, 18h
     47%if TMPL_BITS == 64
     48        push    rcx
     49        sub     rsp, 20h
     50        mov     ecx, 3
     51        mov     [rsp], rcx
     52        call    Bs3SwitchToRingX
     53        add     rsp, 20h
     54        pop     rcx
     55%else
    4756        push    3
    48         BS3_CALL Bs3SwitchToRingX, 1
    49         add     xSP, xCB BS3_ONLY_64BIT(+ 18h)
     57        call    Bs3SwitchToRingX
     58        add     xSP, xCB
     59%endif
    5060        ret
    5161BS3_PROC_END_CMN   Bs3SwitchToRing3
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-SwitchToRingX.asm

    r60000 r60001  
    4040; @param    bRing       The target ring (0..3).
    4141; @remarks  Does not require 20h of parameter scratch space in 64-bit mode.
     42;
     43; @uses     No GPRs.
    4244;
    4345BS3_PROC_BEGIN_CMN Bs3SwitchToRingX
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-TrapDefaultHandler.c

    r60000 r60001  
    3636    /* Minimal syscall. */
    3737    if (pTrapFrame->Ctx.rax.u16 == BS3_SYSCALL_PRINT_CHR)
    38         Bs3PrintChr(pTrapFrame->Ctx.rax.u8);
     38        Bs3PrintChr(pTrapFrame->Ctx.rcx.u8);
    3939    else if (   pTrapFrame->Ctx.rax.u16 == BS3_SYSCALL_TO_RING0
    4040             || pTrapFrame->Ctx.rax.u16 == BS3_SYSCALL_TO_RING1
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