aboutsummaryrefslogtreecommitdiff
path: root/src/post.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2012-05-28 12:59:58 -0400
committerKevin O'Connor <kevin@koconnor.net>2012-05-28 23:39:49 -0400
commitbf2e8c2a304c1aafc612e89deaaa6066d6cdb3f6 (patch)
treedc8972dcdc2f52fdc4fa30f0699f739cecd092c6 /src/post.c
parent2f898d5eae41c7bec54ab60c3ea25f200d46728d (diff)
downloadseabios-hppa-bf2e8c2a304c1aafc612e89deaaa6066d6cdb3f6.zip
seabios-hppa-bf2e8c2a304c1aafc612e89deaaa6066d6cdb3f6.tar.gz
seabios-hppa-bf2e8c2a304c1aafc612e89deaaa6066d6cdb3f6.tar.bz2
Make the extra stack re-entrant and "hop back" to check for irqs.
When on the extra stack and it's necessary to check for irqs, switch back to the original caller's stack to check for irqs. Make the extra stack re-entrant, so that a new user of the extra stack wont collide with an existing user. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/post.c')
-rw-r--r--src/post.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/post.c b/src/post.c
index aa29151..d2f40f4 100644
--- a/src/post.c
+++ b/src/post.c
@@ -95,6 +95,9 @@ init_bda(void)
add_e820((u32)MAKE_FLATPTR(ebda_seg, 0), GET_EBDA(ebda_seg, size) * 1024
, E820_RESERVED);
+
+ // Init extra stack
+ StackPos = (void*)(&ExtraStack[BUILD_EXTRA_STACK_SIZE] - _datalow_base);
}
static void