Annotation of qemu/roms/ipxe/src/arch/i386/prefix/undiloader.S, revision 1.1.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.