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 ([email protected]).
@@ -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 *);