aboutsummaryrefslogtreecommitdiffstats
path: root/src/resume.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2010-12-05 12:38:33 -0500
committerKevin O'Connor <kevin@koconnor.net>2010-12-05 12:38:33 -0500
commitf3fe3aa7a0ccb881e659a4281d6f0a0bb5c33cc5 (patch)
treea6066b1259b0ae5781ddfa994f46011dcadef4bc /src/resume.c
parentd52fdf6a6d4d710a8de12ca153bcd2735290c743 (diff)
downloadseabios-f3fe3aa7a0ccb881e659a4281d6f0a0bb5c33cc5.tar.gz
Require a "_cfuncXX_" symbol prefix for inter-mode c function references.
The compiler can get confused when referencing a C function in a different mode. (It reasonably assumes that the C function in the current mode is desired.) To avoid this compiler confusion, introduce symbol prefixes (_cfunc16_, _cfunc32flat_, _cfunc32seg_) that must be used on C function symbols that are referenced from other compilation modes. This makes it less likely compiler confusion will occur. It will also makes it easier to implement and use vtable like operation structures.
Diffstat (limited to 'src/resume.c')
-rw-r--r--src/resume.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/resume.c b/src/resume.c
index 2a743c94..20e2e3dd 100644
--- a/src/resume.c
+++ b/src/resume.c
@@ -40,7 +40,7 @@ handle_resume(u8 status)
asm volatile(
"movw %w1, %%ss\n"
"movl %0, %%esp\n"
- "movl $s3_resume, %%edx\n"
+ "movl $_cfunc32flat_s3_resume, %%edx\n"
"jmp transition32\n"
: : "i"(BUILD_S3RESUME_STACK_ADDR), "r"(0)
);