mirror of
https://github.com/xcat2/xNBA.git
synced 2025-02-28 16:20:28 +00:00
UNDI loader entry point implemented; seems to work.
This commit is contained in:
parent
0324d5ff70
commit
ac69b85adb
@ -167,6 +167,34 @@ exec_message:
|
||||
* Called by an external program to load our PXE stack.
|
||||
*/
|
||||
undiloader:
|
||||
/* Save registers */
|
||||
pushl %edi
|
||||
pushw %es
|
||||
pushw %bx
|
||||
/* UNDI loader parameter structure address into %es:%di */
|
||||
movw %sp, %bx
|
||||
movw %ss:12(%bx), %di
|
||||
movw %ss:14(%bx), %es
|
||||
/* Install to specified real-mode addresses */
|
||||
pushw %di
|
||||
movw %es:12(%di), %bx
|
||||
movw %es:14(%di), %ax
|
||||
call install_prealloc
|
||||
popw %di
|
||||
/* Call UNDI loader C code */
|
||||
pushl $pxe_loader_call
|
||||
pushw %cs
|
||||
pushw $1f
|
||||
pushw %ax
|
||||
pushw $prot_call
|
||||
lret
|
||||
1: popw %bx /* discard */
|
||||
popw %bx /* discard */
|
||||
/* Restore registers and return */
|
||||
popw %bx
|
||||
popw %es
|
||||
popl %edi
|
||||
lret
|
||||
.size undiloader, . - undiloader
|
||||
|
||||
/* Utility function: print string
|
||||
|
Loading…
x
Reference in New Issue
Block a user