commit c122ac8d4c8c6db695aabecb3dd303a8dcdd2f01
parent 26048154d918db90e932084b87f306a32b0df86e
Author: Dimitris Papastamos <dimitris.papastamos@arm.com>
Date: Fri, 19 Oct 2018 18:43:06 +0100
Rename imm1/imm2 to class/func
Change-Id: I3ef651c71eaa3022c4cb38184aba8d68ed7c0de5
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
Diffstat:
4 files changed, 21 insertions(+), 21 deletions(-)
diff --git a/include/rcode.h b/include/rcode.h
@@ -107,7 +107,7 @@ struct trapframe {
};
struct rmucmd {
- unsigned imm1, imm2;
+ unsigned class, func;
struct trapframe *fp;
jmp_buf recover;
};
diff --git a/src/rmc.c b/src/rmc.c
@@ -99,8 +99,8 @@ trap(struct trapframe *fp)
halt();
}
- cmd.imm1 = fp->esr & 0xff;
- cmd.imm2 = (fp->esr >> 8) & 0xff;
+ cmd.class = fp->esr & 0xff;
+ cmd.func = (fp->esr >> 8) & 0xff;
cmd.fp = fp;
bss->cmd = &cmd;
@@ -115,7 +115,7 @@ badcmd(int error)
{
Rmucmd *cmd = bss->cmd;
- dbg("bad RMC: %d, %d = %d\n", cmd->imm1, cmd->imm2, error);
+ dbg("bad RMC: %d, %d = %d\n", cmd->class, cmd->func, error);
cmd->fp->x0 = error;
longjmp(cmd->recover, 1);
}
@@ -123,22 +123,22 @@ badcmd(int error)
/*
* The dispatcher cannot be implemented using a table
* because the rmu command number is composed by two
- * immediates, imm1 and imm2, which don't generate
+ * immediates, class and func, which don't generate
* consecutive values. The approach is to use a sparse
* matrix, where we store all the function pointers
* consecutive and we create a row index table which
* the offset from the beginning of the handler table
* and number of entries in that table for that row.
*
- * rowidx handler
- * --------------- --------
- * | off = 0,cnt=1 | | fun0 |
- * --------------- --------
- * imm1--> | off = 1,cnt=2 | ---> off + imm2 --> | fun1 |
- * --------------- --------
- * | off = 3,cnt=1 | | fun2 |
- * --------------- --------
- * ... ...
+ * rowidx handler
+ * --------------- --------
+ * | off = 0,cnt=1 | | fun0 |
+ * --------------- --------
+ * class --> | off = 1,cnt=2 | ---> off + func --> | fun1 |
+ * --------------- --------
+ * | off = 3,cnt=1 | | fun2 |
+ * --------------- --------
+ * ... ...
*/
void
rmc(Rmucmd *cmd)
@@ -147,11 +147,11 @@ rmc(Rmucmd *cmd)
void (*fp)(Rmucmd *cmd);
char *bp;
- if (cmd->imm1 > 255 || cmd->imm2 > 255)
+ if (cmd->class > 255 || cmd->func > 255)
panic("rmc");
- idx = &rowidx[cmd->imm1];
- if (cmd->imm2 >= idx->cnt)
+ idx = &rowidx[cmd->class];
+ if (cmd->func >= idx->cnt)
badcmd(-1); /* TODO: put the correct code */
/*
@@ -160,7 +160,7 @@ rmc(Rmucmd *cmd)
* loaded at any address
*/
bp = bss->text;
- bp += handler[idx->off + cmd->imm2];
+ bp += handler[idx->off + cmd->func];
fp = (void (*)(Rmucmd *)) bp;
(*fp)(cmd);
diff --git a/test/test1/test.c b/test/test1/test.c
@@ -14,8 +14,8 @@ main(int argc, char *argv[])
cmd.fp = &frame;
for (i = 0; i < 256; i++) {
for (j = 0; j < 256; j++) {
- cmd.imm1 = i;
- cmd.imm2 = j;
+ cmd.class = i;
+ cmd.func = j;
bss->cmd = &cmd;
dbg("%u\t%u\t", i, j);
if (!setjmp(cmd.recover))
diff --git a/test/test3/test.c b/test/test3/test.c
@@ -11,7 +11,7 @@ main(void)
{
struct trapframe frame;
- frame.esr = RMC << 26; /* imm1 = imm2 = 0 */
+ frame.esr = RMC << 26; /* class = func = 0 */
if (!setjmp(env))
trap(&frame);
assert(frame.x0 == 0);