|
|
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.