Download raw body.
ddb(4): db_read_bytes, db_write_bytes: change data parameter to void pointer
ddb(4): db_read_bytes, db_write_bytes: change data parameter to void pointer
ddb(4): db_read_bytes, db_write_bytes: change data parameter to void pointer
ddb(4): db_read_bytes, db_write_bytes: change data parameter to void pointer
On 8 February 2024 16:01:43 UTC, Scott Cheloha <scottcheloha@gmail.com> wrote:
>Almost all db_read_bytes/db_write_bytes callers cast the data
>parameter to a "char *", which suggests that the function prototypes
>don't match how the functions are actually used.
>
>Change the data parameter to db_read_bytes/db_write/bytes from
>"char *" to "void *", update all implementations to use a "char *"
>internally, and update all callers to remove the casts.
>
>While we're updating the callers, we can also change any magic sizes
>to sizeof.
>
>ok?
>
>Index: ./ddb/db_access.h
>===================================================================
>RCS file: /cvs/src/sys/ddb/db_access.h,v
>diff -u -p -r1.11 db_access.h
>--- ./ddb/db_access.h 20 Jan 2020 15:58:23 -0000 1.11
>+++ ./ddb/db_access.h 8 Feb 2024 15:43:26 -0000
>@@ -36,5 +36,5 @@
> db_expr_t db_get_value(vaddr_t, size_t, int);
> void db_put_value(vaddr_t, size_t, db_expr_t);
>
>-void db_read_bytes(vaddr_t, size_t, char *);
>-void db_write_bytes(vaddr_t, size_t, char *);
>+void db_read_bytes(vaddr_t, size_t, void *);
>+void db_write_bytes(vaddr_t, size_t, void *);
>Index: ./arch/alpha/alpha/db_interface.c
>===================================================================
>RCS file: /cvs/src/sys/arch/alpha/alpha/db_interface.c,v
>diff -u -p -r1.28 db_interface.c
>--- ./arch/alpha/alpha/db_interface.c 14 Apr 2022 19:47:10 -0000 1.28
>+++ ./arch/alpha/alpha/db_interface.c 8 Feb 2024 15:43:26 -0000
>@@ -191,9 +191,9 @@ void
> db_read_bytes(addr, size, data)
Shouldn't data be changed to datap here as well?
> vaddr_t addr;
> register size_t size;
>- register char *data;
>+ register void *datap;
> {
>- register char *src;
>+ register char *data = datap, *src;
>
> src = (char *)addr;
> while (size-- > 0)
>@@ -207,9 +207,9 @@ void
> db_write_bytes(addr, size, data)
> vaddr_t addr;
> register size_t size;
>- register char *data;
>+ register void *datap;
> {
>- register char *dst;
>+ register char *data = datap, *dst;
>
> dst = (char *)addr;
> while (size-- > 0)
>Index: ./arch/amd64/amd64/db_memrw.c
>===================================================================
>RCS file: /cvs/src/sys/arch/amd64/amd64/db_memrw.c,v
>diff -u -p -r1.8 db_memrw.c
>--- ./arch/amd64/amd64/db_memrw.c 30 Apr 2017 13:04:49 -0000 1.8
>+++ ./arch/amd64/amd64/db_memrw.c 8 Feb 2024 15:43:26 -0000
>@@ -60,9 +60,9 @@
> * Read bytes from kernel address space for debugger.
> */
> void
>-db_read_bytes(vaddr_t addr, size_t size, char *data)
>+db_read_bytes(vaddr_t addr, size_t size, void *datap)
> {
>- char *src;
>+ char *data = datap, *src;
>
> src = (char *)addr;
>
>@@ -90,12 +90,12 @@ db_read_bytes(vaddr_t addr, size_t size,
> * pages writable temporarily.
> */
> static void
>-db_write_text(vaddr_t addr, size_t size, char *data)
>+db_write_text(vaddr_t addr, size_t size, void *datap)
> {
> pt_entry_t *pte, oldpte, tmppte;
> vaddr_t pgva;
> size_t limit;
>- char *dst;
>+ char *data = datap, *dst;
>
> if (size == 0)
> return;
>Index: ./arch/arm/arm/db_interface.c
>===================================================================
>RCS file: /cvs/src/sys/arch/arm/arm/db_interface.c,v
>diff -u -p -r1.20 db_interface.c
>--- ./arch/arm/arm/db_interface.c 15 Oct 2022 08:04:02 -0000 1.20
>+++ ./arch/arm/arm/db_interface.c 8 Feb 2024 15:43:27 -0000
>@@ -182,9 +182,9 @@ db_validate_address(vaddr_t addr)
> * Read bytes from kernel address space for debugger.
> */
> void
>-db_read_bytes(vaddr_t addr, size_t size, char *data)
>+db_read_bytes(vaddr_t addr, size_t size, void *datap)
> {
>- char *src = (char *)addr;
>+ char *data = datap, *src = (char *)addr;
>
> if (db_validate_address((u_int)src)) {
> db_printf("address %p is invalid\n", src);
>@@ -211,14 +211,14 @@ db_read_bytes(vaddr_t addr, size_t size,
> }
>
> static void
>-db_write_text(vaddr_t addr, size_t size, char *data)
>+db_write_text(vaddr_t addr, size_t size, void *datap)
> {
> struct pmap *pmap = pmap_kernel();
> pd_entry_t *pde, oldpde, tmppde;
> pt_entry_t *pte, oldpte, tmppte;
> vaddr_t pgva;
> size_t limit, savesize;
>- char *dst;
>+ char *data = datap, *dst;
>
> /* XXX: gcc */
> oldpte = 0;
>@@ -434,7 +434,7 @@ db_branch_taken(u_int insn, vaddr_t pc,
> case 0x7: /* ldr pc, [pc, reg, lsl #2] */
> addr = db_fetch_reg(insn & 0xf, db_regs);
> addr = pc + 8 + (addr << 2);
>- db_read_bytes(addr, 4, (char *)&addr);
>+ db_read_bytes(addr, sizeof addr, &addr);
> return (addr);
> case 0x1: /* mov pc, reg */
> addr = db_fetch_reg(insn & 0xf, db_regs);
>@@ -460,7 +460,7 @@ db_branch_taken(u_int insn, vaddr_t pc,
> addr = addr + 4 + ((nregs - 1) << 2);
> break;
> }
>- db_read_bytes(addr, 4, (char *)&addr);
>+ db_read_bytes(addr, sizeof addr, &addr);
> return (addr);
> default:
> panic("branch_taken: botch");
>Index: ./arch/arm64/arm64/db_interface.c
>===================================================================
>RCS file: /cvs/src/sys/arch/arm64/arm64/db_interface.c,v
>diff -u -p -r1.14 db_interface.c
>--- ./arch/arm64/arm64/db_interface.c 7 Nov 2022 09:43:04 -0000 1.14
>+++ ./arch/arm64/arm64/db_interface.c 8 Feb 2024 15:43:26 -0000
>@@ -197,9 +197,9 @@ db_validate_address(vaddr_t addr)
> * Read bytes from kernel address space for debugger.
> */
> void
>-db_read_bytes(vaddr_t addr, size_t size, char *data)
>+db_read_bytes(vaddr_t addr, size_t size, void *datap)
> {
>- char *src = (char *)addr;
>+ char *data = datap, *src = (char *)addr;
>
> if (db_validate_address((vaddr_t)src)) {
> db_printf("address %p is invalid\n", src);
>@@ -235,11 +235,11 @@ db_read_bytes(vaddr_t addr, size_t size,
> * pages writable temporarily.
> */
> static void
>-db_write_text(vaddr_t addr, size_t size, char *data)
>+db_write_text(vaddr_t addr, size_t size, void *datap)
> {
> vaddr_t pgva;
> size_t limit;
>- char *dst;
>+ char *data = datap, *dst;
>
> if (size == 0)
> return;
>Index: ./arch/hppa/hppa/db_interface.c
>===================================================================
>RCS file: /cvs/src/sys/arch/hppa/hppa/db_interface.c,v
>diff -u -p -r1.49 db_interface.c
>--- ./arch/hppa/hppa/db_interface.c 26 Apr 2023 16:53:58 -0000 1.49
>+++ ./arch/hppa/hppa/db_interface.c 8 Feb 2024 15:43:26 -0000
>@@ -134,8 +134,9 @@ db_enter(void)
> }
>
> void
>-db_read_bytes(vaddr_t addr, size_t size, char *data)
>+db_read_bytes(vaddr_t addr, size_t size, void *datap)
> {
>+ char *data = datap;
> register char *src = (char *)addr;
>
> while (size--)
>@@ -143,8 +144,9 @@ db_read_bytes(vaddr_t addr, size_t size,
> }
>
> void
>-db_write_bytes(vaddr_t addr, size_t size, char *data)
>+db_write_bytes(vaddr_t addr, size_t size, void *datap)
> {
>+ char *data = datap;
> register char *dst = (char *)addr;
>
> while (size--)
>Index: ./arch/i386/i386/db_memrw.c
>===================================================================
>RCS file: /cvs/src/sys/arch/i386/i386/db_memrw.c,v
>diff -u -p -r1.18 db_memrw.c
>--- ./arch/i386/i386/db_memrw.c 23 Sep 2020 15:13:26 -0000 1.18
>+++ ./arch/i386/i386/db_memrw.c 8 Feb 2024 15:43:26 -0000
>@@ -50,9 +50,9 @@
> * Read bytes from kernel address space for debugger.
> */
> void
>-db_read_bytes(vaddr_t addr, size_t size, char *data)
>+db_read_bytes(vaddr_t addr, size_t size, void *datap)
> {
>- char *src;
>+ char *data = datap, *src;
>
> src = (char *)addr;
> while (size-- > 0)
>@@ -64,12 +64,12 @@ db_read_bytes(vaddr_t addr, size_t size,
> * pages writable temporarily.
> */
> static void
>-db_write_text(vaddr_t addr, size_t size, char *data)
>+db_write_text(vaddr_t addr, size_t size, char *datap)
> {
> vaddr_t pgva;
> size_t limit;
> uint32_t bits;
>- char *dst;
>+ char *data = datap, *dst;
>
> if (size == 0)
> return;
>Index: ./arch/m88k/m88k/db_interface.c
>===================================================================
>RCS file: /cvs/src/sys/arch/m88k/m88k/db_interface.c,v
>diff -u -p -r1.28 db_interface.c
>--- ./arch/m88k/m88k/db_interface.c 14 Apr 2022 19:47:11 -0000 1.28
>+++ ./arch/m88k/m88k/db_interface.c 8 Feb 2024 15:43:26 -0000
>@@ -487,9 +487,9 @@ ddb_entry_trap(level, eframe)
> * Read bytes from kernel address space for debugger.
> */
> void
>-db_read_bytes(vaddr_t addr, size_t size, char *data)
>+db_read_bytes(vaddr_t addr, size_t size, void *datap)
> {
>- char *src;
>+ char *data = datap, *src;
>
> src = (char *)addr;
>
>@@ -502,10 +502,10 @@ db_read_bytes(vaddr_t addr, size_t size,
> * Write bytes to kernel address space for debugger.
> */
> void
>-db_write_bytes(vaddr_t addr, size_t size, char *data)
>+db_write_bytes(vaddr_t addr, size_t size, void *datap)
> {
> extern pt_entry_t *pmap_pte(pmap_t, vaddr_t);
>- char *dst = (char *)addr;
>+ char *data = datap, *dst = (char *)addr;
> vaddr_t va;
> paddr_t pa;
> pt_entry_t *pte, opte, npte;
>Index: ./arch/mips64/mips64/db_machdep.c
>===================================================================
>RCS file: /cvs/src/sys/arch/mips64/mips64/db_machdep.c,v
>diff -u -p -r1.60 db_machdep.c
>--- ./arch/mips64/mips64/db_machdep.c 11 Jan 2023 03:17:56 -0000 1.60
>+++ ./arch/mips64/mips64/db_machdep.c 8 Feb 2024 15:43:26 -0000
>@@ -281,8 +281,10 @@ db_cpuinfo_cmd(db_expr_t addr, int have_
> #endif
>
> void
>-db_read_bytes(vaddr_t addr, size_t size, char *data)
>+db_read_bytes(vaddr_t addr, size_t size, void *datap)
> {
>+ char *data = datap;
>+
> while (size >= sizeof(uint32_t)) {
> *(uint32_t *)data = kdbpeek(addr);
> data += sizeof(uint32_t);
>@@ -302,8 +304,9 @@ db_read_bytes(vaddr_t addr, size_t size,
> }
>
> void
>-db_write_bytes(vaddr_t addr, size_t size, char *data)
>+db_write_bytes(vaddr_t addr, size_t size, void *datap)
> {
>+ char *data = datap;
> vaddr_t ptr = addr;
> size_t len = size;
>
>Index: ./arch/powerpc/ddb/db_memrw.c
>===================================================================
>RCS file: /cvs/src/sys/arch/powerpc/ddb/db_memrw.c,v
>diff -u -p -r1.6 db_memrw.c
>--- ./arch/powerpc/ddb/db_memrw.c 15 Oct 2022 08:04:02 -0000 1.6
>+++ ./arch/powerpc/ddb/db_memrw.c 8 Feb 2024 15:43:26 -0000
>@@ -53,9 +53,9 @@
> * Read bytes from kernel address space for debugger.
> */
> void
>-db_read_bytes(vaddr_t addr, size_t size, char *data)
>+db_read_bytes(vaddr_t addr, size_t size, void *datap)
> {
>- char *src = (char *)addr;
>+ char *data = datap, *src = (char *)addr;
> faultbuf env;
> faultbuf *old_onfault = curpcb->pcb_onfault;
> if (setfault(&env)) {
>@@ -80,9 +80,9 @@ db_read_bytes(vaddr_t addr, size_t size,
> * Write bytes to kernel address space for debugger.
> */
> void
>-db_write_bytes(vaddr_t addr, size_t size, char *data)
>+db_write_bytes(vaddr_t addr, size_t size, void *datap)
> {
>- char *dst = (char *)addr;
>+ char *data = datap, *dst = (char *)addr;
> faultbuf env;
> faultbuf *old_onfault = curpcb->pcb_onfault;
>
>Index: ./arch/powerpc64/powerpc64/db_memrw.c
>===================================================================
>RCS file: /cvs/src/sys/arch/powerpc64/powerpc64/db_memrw.c,v
>diff -u -p -r1.2 db_memrw.c
>--- ./arch/powerpc64/powerpc64/db_memrw.c 12 Jun 2020 22:01:01 -0000 1.2
>+++ ./arch/powerpc64/powerpc64/db_memrw.c 8 Feb 2024 15:43:26 -0000
>@@ -46,9 +46,9 @@
> * Read bytes from kernel address space for debugger.
> */
> void
>-db_read_bytes(vaddr_t addr, size_t size, char *data)
>+db_read_bytes(vaddr_t addr, size_t size, void *datap)
> {
>- char *src;
>+ char *data = datap, *src;
>
> src = (char *)addr;
>
>@@ -76,13 +76,13 @@ db_read_bytes(vaddr_t addr, size_t size,
> * pages writable temporarily.
> */
> void
>-db_write_text(vaddr_t addr, size_t size, char *data)
>+db_write_text(vaddr_t addr, size_t size, void *datap)
> {
> struct pte *pte;
> uint64_t old_pte_lo;
> vaddr_t pgva;
> size_t limit;
>- char *dst;
>+ char *data = datap, *dst;
>
> if (size == 0)
> return;
>Index: ./arch/riscv64/riscv64/db_interface.c
>===================================================================
>RCS file: /cvs/src/sys/arch/riscv64/riscv64/db_interface.c,v
>diff -u -p -r1.8 db_interface.c
>--- ./arch/riscv64/riscv64/db_interface.c 14 Apr 2022 19:47:11 -0000 1.8
>+++ ./arch/riscv64/riscv64/db_interface.c 8 Feb 2024 15:43:27 -0000
>@@ -179,9 +179,9 @@ db_validate_address(vaddr_t addr)
> * Read bytes from kernel address space for debugger.
> */
> void
>-db_read_bytes(vaddr_t addr, size_t size, char *data)
>+db_read_bytes(vaddr_t addr, size_t size, void *datap)
> {
>- char *src = (char *)addr;
>+ char *data = datap, *src = (char *)addr;
>
> if (db_validate_address((vaddr_t)src)) {
> db_printf("address %p is invalid\n", src);
>@@ -217,7 +217,7 @@ db_read_bytes(vaddr_t addr, size_t size,
> * Write bytes to kernel address space for debugger.
> */
> void
>-db_write_bytes(vaddr_t addr, size_t size, char *data)
>+db_write_bytes(vaddr_t addr, size_t size, void *datap)
> {
> // XXX
> }
>Index: ./arch/sh/sh/db_memrw.c
>===================================================================
>RCS file: /cvs/src/sys/arch/sh/sh/db_memrw.c,v
>diff -u -p -r1.1.1.1 db_memrw.c
>--- ./arch/sh/sh/db_memrw.c 6 Oct 2006 21:02:55 -0000 1.1.1.1
>+++ ./arch/sh/sh/db_memrw.c 8 Feb 2024 15:43:27 -0000
>@@ -49,9 +49,9 @@
> * Read bytes from kernel address space for debugger.
> */
> void
>-db_read_bytes(vaddr_t addr, size_t size, char *data)
>+db_read_bytes(vaddr_t addr, size_t size, void *datap)
> {
>- char *src = (char *)addr;
>+ char *data = datap, *src = (char *)addr;
>
> /* properly aligned 4-byte */
> if (size == 4 && ((addr & 3) == 0) && (((uintptr_t)data & 3) == 0)) {
>@@ -73,9 +73,9 @@ db_read_bytes(vaddr_t addr, size_t size,
> * Write bytes to kernel address space for debugger.
> */
> void
>-db_write_bytes(vaddr_t addr, size_t size, char *data)
>+db_write_bytes(vaddr_t addr, size_t size, void *datap)
> {
>- char *dst = (char *)addr;
>+ char *data = datap, *dst = (char *)addr;
>
> /* properly aligned 4-byte */
> if (size == 4 && ((addr & 3) == 0) && (((uintptr_t)data & 3) == 0)) {
>Index: ./arch/sparc64/sparc64/db_interface.c
>===================================================================
>RCS file: /cvs/src/sys/arch/sparc64/sparc64/db_interface.c,v
>diff -u -p -r1.61 db_interface.c
>--- ./arch/sparc64/sparc64/db_interface.c 31 Jan 2023 15:18:55 -0000 1.61
>+++ ./arch/sparc64/sparc64/db_interface.c 8 Feb 2024 15:43:27 -0000
>@@ -523,8 +523,9 @@ db_stopcpu(struct cpu_info *ci)
> * Read bytes from kernel address space for debugger.
> */
> void
>-db_read_bytes(vaddr_t addr, size_t size, char *data)
>+db_read_bytes(vaddr_t addr, size_t size, void *datap)
> {
>+ char *data = datap;
> register char *src;
>
> src = (char *)addr;
>@@ -541,8 +542,9 @@ db_read_bytes(vaddr_t addr, size_t size,
> * Write bytes to kernel address space for debugger.
> */
> void
>-db_write_bytes(vaddr_t addr, size_t size, char *data)
>+db_write_bytes(vaddr_t addr, size_t size, void *datap)
> {
>+ char *data = datap;
> register char *dst;
> extern vaddr_t ktext;
> extern paddr_t ktextp;
>Index: arch/arm/arm/db_interface.c
>===================================================================
>RCS file: /cvs/src/sys/arch/arm/arm/db_interface.c,v
>diff -u -p -r1.20 db_interface.c
>--- arch/arm/arm/db_interface.c 15 Oct 2022 08:04:02 -0000 1.20
>+++ arch/arm/arm/db_interface.c 8 Feb 2024 15:43:27 -0000
>@@ -182,9 +182,9 @@ db_validate_address(vaddr_t addr)
> * Read bytes from kernel address space for debugger.
> */
> void
>-db_read_bytes(vaddr_t addr, size_t size, char *data)
>+db_read_bytes(vaddr_t addr, size_t size, void *datap)
> {
>- char *src = (char *)addr;
>+ char *data = datap, *src = (char *)addr;
>
> if (db_validate_address((u_int)src)) {
> db_printf("address %p is invalid\n", src);
>@@ -211,14 +211,14 @@ db_read_bytes(vaddr_t addr, size_t size,
> }
>
> static void
>-db_write_text(vaddr_t addr, size_t size, char *data)
>+db_write_text(vaddr_t addr, size_t size, void *datap)
> {
> struct pmap *pmap = pmap_kernel();
> pd_entry_t *pde, oldpde, tmppde;
> pt_entry_t *pte, oldpte, tmppte;
> vaddr_t pgva;
> size_t limit, savesize;
>- char *dst;
>+ char *data = datap, *dst;
>
> /* XXX: gcc */
> oldpte = 0;
>@@ -434,7 +434,7 @@ db_branch_taken(u_int insn, vaddr_t pc,
> case 0x7: /* ldr pc, [pc, reg, lsl #2] */
> addr = db_fetch_reg(insn & 0xf, db_regs);
> addr = pc + 8 + (addr << 2);
>- db_read_bytes(addr, 4, (char *)&addr);
>+ db_read_bytes(addr, sizeof addr, &addr);
> return (addr);
> case 0x1: /* mov pc, reg */
> addr = db_fetch_reg(insn & 0xf, db_regs);
>@@ -460,7 +460,7 @@ db_branch_taken(u_int insn, vaddr_t pc,
> addr = addr + 4 + ((nregs - 1) << 2);
> break;
> }
>- db_read_bytes(addr, 4, (char *)&addr);
>+ db_read_bytes(addr, sizeof addr, &addr);
> return (addr);
> default:
> panic("branch_taken: botch");
>Index: arch/arm64/arm64/db_trace.c
>===================================================================
>RCS file: /cvs/src/sys/arch/arm64/arm64/db_trace.c,v
>diff -u -p -r1.15 db_trace.c
>--- arch/arm64/arm64/db_trace.c 17 Jun 2023 08:13:56 -0000 1.15
>+++ arch/arm64/arm64/db_trace.c 8 Feb 2024 15:43:27 -0000
>@@ -86,10 +86,8 @@ db_stack_trace_print(db_expr_t addr, int
> lastlr = p->p_addr->u_pcb.pcb_tf->tf_elr;
> } else {
> sp = addr;
>- db_read_bytes(sp, sizeof(vaddr_t),
>- (char *)&frame);
>- db_read_bytes(sp + 8, sizeof(vaddr_t),
>- (char *)&lr);
>+ db_read_bytes(sp, sizeof frame, &frame);
>+ db_read_bytes(sp + 8, sizeof lr, &lr);
> lastlr = 0;
> }
> }
>@@ -109,11 +107,11 @@ db_stack_trace_print(db_expr_t addr, int
> (*pr)("\n");
>
> // can we detect traps ?
>- db_read_bytes(frame, sizeof(vaddr_t), (char *)&frame);
>+ db_read_bytes(frame, sizeof frame, &frame);
> if (frame == 0)
> break;
> lastlr = lr;
>- db_read_bytes(frame + 8, sizeof(vaddr_t), (char *)&lr);
>+ db_read_bytes(frame + 8, sizeof lr, &lr);
>
> if (name != NULL) {
> if ((strcmp (name, "handle_el0_irq") == 0) ||
>Index: arch/m88k/m88k/db_sstep.c
>===================================================================
>RCS file: /cvs/src/sys/arch/m88k/m88k/db_sstep.c,v
>diff -u -p -r1.8 db_sstep.c
>--- arch/m88k/m88k/db_sstep.c 8 Nov 2019 15:01:15 -0000 1.8
>+++ arch/m88k/m88k/db_sstep.c 8 Feb 2024 15:43:27 -0000
>@@ -149,7 +149,7 @@ db_set_single_step(db_regs_t *regs)
> * User was stopped at pc, e.g. the instruction
> * at pc was not executed.
> */
>- db_read_bytes(pc, sizeof(inst), (caddr_t)&inst);
>+ db_read_bytes(pc, sizeof inst, &inst);
>
> /*
> * Find if this instruction may cause a branch, and set up a
>Index: arch/m88k/m88k/db_trace.c
>===================================================================
>RCS file: /cvs/src/sys/arch/m88k/m88k/db_trace.c,v
>diff -u -p -r1.19 db_trace.c
>--- arch/m88k/m88k/db_trace.c 11 Apr 2023 00:45:07 -0000 1.19
>+++ arch/m88k/m88k/db_trace.c 8 Feb 2024 15:43:27 -0000
>@@ -286,7 +286,7 @@ db_trace_get_val(vaddr_t addr, u_int *pt
> db_recover = prev;
> return 0;
> } else {
>- db_read_bytes(addr, 4, (char *)ptr);
>+ db_read_bytes(addr, sizeof *ptr, ptr);
> db_recover = prev;
> return 1;
> }
>@@ -772,7 +772,7 @@ db_stack_trace_cmd2(db_regs_t *regs, int
> badaddr((vaddr_t)(stack + 4), 4))
> break;
>
>- db_read_bytes((vaddr_t)stack, 2 * sizeof(int), (char *)pair);
>+ db_read_bytes((vaddr_t)stack, sizeof pair, pair);
>
> /* the pairs should match and equal stack+8 */
> if (pair[0] == pair[1]) {
>Index: arch/powerpc/ddb/db_trace.c
>===================================================================
>RCS file: /cvs/src/sys/arch/powerpc/ddb/db_trace.c,v
>diff -u -p -r1.20 db_trace.c
>--- arch/powerpc/ddb/db_trace.c 26 Apr 2023 16:53:59 -0000 1.20
>+++ arch/powerpc/ddb/db_trace.c 8 Feb 2024 15:43:27 -0000
>@@ -158,7 +158,7 @@ db_stack_trace_print(db_expr_t addr, int
> addr = p->p_addr->u_pcb.pcb_sp;
> }
> sp = addr;
>- db_read_bytes(sp + 4, sizeof(vaddr_t), (char *)&lr);
>+ db_read_bytes(sp + 4, sizeof lr, &lr);
> }
>
> while (count && sp != 0) {
>@@ -213,11 +213,11 @@ db_stack_trace_print(db_expr_t addr, int
> (*pr)("--- trap (type 0x%x) ---\n", type);
> }
>
>- db_read_bytes(sp, sizeof(vaddr_t), (char *)&sp);
>+ db_read_bytes(sp, sizeof sp, &sp);
> if (sp == 0)
> break;
>
>- db_read_bytes(sp + 4, sizeof(vaddr_t), (char *)&lr);
>+ db_read_bytes(sp + 4, sizeof lr, &lr);
>
> if (INKERNEL(sp)) {
> if (sp <= lastsp) {
>Index: arch/powerpc64/powerpc64/db_trace.c
>===================================================================
>RCS file: /cvs/src/sys/arch/powerpc64/powerpc64/db_trace.c,v
>diff -u -p -r1.9 db_trace.c
>--- arch/powerpc64/powerpc64/db_trace.c 26 Apr 2023 16:53:59 -0000 1.9
>+++ arch/powerpc64/powerpc64/db_trace.c 8 Feb 2024 15:43:27 -0000
>@@ -120,8 +120,8 @@ db_stack_trace_print(db_expr_t addr, int
> } else
> sp = addr;
> /* The 1st return address is in the 2nd frame. */
>- db_read_bytes(sp, sizeof(vaddr_t), (char *)&sp);
>- db_read_bytes(sp + 16, sizeof(vaddr_t), (char *)&lr);
>+ db_read_bytes(sp, sizeof sp, &sp);
>+ db_read_bytes(sp + 16, sizeof lr, &lr);
> callpc = lr - 4;
> has_frame = 1;
> }
>@@ -138,8 +138,7 @@ db_stack_trace_print(db_expr_t addr, int
> iaddr = sym->st_value;
> limit = MIN(iaddr + 0x100, callpc);
> for (; iaddr < limit; iaddr += 4) {
>- db_read_bytes(iaddr, sizeof(ins),
>- (char *)&ins);
>+ db_read_bytes(iaddr, sizeof ins, &ins);
> if (inst_establish_frame(ins)) {
> has_frame = 1;
> break;
>@@ -178,14 +177,14 @@ db_stack_trace_print(db_expr_t addr, int
> lr = ddb_regs.lr;
> has_frame = 1;
> } else {
>- db_read_bytes(sp, sizeof(vaddr_t), (char *)&sp);
>+ db_read_bytes(sp, sizeof sp, &sp);
> if (sp == 0)
> break;
> if (sp <= lastsp) {
> (*pr)("Bad frame pointer: 0x%lx\n", sp);
> break;
> }
>- db_read_bytes(sp + 16, sizeof(vaddr_t), (char *)&lr);
>+ db_read_bytes(sp + 16, sizeof lr, &lr);
> }
> callpc = lr - 4;
>
>Index: arch/riscv64/riscv64/db_trace.c
>===================================================================
>RCS file: /cvs/src/sys/arch/riscv64/riscv64/db_trace.c,v
>diff -u -p -r1.5 db_trace.c
>--- arch/riscv64/riscv64/db_trace.c 22 Feb 2022 07:46:04 -0000 1.5
>+++ arch/riscv64/riscv64/db_trace.c 8 Feb 2024 15:43:27 -0000
>@@ -74,8 +74,8 @@ db_stack_trace_print(db_expr_t addr, int
> ra = ddb_regs.tf_ra;
> frame = ddb_regs.tf_s[0];
> } else {
>- db_read_bytes(addr - 16, sizeof(vaddr_t), (char *)&frame);
>- db_read_bytes(addr - 8, sizeof(vaddr_t), (char *)&ra);
>+ db_read_bytes(addr - 16, sizeof frame, &frame);
>+ db_read_bytes(addr - 8, sizeof ra, &ra);
> }
>
> while (count != 0 && frame != 0) {
>@@ -109,20 +109,18 @@ db_stack_trace_print(db_expr_t addr, int
> subr == (vaddr_t)cpu_exception_handler_user) {
> struct trapframe *tf = (struct trapframe *)frame;
>
>- db_read_bytes((vaddr_t)&tf->tf_ra, sizeof(ra),
>- (char *)&ra);
>- db_read_bytes((vaddr_t)&tf->tf_s[0], sizeof(frame),
>- (char *)&frame);
>+ db_read_bytes((vaddr_t)&tf->tf_ra, sizeof ra, &ra);
>+ db_read_bytes((vaddr_t)&tf->tf_s[0], sizeof frame,
>+ &frame);
> } else {
>- db_read_bytes(frame - 16, sizeof(frame),
>- (char *)&frame);
>+ db_read_bytes(frame - 16, sizeof frame, &frame);
> if (frame == 0)
> break;
> if ((frame & 0x7) != 0) {
> (*pr)("bad frame pointer: 0x%lx\n", frame);
> break;
> }
>- db_read_bytes(frame - 8, sizeof(ra), (char *)&ra);
>+ db_read_bytes(frame - 8, sizeof ra, &ra);
> }
>
> if (INKERNEL(frame)) {
>
--
Sent from a mobile device. Please excuse my brevity.
ddb(4): db_read_bytes, db_write_bytes: change data parameter to void pointer
ddb(4): db_read_bytes, db_write_bytes: change data parameter to void pointer
ddb(4): db_read_bytes, db_write_bytes: change data parameter to void pointer
ddb(4): db_read_bytes, db_write_bytes: change data parameter to void pointer