summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2011-11-01 03:51:39 (GMT)
committerH. Peter Anvin <hpa@zytor.com>2011-11-01 03:51:39 (GMT)
commit2f900af899f4d0995dd7fac45c1753b962458575 (patch)
tree96ae63630ecdd6db359887a8098e302e29e3389d
parenta8f5549e2632bab8f29f9e6f493b8eb04ac06af4 (diff)
downloadabc8000-old-2f900af899f4d0995dd7fac45c1753b962458575.zip
abc8000-old-2f900af899f4d0995dd7fac45c1753b962458575.tar.gz
abc8000-old-2f900af899f4d0995dd7fac45c1753b962458575.tar.bz2
abc8000-old-2f900af899f4d0995dd7fac45c1753b962458575.tar.xz
Add new jump table section
-rw-r--r--data/sysrom/jmp.asm19
-rw-r--r--data/sysrom/sysrom.ld8
2 files changed, 26 insertions, 1 deletions
diff --git a/data/sysrom/jmp.asm b/data/sysrom/jmp.asm
new file mode 100644
index 0000000..7ae2a97
--- /dev/null
+++ b/data/sysrom/jmp.asm
@@ -0,0 +1,19 @@
+/*
+ * Jump table for system calls
+ */
+
+ .section ".jmp","ax"
+ .global __jmp
+__jmp:
+ .rept 512
+ jmp __not_supported
+ .endr
+
+ .size __jmp, .-__jmp
+
+ .text
+__not_supported:
+ move.l #-1,%d0
+ rts
+
+ .size __not_supported, .-__not_supported \ No newline at end of file
diff --git a/data/sysrom/sysrom.ld b/data/sysrom/sysrom.ld
index ee31ca1..8c78baf 100644
--- a/data/sysrom/sysrom.ld
+++ b/data/sysrom/sysrom.ld
@@ -16,6 +16,13 @@ SECTIONS
__ivt_end = .;
}
+ __jmp_lma = _ROM_BASE + .;
+ .jmp : AT(__jmp_lma) {
+ __jmp_start = .;
+ *(.jmp)
+ __jmp_end = .;
+ } = 0x4e754e75
+
. = ALIGN(4);
__data_lma = _ROM_BASE + .;
.data : AT(__data_lma) {
@@ -34,7 +41,6 @@ SECTIONS
__rwtext_end = .;
} = 0x4e754e75
-
/*
* .bss and possibly other zero-initialized RAM sections
*/