diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2009-07-26 19:33:13 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2009-07-26 19:33:13 -0400 |
commit | e54ee3800df72c2742f486abf437e75c2b56182c (patch) | |
tree | 1cf4862f4819a6bd0dae0a7b05770fc3937b21f8 /src/romlayout.S | |
parent | e773930ea4f37bca9334a157e86e70f14234888f (diff) | |
download | seabios-e54ee3800df72c2742f486abf437e75c2b56182c.tar.gz |
Add PMM stubs.
Add initial code for Post Memory Manager - it's just the stubs for now.
Also, fix PnP entry point not clearing irqs and direction flags.
Diffstat (limited to 'src/romlayout.S')
-rw-r--r-- | src/romlayout.S | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/romlayout.S b/src/romlayout.S index cbd94836..d430d287 100644 --- a/src/romlayout.S +++ b/src/romlayout.S @@ -270,6 +270,35 @@ entry_post: * Misc. entry points. ****************************************************************/ +// PMM entry point + DECLFUNC entry_pmm +entry_pmm: + pushl %esp // Backup %esp, then clear high bits + movzwl %sp, %esp + pushfl // Save registers clobbered by C code + cli + cld + pushl %eax + pushl %ecx + pushl %edx + pushw %es + pushw %ds + movw %ss, %cx // Move %ss to %ds + movw %cx, %ds + lea 28(%esp), %eax // %eax points to start of args + calll handle_pmm + movw %ax, 12(%esp) // Modify %ax:%dx to return %eax + shrl $16, %eax + movw %ax, 4(%esp) + popw %ds // Restore saved registers + popw %es + popl %edx + popl %ecx + popl %eax + popfl + popl %esp + lretw + // PnP entry points DECLFUNC entry_pnp_real .global entry_pnp_prot @@ -281,6 +310,8 @@ entry_pnp_real: movzwl %sp, %esp 1: pushfl // Save registers clobbered by C code + cli + cld pushl %eax pushl %ecx pushl %edx |