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>2014-02-11 02:07:50 (GMT)
commit84c0f4838ec47287993a5c271c2d483b8f2e9347 (patch)
treec5438140e83d38f52f58221ac3fd99ff360fb687
parentb5e7e15463f255628c76679bb050402ac57f37e0 (diff)
downloadabc8000-84c0f4838ec47287993a5c271c2d483b8f2e9347.zip
abc8000-84c0f4838ec47287993a5c271c2d483b8f2e9347.tar.gz
abc8000-84c0f4838ec47287993a5c271c2d483b8f2e9347.tar.bz2
abc8000-84c0f4838ec47287993a5c271c2d483b8f2e9347.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
*/