From 912dd003b081b628085e86bc151b8d91fbccb0c8 Mon Sep 17 00:00:00 2001 From: Kimplul Date: Tue, 30 Apr 2024 15:44:47 +0300 Subject: janitorial duties + Add doc and formatting tooling --- triscv/src/cpu.c | 44 ++++++++++++++++++++++---------------------- triscv/src/main.c | 26 +++++++++++++------------- triscv/src/mem.c | 16 +++++++++------- triscv/src/mmu.c | 18 +++++++++++------- triscv/src/uart.c | 12 ++++++------ 5 files changed, 61 insertions(+), 55 deletions(-) (limited to 'triscv/src') diff --git a/triscv/src/cpu.c b/triscv/src/cpu.c index 9e82974..59ba238 100644 --- a/triscv/src/cpu.c +++ b/triscv/src/cpu.c @@ -113,8 +113,8 @@ static void do_op_imm(struct cpu *cpu, tri_t i) break; } default: fprintf(stderr, "illegal/unimplemented OP_IMM at %lli, " - "aborting\n", (long long int)cpu->pc); - abort(); + "aborting\n", (long long int)cpu->pc); + abort(); } cpu->pc += 3; @@ -129,7 +129,7 @@ static void do_op(struct cpu *cpu, tri_t i) tri_t src2 = get_gpr(cpu, rs2); switch (fn5) { - case 0: + case 0: switch (fn0) { case OP_ADD: { tri_t r = tri_add(src1, src2); @@ -143,14 +143,14 @@ static void do_op(struct cpu *cpu, tri_t i) break; } default: fprintf(stderr, "illegal/unimplemented OP at %lli, " - "aborting\n", (long long int)cpu->pc); - abort(); + "aborting\n", (long long int)cpu->pc); + abort(); } break; - default: fprintf(stderr, "illegal/unimplemented OP at %lli, " - "aborting\n", (long long int)cpu->pc); - abort(); + default: fprintf(stderr, "illegal/unimplemented OP at %lli, " + "aborting\n", (long long int)cpu->pc); + abort(); } cpu->pc += 3; @@ -174,8 +174,8 @@ static void do_system(struct cpu *cpu, tri_t i) } default: fprintf(stderr, "illegal/unimplemented SYSTEM at %lli," - "aborting\n", (long long int)cpu->pc); - abort(); + "aborting\n", (long long int)cpu->pc); + abort(); } cpu->pc += 3; @@ -297,13 +297,13 @@ static void do_branch(struct cpu *cpu, tri_t i) bool take = false; switch (fn0) { - case BRANCH_BLT: take = tri_lt(c0, c1); break; - case BRANCH_BGE: take = tri_ge(c0, c1); break; - case BRANCH_BNE: take = tri_ne(c0, c1); break; - case BRANCH_BEQ: take = tri_eq(c0, c1); break; - default: fprintf(stderr, "illegal/unimplemented BRANCH at %lli," - "aborting\n", (long long int)cpu->pc); - abort(); + case BRANCH_BLT: take = tri_lt(c0, c1); break; + case BRANCH_BGE: take = tri_ge(c0, c1); break; + case BRANCH_BNE: take = tri_ne(c0, c1); break; + case BRANCH_BEQ: take = tri_eq(c0, c1); break; + default: fprintf(stderr, "illegal/unimplemented BRANCH at %lli," + "aborting\n", (long long int)cpu->pc); + abort(); } cpu->pc = take ? t : f; @@ -336,11 +336,11 @@ void cpu_run(struct cpu *cpu, vm_t start) case OPCODE_JALR: do_jalr(cpu, i); break; case OPCODE_BRANCH: do_branch(cpu, i); break; default: /** @todo raise illegal instruction exception */ - fprintf(stderr, "illegal/unimplemented " - "instruction at %lli, aborting\n", - (long long int)cpu->pc); - abort(); - break; + fprintf(stderr, "illegal/unimplemented " + "instruction at %lli, aborting\n", + (long long int)cpu->pc); + abort(); + break; } /* do_* is responsible for updating pc */ diff --git a/triscv/src/main.c b/triscv/src/main.c index 37be2cb..2d23af7 100644 --- a/triscv/src/main.c +++ b/triscv/src/main.c @@ -20,10 +20,10 @@ #define IMM18(t) ((t) << 18) static const char *cmdline_usage = -"triscv simulator usage:\n" -" triscv simfile\n" -" -h Show usage(this)\n" -" simfile File to simulate\n" + "triscv simulator usage:\n" + " triscv simfile\n" + " -h Show usage(this)\n" + " simfile File to simulate\n" ; static void usage() @@ -54,7 +54,7 @@ static void *read_simulation_file(const char *file, size_t *len) if (!buf) return NULL; - fread(buf, s, 1 , f); + fread(buf, s, 1, f); fclose(f); return buf; } @@ -64,14 +64,14 @@ int main(int argc, char *argv[]) int opt; while ((opt = getopt(argc, argv, "h")) != -1) { switch (opt) { - case 'h': - usage(); - exit(EXIT_SUCCESS); - break; - default: - usage(); - exit(EXIT_FAILURE); - break; + case 'h': + usage(); + exit(EXIT_SUCCESS); + break; + default: + usage(); + exit(EXIT_FAILURE); + break; } } diff --git a/triscv/src/mem.c b/triscv/src/mem.c index 1bcecfc..9c77e95 100644 --- a/triscv/src/mem.c +++ b/triscv/src/mem.c @@ -8,7 +8,9 @@ struct mem { struct mem *mem_create(size_t size) { - struct mem *mem = calloc(1, sizeof(struct mem) + size * sizeof(mem->buf[0])); + struct mem *mem = calloc(1, + sizeof(struct mem) + size * + sizeof(mem->buf[0])); mem->size = size; return mem; } @@ -60,11 +62,11 @@ static tri_t mem_read3(struct cpu *cpu, struct mem *mem, pm_t addr) struct dev mem_dev(struct mem *mem) { return (struct dev){ - .dev = mem, - .size = mem->size, - .write1 = (dev_write1_t)mem_write1, - .write3 = (dev_write3_t)mem_write3, - .read1 = (dev_read1_t)mem_read1, - .read3 = (dev_read3_t)mem_read3 + .dev = mem, + .size = mem->size, + .write1 = (dev_write1_t)mem_write1, + .write3 = (dev_write3_t)mem_write3, + .read1 = (dev_read1_t)mem_read1, + .read3 = (dev_read3_t)mem_read3 }; } diff --git a/triscv/src/mmu.c b/triscv/src/mmu.c index 7549012..1b35961 100644 --- a/triscv/src/mmu.c +++ b/triscv/src/mmu.c @@ -76,7 +76,8 @@ struct tri_option { bool ok; }; -static struct tri_option __mmu_read3(struct cpu *cpu, struct mmu *mmu, vm_t addr) +static struct tri_option __mmu_read3(struct cpu *cpu, struct mmu *mmu, + vm_t addr) { struct dev_map *d = mmu_find_dev_map(mmu, addr); if (!d || !d->dev.read3) { @@ -85,8 +86,8 @@ static struct tri_option __mmu_read3(struct cpu *cpu, struct mmu *mmu, vm_t addr } return (struct tri_option){ - .value = d->dev.read3(cpu, d->dev.dev, addr - d->start), - .ok = true + .value = d->dev.read3(cpu, d->dev.dev, addr - d->start), + .ok = true }; } @@ -128,8 +129,9 @@ static bool __leaf_pte(tri_t pte) return !(x == 0 && rw == 0); } -static pm_t __process_pte(struct cpu *cpu, struct mmu *mmu, pm_t table, tri_t orig, size_t shift, - struct tlb_map *mapping) +static pm_t __process_pte(struct cpu *cpu, struct mmu *mmu, pm_t table, + tri_t orig, size_t shift, + struct tlb_map *mapping) { tri_t ppn = tri_mask(tri_sr(orig, shift), 6); pm_t i = tri_to(ppn); @@ -148,14 +150,16 @@ static pm_t __process_pte(struct cpu *cpu, struct mmu *mmu, pm_t table, tri_t or tri_t cur = tri_discard(orig, shift); tri_t off = tri_sub(orig, cur); - *mapping = __build_mapping(tri_to(orig), tri_to(base) + tri_to(off), tag); + *mapping = __build_mapping(tri_to(orig), + tri_to(base) + tri_to(off), tag); return 0; } return pte.value; } -static struct tlb_map __fetch_mapping(struct cpu *cpu, struct mmu *mmu, vm_t addr) +static struct tlb_map __fetch_mapping(struct cpu *cpu, struct mmu *mmu, + vm_t addr) { /* feels kind of silly to convert back to trinary, but I guess fine for * now. */ diff --git a/triscv/src/uart.c b/triscv/src/uart.c index 492f0dd..aa4b0bd 100644 --- a/triscv/src/uart.c +++ b/triscv/src/uart.c @@ -34,11 +34,11 @@ static void uart_write1(struct cpu *cpu, struct uart *uart, pm_t addr, tri_t t) struct dev uart_dev(struct uart *uart) { return (struct dev){ - .dev = uart, - .size = 1, - .write1 = (dev_write1_t)uart_write1, - .write3 = NULL, /* illegal */ - .read1 = NULL, /* not supported for now */ - .read3 = NULL + .dev = uart, + .size = 1, + .write1 = (dev_write1_t)uart_write1, + .write3 = NULL, /* illegal */ + .read1 = NULL, /* not supported for now */ + .read3 = NULL }; } -- cgit v1.3