Annotation of qemu/roms/ipxe/src/arch/i386/prefix/undiloader.S, revision 1.1

1.1     ! root        1: FILE_LICENCE ( GPL2_OR_LATER )
        !             2: 
        !             3:        .text
        !             4:        .code16
        !             5:        .arch i386
        !             6:        .section ".prefix", "ax", @progbits
        !             7: 
        !             8: /* UNDI loader
        !             9:  *
        !            10:  * Called by an external program to load our PXE stack.
        !            11:  */
        !            12:        .globl  undiloader
        !            13: undiloader:
        !            14:        /* Save registers */
        !            15:        pushl   %esi
        !            16:        pushl   %edi
        !            17:        pushw   %ds
        !            18:        pushw   %es
        !            19:        pushw   %bx
        !            20:        /* ROM segment address to %ds */
        !            21:        pushw   %cs
        !            22:        popw    %ds
        !            23:        /* UNDI loader parameter structure address into %es:%di */
        !            24:        movw    %sp, %bx
        !            25:        movw    %ss:18(%bx), %di
        !            26:        movw    %ss:20(%bx), %es
        !            27:        /* Install to specified real-mode addresses */
        !            28:        pushw   %di
        !            29:        movw    %es:12(%di), %bx
        !            30:        movw    %es:14(%di), %ax
        !            31:        movl    image_source, %esi
        !            32:        movl    decompress_to, %edi
        !            33:        clc                     /* Allow relocation */
        !            34:        call    install_prealloc
        !            35:        popw    %di
        !            36:        /* Call UNDI loader C code */
        !            37:        pushl   $pxe_loader_call
        !            38:        pushw   %cs
        !            39:        pushw   $1f
        !            40:        pushw   %ax
        !            41:        pushw   $prot_call
        !            42:        lret
        !            43: 1:     popw    %bx     /* discard */
        !            44:        popw    %bx     /* discard */
        !            45:        /* Restore registers and return */
        !            46:        popw    %bx
        !            47:        popw    %es
        !            48:        popw    %ds
        !            49:        popl    %edi
        !            50:        popl    %esi
        !            51:        lret
        !            52:        .size undiloader, . - undiloader

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.