diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2010-12-05 12:38:33 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2010-12-05 12:38:33 -0500 |
commit | f3fe3aa7a0ccb881e659a4281d6f0a0bb5c33cc5 (patch) | |
tree | a6066b1259b0ae5781ddfa994f46011dcadef4bc /src/resume.c | |
parent | d52fdf6a6d4d710a8de12ca153bcd2735290c743 (diff) | |
download | seabios-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.c | 2 |
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) ); |