commit f92f867e1cbabadebc174d2b6b0046501b4371df
parent 645c3b5c8672a102a1e58ad1fe6c285351d4ff7c
Author: Dimitris Papastamos <dimitris.papastamos@arm.com>
Date: Mon, 18 Feb 2019 15:13:00 +0000
Remove reloc()
Change-Id: Ib5410558ae3a7e1dc6a5b815ff238c00ad5bdaf9
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
Diffstat:
10 files changed, 11 insertions(+), 54 deletions(-)
diff --git a/include/rcode/ramfw.h b/include/rcode/ramfw.h
@@ -1 +1 @@
-extern void *text;
+
diff --git a/include/rcode/rcode.h b/include/rcode/rcode.h
@@ -93,7 +93,6 @@ extern noreturn void badcmd(int error);
extern void rmc(Rmucmd *cmd);
extern int debug(void);
extern void idev(void);
-extern void *reloc(const void *);
extern char *regstr(enum regidx r);
/* driver functions */
diff --git a/include/rcode/romfw.h b/include/rcode/romfw.h
@@ -10,7 +10,6 @@ extern unsigned char in_panic;
extern unsigned char in_debug;
extern unsigned char in_dumpstack;
extern unsigned char in_backtrace;
-extern void *text;
extern void *environ;
extern size_t bsssize;
diff --git a/src/libk/kerror.c b/src/libk/kerror.c
@@ -3,12 +3,10 @@
#include <libk.h>
-extern void *reloc(const void *);
-
void
kerror(const char *s)
{
- char *msg = reloc(strerror(errno));
+ char *msg = strerror(errno);
kprint("%s:%s\n", s, msg);
}
diff --git a/src/ramfw/rt.c b/src/ramfw/rt.c
@@ -28,17 +28,3 @@ trap(struct trapframe *fp)
{
panic("trap");
}
-
-/*
- * Reloc() is used to relocate address
- * because we are linked at address 0 but we can be
- * loaded at any address
- */
-void *
-reloc(const void *addr)
-{
- uintptr_t a = (uintptr_t) addr;
- uintptr_t off = (uintptr_t) text;
-
- return (void *) (a + off);
-}
diff --git a/src/romfw/dlang.c b/src/romfw/dlang.c
@@ -99,7 +99,7 @@ get_rmudesc(char *name)
const struct rmudesc *desc;
for (desc = rmudescs; desc->name; desc++)
- if (strcmp(reloc(desc->name), name) == 0)
+ if (strcmp(desc->name, name) == 0)
return desc;
return NULL;
}
@@ -111,7 +111,7 @@ get_cmd(char *name)
const struct cmd *cmd;
for (cmd = cmds; cmd->name; cmd++) {
- if (strcmp(reloc(cmd->name), name) == 0)
+ if (strcmp(cmd->name, name) == 0)
return cmd;
}
return NULL;
@@ -182,7 +182,7 @@ do_rmu(const struct cmd *cmd, struct args *args)
if (args->argv[1][0] == '?') {
for (desc = rmudescs; desc->name; desc++) {
- char *s = reloc(desc->name);
+ char *s = desc->name;
kprint("%s\n", s);
}
return 0;
@@ -212,7 +212,7 @@ static int
do_help(const struct cmd *cmd, struct args *args)
{
for (cmd = cmds; cmd->name; cmd++) {
- char *s = reloc(cmd->helpmsg);
+ char *s = cmd->helpmsg;
kprint(PREFIX "%s\n", s);
}
return 0;
@@ -328,8 +328,8 @@ run(struct args *args)
void *bp;
if (args->argc < cmd->min || args->argc > cmd->max)
- error(reloc(cmd->helpmsg));
- bp = reloc(cmd->eval);
+ error(cmd->helpmsg);
+ bp = cmd->eval;
fn = (int (*)(const struct cmd *, struct args *)) bp;
return (*fn)(cmd, args);
}
diff --git a/src/romfw/regstr.c b/src/romfw/regstr.c
@@ -43,5 +43,5 @@ static const char *const regtbl[] = {
char *
regstr(enum regidx r)
{
- return reloc(regtbl[r]);
+ return regtbl[r];
}
diff --git a/src/romfw/rmc.c b/src/romfw/rmc.c
@@ -107,7 +107,7 @@ trap(struct trapframe *fp)
ec = (fp->r[ESR] >> 26) & 0x3f;
if (ec != RMC) {
- msg = (ec < NR_EC_VALS) ? reloc(ecstr[ec]) : "unknown reason";
+ msg = (ec < NR_EC_VALS) ? ecstr[ec] : "unknown reason";
panicfmt(msg, fp);
halt();
}
@@ -172,23 +172,9 @@ rmc(Rmucmd *cmd)
if (off > 255)
panic("rmc2");
- bp = reloc(tab->handler[off]);
+ bp = tab->handler[off];
fn = (void (*) (Rmucmd *)) bp;
(*fn)(cmd);
cmd->fp->r[X0] = SUCCESS;
}
-
-/*
- * Reloc() is used to relocate address
- * because we are linked at address 0 but we can be
- * loaded at any address
- */
-void *
-reloc(const void *addr)
-{
- uintptr_t a = (uintptr_t) addr;
- uintptr_t off = (uintptr_t) text;
-
- return (void *) (a + off);
-}
diff --git a/target/hosted/ram.c b/target/hosted/ram.c
@@ -3,17 +3,8 @@
#include <rcode/rcode.h>
#include <rcode/ramfw.h>
-void *text;
-
-static void
-imach(void)
-{
- text = 0;
-}
-
int
main(int argc, char *argv[])
{
- imach();
return 0;
}
diff --git a/target/hosted/rom.c b/target/hosted/rom.c
@@ -11,7 +11,6 @@ unsigned char in_panic;
unsigned char in_debug;
unsigned char in_dumpstack;
unsigned char in_backtrace;
-void *text;
void *environ;
const char *errstr;
@@ -44,7 +43,6 @@ imach(void)
exit(EXIT_FAILURE);
rmctab = &romtab;
framep = &trapframe;
- text = 0;
}
int