Module Name: src Committed By: christos Date: Sat Nov 4 22:17:55 UTC 2017
Modified Files: src/sys/ddb: db_elf.c src/sys/kern: kern_ksyms.c subr_kobj.c src/sys/sys: ksyms.h Log Message: use Elf_Sym ** instead of casting. To generate a diff of this commit: cvs rdiff -u -r1.27 -r1.28 src/sys/ddb/db_elf.c cvs rdiff -u -r1.86 -r1.87 src/sys/kern/kern_ksyms.c cvs rdiff -u -r1.64 -r1.65 src/sys/kern/subr_kobj.c cvs rdiff -u -r1.34 -r1.35 src/sys/sys/ksyms.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/ddb/db_elf.c diff -u src/sys/ddb/db_elf.c:1.27 src/sys/ddb/db_elf.c:1.28 --- src/sys/ddb/db_elf.c:1.27 Sat Mar 14 11:36:16 2009 +++ src/sys/ddb/db_elf.c Sat Nov 4 18:17:55 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: db_elf.c,v 1.27 2009/03/14 15:36:16 dsl Exp $ */ +/* $NetBSD: db_elf.c,v 1.28 2017/11/04 22:17:55 christos Exp $ */ /*- * Copyright (c) 1997, 2009 The NetBSD Foundation, Inc. @@ -31,14 +31,14 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: db_elf.c,v 1.27 2009/03/14 15:36:16 dsl Exp $"); +__KERNEL_RCSID(0, "$NetBSD: db_elf.c,v 1.28 2017/11/04 22:17:55 christos Exp $"); #include <sys/param.h> #include <sys/systm.h> #include <sys/proc.h> -#include <ddb/ddb.h> +#include <machine/db_machdep.h> #include <machine/pmap.h> #include <machine/vmparam.h> @@ -50,6 +50,7 @@ __KERNEL_RCSID(0, "$NetBSD: db_elf.c,v 1 #define ELFSIZE DB_ELFSIZE +#include <ddb/ddb.h> #include <sys/exec_elf.h> static char *db_elf_find_strtab(db_symtab_t *); Index: src/sys/kern/kern_ksyms.c diff -u src/sys/kern/kern_ksyms.c:1.86 src/sys/kern/kern_ksyms.c:1.87 --- src/sys/kern/kern_ksyms.c:1.86 Fri Nov 3 05:59:07 2017 +++ src/sys/kern/kern_ksyms.c Sat Nov 4 18:17:55 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_ksyms.c,v 1.86 2017/11/03 09:59:07 maxv Exp $ */ +/* $NetBSD: kern_ksyms.c,v 1.87 2017/11/04 22:17:55 christos Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -73,7 +73,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_ksyms.c,v 1.86 2017/11/03 09:59:07 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_ksyms.c,v 1.87 2017/11/04 22:17:55 christos Exp $"); #if defined(_KERNEL) && defined(_KERNEL_OPT) #include "opt_copy_symtab.h" @@ -566,7 +566,7 @@ ksyms_addsyms_explicit(void *ehdr, void * Call with ksyms_lock, unless known that the symbol table can't change. */ int -ksyms_getval_unlocked(const char *mod, const char *sym, void **symp, +ksyms_getval_unlocked(const char *mod, const char *sym, Elf_Sym **symp, unsigned long *val, int type) { struct ksyms_symtab *st; @@ -574,8 +574,7 @@ ksyms_getval_unlocked(const char *mod, c #ifdef KSYMS_DEBUG if (ksyms_debug & FOLLOW_CALLS) - printf("ksyms_getval_unlocked: mod %s sym %s valp %p\n", - mod, sym, val); + printf("%s: mod %s sym %s valp %p\n", __func__, mod, sym, val); #endif TAILQ_FOREACH(st, &ksyms_symtabs, sd_queue) { @@ -586,7 +585,7 @@ ksyms_getval_unlocked(const char *mod, c if ((es = findsym(sym, st, type)) != NULL) { *val = es->st_value; if (symp) - *symp = (void *)es; + *symp = es; return 0; } } Index: src/sys/kern/subr_kobj.c diff -u src/sys/kern/subr_kobj.c:1.64 src/sys/kern/subr_kobj.c:1.65 --- src/sys/kern/subr_kobj.c:1.64 Sat Nov 4 08:14:41 2017 +++ src/sys/kern/subr_kobj.c Sat Nov 4 18:17:55 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: subr_kobj.c,v 1.64 2017/11/04 12:14:41 martin Exp $ */ +/* $NetBSD: subr_kobj.c,v 1.65 2017/11/04 22:17:55 christos Exp $ */ /* * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -63,7 +63,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: subr_kobj.c,v 1.64 2017/11/04 12:14:41 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: subr_kobj.c,v 1.65 2017/11/04 22:17:55 christos Exp $"); #ifdef _KERNEL_OPT #include "opt_modular.h" @@ -980,7 +980,7 @@ kobj_checksyms(kobj_t ko, bool undefined * module_lock). */ name = ko->ko_strtab + sym->st_name; - if (ksyms_getval_unlocked(NULL, name, (void **)&ksym, &rval, + if (ksyms_getval_unlocked(NULL, name, &ksym, &rval, KSYMS_EXTERN) != 0) { if (undefined) { kobj_error(ko, "symbol `%s' not found", Index: src/sys/sys/ksyms.h diff -u src/sys/sys/ksyms.h:1.34 src/sys/sys/ksyms.h:1.35 --- src/sys/sys/ksyms.h:1.34 Fri Nov 3 05:59:07 2017 +++ src/sys/sys/ksyms.h Sat Nov 4 18:17:55 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: ksyms.h,v 1.34 2017/11/03 09:59:07 maxv Exp $ */ +/* $NetBSD: ksyms.h,v 1.35 2017/11/04 22:17:55 christos Exp $ */ /* * Copyright (c) 2001, 2003 Anders Magnusson (ra...@ludd.luth.se). @@ -30,8 +30,12 @@ #ifndef _SYS_KSYMS_H_ #define _SYS_KSYMS_H_ -#ifdef _KSYMS_PRIVATE +#ifndef ELFSIZE +#define ELFSIZE ARCH_ELFSIZE +#endif #include <sys/exec_elf.h> + +#ifdef _KSYMS_PRIVATE #include <sys/ioccom.h> #include <sys/queue.h> @@ -131,7 +135,7 @@ typedef int (*ksyms_callback_t)(const ch int ksyms_getname(const char **, const char **, vaddr_t, int); int ksyms_getval(const char *, const char *, unsigned long *, int); -int ksyms_getval_unlocked(const char *, const char *, void **, +int ksyms_getval_unlocked(const char *, const char *, Elf_Sym **, unsigned long *, int); struct ksyms_symtab *ksyms_get_mod(const char *); int ksyms_mod_foreach(const char *mod, ksyms_callback_t, void *);