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 *);

Reply via email to