Makes sense. Some strange CMUism.
Martin Pieuchot <[email protected]> wrote:
> This type is just another way to write 'vaddr_t' and requires pulling a
> ddb-specific MD header for that, can't we just use vaddr_t everywhere?
>
> Diff below does the conversion in sys/kern and sys/ddb, ok?
>
> Index: kern/kern_timeout.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/kern_timeout.c,v
> retrieving revision 1.61
> diff -u -p -r1.61 kern_timeout.c
> --- kern/kern_timeout.c 3 Nov 2019 17:01:46 -0000 1.61
> +++ kern/kern_timeout.c 6 Nov 2019 14:03:58 -0000
> @@ -627,7 +627,7 @@ db_show_callout_bucket(struct circq *buc
>
> for (p = CIRCQ_FIRST(bucket); p != bucket; p = CIRCQ_FIRST(p)) {
> to = timeout_from_circq(p);
> - db_find_sym_and_offset((db_addr_t)to->to_func, &name, &offset);
> + db_find_sym_and_offset((vaddr_t)to->to_func, &name, &offset);
> name = name ? name : "?";
> if (bucket == &timeout_todo)
> where = "softint";
> Index: ddb/db_access.c
> ===================================================================
> RCS file: /cvs/src/sys/ddb/db_access.c,v
> retrieving revision 1.15
> diff -u -p -r1.15 db_access.c
> --- ddb/db_access.c 19 Apr 2016 10:24:42 -0000 1.15
> +++ ddb/db_access.c 6 Nov 2019 13:56:49 -0000
> @@ -42,7 +42,7 @@
> * boundaries.
> */
> db_expr_t
> -db_get_value(db_addr_t addr, size_t size, int is_signed)
> +db_get_value(vaddr_t addr, size_t size, int is_signed)
> {
> char data[sizeof(db_expr_t)];
> db_expr_t value, extend;
> @@ -70,7 +70,7 @@ db_get_value(db_addr_t addr, size_t size
> }
>
> void
> -db_put_value(db_addr_t addr, size_t size, db_expr_t value)
> +db_put_value(vaddr_t addr, size_t size, db_expr_t value)
> {
> char data[sizeof(db_expr_t)];
> int i;
> Index: ddb/db_access.h
> ===================================================================
> RCS file: /cvs/src/sys/ddb/db_access.h,v
> retrieving revision 1.9
> diff -u -p -r1.9 db_access.h
> --- ddb/db_access.h 7 May 2018 15:52:46 -0000 1.9
> +++ ddb/db_access.h 6 Nov 2019 13:57:02 -0000
> @@ -33,17 +33,17 @@
> /*
> * Data access functions for debugger.
> */
> -db_expr_t db_get_value(db_addr_t, size_t, int);
> -void db_put_value(db_addr_t, size_t, db_expr_t);
> +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(db_addr_t, size_t, char *);
> -void db_write_bytes(db_addr_t, size_t, char *);
> +void db_read_bytes(vaddr_t, size_t, char *);
> +void db_write_bytes(vaddr_t, size_t, char *);
>
> #define DB_STACK_TRACE_MAX 19
>
> struct db_stack_trace {
> unsigned int st_count;
> - db_addr_t st_pc[DB_STACK_TRACE_MAX];
> + vaddr_t st_pc[DB_STACK_TRACE_MAX];
> };
>
> void db_print_stack_trace(struct db_stack_trace *, int (*)(const char *,
> ...));
> Index: ddb/db_break.c
> ===================================================================
> RCS file: /cvs/src/sys/ddb/db_break.c,v
> retrieving revision 1.20
> diff -u -p -r1.20 db_break.c
> --- ddb/db_break.c 19 Apr 2016 12:23:25 -0000 1.20
> +++ ddb/db_break.c 6 Nov 2019 13:56:54 -0000
> @@ -51,8 +51,8 @@ db_breakpoint_t db_breakpoint_list = 0;
>
> db_breakpoint_t db_breakpoint_alloc(void);
> void db_breakpoint_free(db_breakpoint_t);
> -void db_set_breakpoint(db_addr_t, int);
> -void db_delete_breakpoint(db_addr_t);
> +void db_set_breakpoint(vaddr_t, int);
> +void db_delete_breakpoint(vaddr_t);
> void db_list_breakpoints(void);
>
> db_breakpoint_t
> @@ -82,7 +82,7 @@ db_breakpoint_free(db_breakpoint_t bkpt)
> }
>
> void
> -db_set_breakpoint(db_addr_t addr, int count)
> +db_set_breakpoint(vaddr_t addr, int count)
> {
> db_breakpoint_t bkpt;
>
> @@ -114,7 +114,7 @@ db_set_breakpoint(db_addr_t addr, int co
> }
>
> void
> -db_delete_breakpoint(db_addr_t addr)
> +db_delete_breakpoint(vaddr_t addr)
> {
> db_breakpoint_t bkpt;
> db_breakpoint_t *prev;
> @@ -135,7 +135,7 @@ db_delete_breakpoint(db_addr_t addr)
> }
>
> db_breakpoint_t
> -db_find_breakpoint(db_addr_t addr)
> +db_find_breakpoint(vaddr_t addr)
> {
> db_breakpoint_t bkpt;
>
> @@ -182,7 +182,7 @@ db_clear_breakpoints(void)
> * so the breakpoint does not have to be on the breakpoint list.
> */
> db_breakpoint_t
> -db_set_temp_breakpoint(db_addr_t addr)
> +db_set_temp_breakpoint(vaddr_t addr)
> {
> db_breakpoint_t bkpt;
>
> @@ -242,7 +242,7 @@ db_list_breakpoints(void)
> void
> db_delete_cmd(db_expr_t addr, int have_addr, db_expr_t count, char *modif)
> {
> - db_delete_breakpoint((db_addr_t)addr);
> + db_delete_breakpoint((vaddr_t)addr);
> }
>
> /* Set breakpoint with skip count */
> @@ -253,7 +253,7 @@ db_breakpoint_cmd(db_expr_t addr, int ha
> if (count == -1)
> count = 1;
>
> - db_set_breakpoint((db_addr_t)addr, count);
> + db_set_breakpoint((vaddr_t)addr, count);
> }
>
> /* list breakpoints */
> Index: ddb/db_break.h
> ===================================================================
> RCS file: /cvs/src/sys/ddb/db_break.h,v
> retrieving revision 1.11
> diff -u -p -r1.11 db_break.h
> --- ddb/db_break.h 19 Apr 2016 12:23:25 -0000 1.11
> +++ ddb/db_break.h 6 Nov 2019 13:57:11 -0000
> @@ -39,7 +39,7 @@
> * Breakpoints.
> */
> typedef struct db_breakpoint {
> - db_addr_t address; /* set here */
> + vaddr_t address; /* set here */
> int init_count; /* number of times to skip bkpt */
> int count; /* current count */
> int flags; /* flags: */
> @@ -49,10 +49,10 @@ typedef struct db_breakpoint {
> struct db_breakpoint *link; /* link in in-use or free chain */
> } *db_breakpoint_t;
>
> -db_breakpoint_t db_find_breakpoint(db_addr_t);
> +db_breakpoint_t db_find_breakpoint(vaddr_t);
> void db_set_breakpoints(void);
> void db_clear_breakpoints(void);
> -db_breakpoint_t db_set_temp_breakpoint(db_addr_t);
> +db_breakpoint_t db_set_temp_breakpoint(vaddr_t);
> void db_delete_temp_breakpoint(db_breakpoint_t);
> void db_delete_cmd(db_expr_t, int, db_expr_t, char *);
> void db_breakpoint_cmd(db_expr_t, int, db_expr_t, char *);
> Index: ddb/db_command.c
> ===================================================================
> RCS file: /cvs/src/sys/ddb/db_command.c,v
> retrieving revision 1.87
> diff -u -p -r1.87 db_command.c
> --- ddb/db_command.c 6 Nov 2019 07:30:08 -0000 1.87
> +++ ddb/db_command.c 6 Nov 2019 14:00:23 -0000
> @@ -71,11 +71,11 @@ label_t *db_recover;
> */
> int db_ed_style = 1;
>
> -db_addr_t db_dot; /* current location */
> -db_addr_t db_last_addr; /* last explicit address typed */
> -db_addr_t db_prev; /* last address examined
> +vaddr_t db_dot; /* current location */
> +vaddr_t db_last_addr; /* last explicit address typed */
> +vaddr_t db_prev; /* last address examined
> or written */
> -db_addr_t db_next; /* next address to be examined
> +vaddr_t db_next; /* next address to be examined
> or written */
>
> int db_cmd_search(char *, struct db_command *, struct db_command **);
> @@ -269,7 +269,7 @@ db_command(struct db_command **last_cmdp
> }
>
> if (db_expression(&addr)) {
> - db_dot = (db_addr_t) addr;
> + db_dot = (vaddr_t) addr;
> db_last_addr = db_dot;
> have_addr = 1;
> }
> @@ -858,7 +858,7 @@ db_show_regs(db_expr_t addr, int have_ad
> db_read_variable(regp, &value);
> db_printf("%-12s%s", regp->name, db_format(tmpfmt, sizeof tmpfmt,
> (long)value, DB_FORMAT_N, 1, sizeof(long) * 3));
> - db_find_xtrn_sym_and_offset((db_addr_t)value, &name, &offset);
> + db_find_xtrn_sym_and_offset((vaddr_t)value, &name, &offset);
> if (name != 0 && offset <= db_maxoff && offset != value) {
> db_printf("\t%s", name);
> if (offset != 0)
> @@ -877,13 +877,13 @@ db_show_regs(db_expr_t addr, int have_ad
> void
> db_write_cmd(db_expr_t address, int have_addr, db_expr_t count, char *modif)
> {
> - db_addr_t addr;
> + vaddr_t addr;
> db_expr_t old_value;
> db_expr_t new_value;
> int size, wrote_one = 0;
> char tmpfmt[28];
>
> - addr = (db_addr_t) address;
> + addr = (vaddr_t) address;
>
> switch (modif[0]) {
> case 'b':
> Index: ddb/db_command.h
> ===================================================================
> RCS file: /cvs/src/sys/ddb/db_command.h,v
> retrieving revision 1.32
> diff -u -p -r1.32 db_command.h
> --- ddb/db_command.h 19 Apr 2016 12:23:25 -0000 1.32
> +++ ddb/db_command.h 6 Nov 2019 13:57:32 -0000
> @@ -41,7 +41,7 @@ void db_command_loop(void);
> void db_command(struct db_command **, struct db_command *);
> void db_machine_commands_install(struct db_command *);
>
> -extern db_addr_t db_dot, db_last_addr, db_prev, db_next;
> +extern vaddr_t db_dot, db_last_addr, db_prev, db_next;
>
> /*
> * Command table
> Index: ddb/db_ctf.c
> ===================================================================
> RCS file: /cvs/src/sys/ddb/db_ctf.c,v
> retrieving revision 1.27
> diff -u -p -r1.27 db_ctf.c
> --- ddb/db_ctf.c 31 Aug 2018 11:57:04 -0000 1.27
> +++ ddb/db_ctf.c 6 Nov 2019 14:00:45 -0000
> @@ -343,7 +343,7 @@ db_ctf_type_by_index(uint16_t index)
> void
> db_ctf_pprint(const struct ctf_type *ctt, vaddr_t addr)
> {
> - db_addr_t taddr = (db_addr_t)ctt;
> + vaddr_t taddr = (vaddr_t)ctt;
> const struct ctf_type *ref;
> uint16_t kind;
> uint32_t eob, toff;
> @@ -635,7 +635,7 @@ db_ctf_show_struct(db_expr_t addr, int h
> * In that case, update `dot' value.
> */
> if (db_expression(&addr)) {
> - db_dot = (db_addr_t)addr;
> + db_dot = (vaddr_t)addr;
> db_last_addr = db_dot;
> } else
> addr = (db_expr_t)db_dot;
> Index: ddb/db_elf.c
> ===================================================================
> RCS file: /cvs/src/sys/ddb/db_elf.c,v
> retrieving revision 1.28
> diff -u -p -r1.28 db_elf.c
> --- ddb/db_elf.c 8 Sep 2017 05:36:52 -0000 1.28
> +++ ddb/db_elf.c 6 Nov 2019 13:57:40 -0000
> @@ -263,8 +263,7 @@ db_elf_sym_lookup(char *symstr)
> * provided threshold).
> */
> Elf_Sym *
> -db_elf_sym_search(db_addr_t off, db_strategy_t strategy,
> - db_expr_t *diffp)
> +db_elf_sym_search(vaddr_t off, db_strategy_t strategy, db_expr_t *diffp)
> {
> db_symtab_t *stab = &db_symtab;
> Elf_Sym *rsymp, *symp, *symtab_start, *symtab_end;
> Index: ddb/db_examine.c
> ===================================================================
> RCS file: /cvs/src/sys/ddb/db_examine.c,v
> retrieving revision 1.25
> diff -u -p -r1.25 db_examine.c
> --- ddb/db_examine.c 6 Nov 2019 07:30:08 -0000 1.25
> +++ ddb/db_examine.c 6 Nov 2019 14:01:25 -0000
> @@ -45,8 +45,8 @@
>
> char db_examine_format[TOK_STRING_SIZE] = "x";
>
> -void db_examine(db_addr_t, char *, int);
> -void db_search(db_addr_t, int, db_expr_t, db_expr_t, db_expr_t);
> +void db_examine(vaddr_t, char *, int);
> +void db_search(vaddr_t, int, db_expr_t, db_expr_t, db_expr_t);
>
> /*
> * Examine (print) data. Syntax is:
> @@ -66,11 +66,11 @@ db_examine_cmd(db_expr_t addr, int have_
> if (count == -1)
> count = 1;
>
> - db_examine((db_addr_t)addr, db_examine_format, count);
> + db_examine((vaddr_t)addr, db_examine_format, count);
> }
>
> void
> -db_examine(db_addr_t addr, char *fmt, int count)
> +db_examine(vaddr_t addr, char *fmt, int count)
> {
> int i, c;
> db_expr_t value;
> @@ -78,7 +78,7 @@ db_examine(db_addr_t addr, char *fmt, in
> int width;
> int bytes;
> char * fp;
> - db_addr_t incr;
> + vaddr_t incr;
> int dis;
> char tmpfmt[28];
>
> @@ -251,7 +251,7 @@ db_print_cmd(db_expr_t addr, int have_ad
>
> switch (db_print_format) {
> case 'a':
> - db_printsym((db_addr_t)addr, DB_STGY_ANY, db_printf);
> + db_printsym((vaddr_t)addr, DB_STGY_ANY, db_printf);
> break;
> case 'r':
> db_printf("%s", db_format(tmpfmt, sizeof tmpfmt, addr,
> @@ -285,7 +285,7 @@ db_print_cmd(db_expr_t addr, int have_ad
> }
>
> void
> -db_print_loc_and_inst(db_addr_t loc)
> +db_print_loc_and_inst(vaddr_t loc)
> {
> db_printsym(loc, DB_STGY_PROC, db_printf);
> db_printf(":\t");
> @@ -328,7 +328,7 @@ void
> db_search_cmd(db_expr_t daddr, int have_addr, db_expr_t dcount, char *modif)
> {
> int t;
> - db_addr_t addr;
> + vaddr_t addr;
> int size;
> db_expr_t value;
> db_expr_t mask;
> @@ -362,7 +362,7 @@ db_search_cmd(db_expr_t daddr, int have_
> db_flush_lex();
> return;
> }
> - addr = (db_addr_t) value;
> + addr = (vaddr_t) value;
>
> if (!db_expression(&value)) {
> db_printf("Value missing\n");
> @@ -390,7 +390,7 @@ db_search_cmd(db_expr_t daddr, int have_
> }
>
> void
> -db_search(db_addr_t addr, int size, db_expr_t value, db_expr_t mask,
> +db_search(vaddr_t addr, int size, db_expr_t value, db_expr_t mask,
> db_expr_t count)
> {
> /* Negative counts means forever. */
> Index: ddb/db_expr.c
> ===================================================================
> RCS file: /cvs/src/sys/ddb/db_expr.c,v
> retrieving revision 1.15
> diff -u -p -r1.15 db_expr.c
> --- ddb/db_expr.c 6 Nov 2019 07:30:08 -0000 1.15
> +++ ddb/db_expr.c 6 Nov 2019 13:57:52 -0000
> @@ -121,7 +121,7 @@ db_unary(db_expr_t *valuep)
> db_error("Syntax error\n");
> /*NOTREACHED*/
> }
> - *valuep = db_get_value((db_addr_t)*valuep, sizeof(db_addr_t),
> FALSE);
> + *valuep = db_get_value((vaddr_t)*valuep, sizeof(vaddr_t), 0);
> return 1;
> }
> db_unread_token(t);
> Index: ddb/db_extern.h
> ===================================================================
> RCS file: /cvs/src/sys/ddb/db_extern.h,v
> retrieving revision 1.20
> diff -u -p -r1.20 db_extern.h
> --- ddb/db_extern.h 6 Nov 2019 07:30:08 -0000 1.20
> +++ ddb/db_extern.h 6 Nov 2019 13:57:48 -0000
> @@ -39,7 +39,7 @@ void ddb_init(void);
> void db_examine_cmd(db_expr_t, int, db_expr_t, char *);
> void db_print_cmd(db_expr_t, int, db_expr_t, char *);
> void db_search_cmd(db_expr_t, int, db_expr_t, char *);
> -void db_print_loc_and_inst(db_addr_t);
> +void db_print_loc_and_inst(vaddr_t);
> size_t db_strlcpy(char *, const char *, size_t);
>
> /* db_expr.c */
> Index: ddb/db_interface.h
> ===================================================================
> RCS file: /cvs/src/sys/ddb/db_interface.h,v
> retrieving revision 1.21
> diff -u -p -r1.21 db_interface.h
> --- ddb/db_interface.h 6 Nov 2019 07:30:08 -0000 1.21
> +++ ddb/db_interface.h 6 Nov 2019 13:57:56 -0000
> @@ -37,7 +37,7 @@ void db_stack_trace_print(db_expr_t, int
> int (*)(const char *, ...));
>
> /* arch/<arch>/<arch>/db_disasm.c */
> -db_addr_t db_disasm(db_addr_t, int);
> +vaddr_t db_disasm(vaddr_t, int);
>
> /* kern/kern_proc.c */
> void db_kill_cmd(db_expr_t, int, db_expr_t, char *);
> Index: ddb/db_run.c
> ===================================================================
> RCS file: /cvs/src/sys/ddb/db_run.c,v
> retrieving revision 1.28
> diff -u -p -r1.28 db_run.c
> --- ddb/db_run.c 6 Nov 2019 07:30:08 -0000 1.28
> +++ ddb/db_run.c 6 Nov 2019 14:01:48 -0000
> @@ -70,7 +70,7 @@ int db_call_depth;
> int
> db_stop_at_pc(db_regs_t *regs, int *is_breakpoint)
> {
> - db_addr_t pc, old_pc;
> + vaddr_t pc, old_pc;
> db_breakpoint_t bkpt;
>
> db_clear_breakpoints();
> @@ -176,7 +176,7 @@ db_stop_at_pc(db_regs_t *regs, int *is_b
> void
> db_restart_at_pc(db_regs_t *regs, int watchpt)
> {
> - db_addr_t pc = PC_REGS(regs);
> + vaddr_t pc = PC_REGS(regs);
>
> if ((db_run_mode == STEP_COUNT) || (db_run_mode == STEP_RETURN) ||
> (db_run_mode == STEP_CALLT)) {
> @@ -329,9 +329,9 @@ db_continue_cmd(db_expr_t addr, int have
> void
> db_set_single_step(db_regs_t *regs)
> {
> - db_addr_t pc = PC_REGS(regs);
> + vaddr_t pc = PC_REGS(regs);
> #ifndef SOFTWARE_SSTEP_EMUL
> - db_addr_t brpc;
> + vaddr_t brpc;
> u_int inst;
>
> /*
> Index: ddb/db_sym.c
> ===================================================================
> RCS file: /cvs/src/sys/ddb/db_sym.c,v
> retrieving revision 1.53
> diff -u -p -r1.53 db_sym.c
> --- ddb/db_sym.c 30 May 2017 15:39:05 -0000 1.53
> +++ ddb/db_sym.c 6 Nov 2019 13:58:17 -0000
> @@ -96,7 +96,7 @@ db_eqname(char *src, char *dst, int c)
> * and the difference between val and the symbol found.
> */
> Elf_Sym *
> -db_search_symbol(db_addr_t val, db_strategy_t strategy, db_expr_t *offp)
> +db_search_symbol(vaddr_t val, db_strategy_t strategy, db_expr_t *offp)
> {
> unsigned int diff;
> db_expr_t newdiff;
> Index: ddb/db_sym.h
> ===================================================================
> RCS file: /cvs/src/sys/ddb/db_sym.h,v
> retrieving revision 1.34
> diff -u -p -r1.34 db_sym.h
> --- ddb/db_sym.h 6 Nov 2017 09:32:16 -0000 1.34
> +++ ddb/db_sym.h 6 Nov 2019 13:58:06 -0000
> @@ -68,7 +68,7 @@ int db_eqname(char *, char *, int);
> Elf_Sym * db_symbol_by_name(char *, db_expr_t *);
> /* find symbol value given name */
>
> -Elf_Sym * db_search_symbol(db_addr_t, db_strategy_t, db_expr_t *);
> +Elf_Sym * db_search_symbol(vaddr_t, db_strategy_t, db_expr_t *);
> /* find symbol given value */
>
> void db_symbol_values(Elf_Sym *, char **, db_expr_t *);
> @@ -86,7 +86,7 @@ void db_printsym(db_expr_t, db_strategy_
> /* print closest symbol to a value */
>
> int db_elf_sym_init(int, void *, void *, const char *);
> -Elf_Sym * db_elf_sym_search(db_addr_t, db_strategy_t, db_expr_t *);
> +Elf_Sym * db_elf_sym_search(vaddr_t, db_strategy_t, db_expr_t *);
> int db_elf_line_at_pc(Elf_Sym *, char **, int *, db_expr_t);
> void db_elf_sym_forall(db_forall_func_t db_forall_func, void *);
>
> Index: ddb/db_watch.c
> ===================================================================
> RCS file: /cvs/src/sys/ddb/db_watch.c,v
> retrieving revision 1.16
> diff -u -p -r1.16 db_watch.c
> --- ddb/db_watch.c 19 Apr 2016 10:24:42 -0000 1.16
> +++ ddb/db_watch.c 6 Nov 2019 13:58:23 -0000
> @@ -83,7 +83,7 @@ db_watchpoint_free(db_watchpoint_t watch
> }
>
> void
> -db_set_watchpoint(db_addr_t addr, vsize_t size)
> +db_set_watchpoint(vaddr_t addr, vsize_t size)
> {
> db_watchpoint_t watch;
>
> @@ -113,7 +113,7 @@ db_set_watchpoint(db_addr_t addr, vsize_
> }
>
> void
> -db_delete_watchpoint(db_addr_t addr)
> +db_delete_watchpoint(vaddr_t addr)
> {
> db_watchpoint_t watch;
> db_watchpoint_t *prev;
> Index: ddb/db_watch.h
> ===================================================================
> RCS file: /cvs/src/sys/ddb/db_watch.h,v
> retrieving revision 1.10
> diff -u -p -r1.10 db_watch.h
> --- ddb/db_watch.h 25 Jan 2016 14:30:30 -0000 1.10
> +++ ddb/db_watch.h 6 Nov 2019 13:58:35 -0000
> @@ -37,15 +37,15 @@
> * Watchpoint.
> */
> typedef struct db_watchpoint {
> - db_addr_t loaddr; /* from this address */
> - db_addr_t hiaddr; /* to this address */
> + vaddr_t loaddr; /* from this address */
> + vaddr_t hiaddr; /* to this address */
> struct db_watchpoint *link; /* link in in-use or free chain */
> } *db_watchpoint_t;
>
> db_watchpoint_t db_watchpoint_alloc(void);
> void db_watchpoint_free(db_watchpoint_t);
> -void db_set_watchpoint(db_addr_t, vsize_t);
> -void db_delete_watchpoint(db_addr_t);
> +void db_set_watchpoint(vaddr_t, vsize_t);
> +void db_delete_watchpoint(vaddr_t);
> void db_list_watchpoints(void);
> void db_deletewatch_cmd(db_expr_t, int, db_expr_t, char *);
> void db_watchpoint_cmd(db_expr_t, int, db_expr_t, char *);
>