|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.