Module Name:    src
Committed By:   maxv
Date:           Sun Jul  6 15:22:31 UTC 2014

Modified Files:
        src/sys/kern: subr_kobj.c

Log Message:
Use a macro instead of always putting __func__ and __LINE__.


To generate a diff of this commit:
cvs rdiff -u -r1.46 -r1.47 src/sys/kern/subr_kobj.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/kern/subr_kobj.c
diff -u src/sys/kern/subr_kobj.c:1.46 src/sys/kern/subr_kobj.c:1.47
--- src/sys/kern/subr_kobj.c:1.46	Fri Aug  9 05:10:14 2013
+++ src/sys/kern/subr_kobj.c	Sun Jul  6 15:22:31 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: subr_kobj.c,v 1.46 2013/08/09 05:10:14 matt Exp $	*/
+/*	$NetBSD: subr_kobj.c,v 1.47 2014/07/06 15:22:31 maxv 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.46 2013/08/09 05:10:14 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: subr_kobj.c,v 1.47 2014/07/06 15:22:31 maxv Exp $");
 
 #include "opt_modular.h"
 
@@ -80,9 +80,12 @@ __KERNEL_RCSID(0, "$NetBSD: subr_kobj.c,
 
 #include <uvm/uvm_extern.h>
 
+#define kobj_error(_kobj, ...) \
+	kobj_out(__func__, __LINE__, _kobj, __VA_ARGS__)
+
 static int	kobj_relocate(kobj_t, bool);
 static int	kobj_checksyms(kobj_t, bool);
-static void	kobj_error(const char *, int, kobj_t, const char *, ...)
+static void	kobj_out(const char *, int, kobj_t, const char *, ...)
     __printflike(4, 5);
 static void	kobj_jettison(kobj_t);
 static void	kobj_free(kobj_t, void *, size_t);
@@ -179,25 +182,24 @@ kobj_load(kobj_t ko)
 	 */
 	error = ko->ko_read(ko, (void **)&hdr, sizeof(*hdr), 0, true);
 	if (error != 0) {
-		kobj_error(__func__, __LINE__, ko, "read failed %d", error);
+		kobj_error(ko, "read failed %d", error);
 		goto out;
 	}
 	if (memcmp(hdr->e_ident, ELFMAG, SELFMAG) != 0) {
-		kobj_error(__func__, __LINE__, ko, "not an ELF object");
+		kobj_error(ko, "not an ELF object");
 		error = ENOEXEC;
 		goto out;
 	}
 
 	if (hdr->e_ident[EI_VERSION] != EV_CURRENT ||
 	    hdr->e_version != EV_CURRENT) {
-		kobj_error(__func__, __LINE__, ko,
-		    "unsupported file version %d", hdr->e_ident[EI_VERSION]);
+		kobj_error(ko, "unsupported file version %d",
+		    hdr->e_ident[EI_VERSION]);
 		error = ENOEXEC;
 		goto out;
 	}
 	if (hdr->e_type != ET_REL) {
-		kobj_error(__func__, __LINE__, ko, "unsupported file type %d",
-		    hdr->e_type);
+		kobj_error(ko, "unsupported file type %d", hdr->e_type);
 		error = ENOEXEC;
 		goto out;
 	}
@@ -210,8 +212,7 @@ kobj_load(kobj_t ko)
 #error not defined
 #endif
 	default:
-		kobj_error(__func__, __LINE__, ko, "unsupported machine %d",
-		    hdr->e_machine);
+		kobj_error(ko, "unsupported machine %d", hdr->e_machine);
 		error = ENOEXEC;
 		goto out;
 	}
@@ -227,14 +228,14 @@ kobj_load(kobj_t ko)
 	ko->ko_shdrsz = hdr->e_shnum * hdr->e_shentsize;
 	if (ko->ko_shdrsz == 0 || hdr->e_shoff == 0 ||
 	    hdr->e_shentsize != sizeof(Elf_Shdr)) {
-		kobj_error(__func__, __LINE__, ko, "bad sizes");
+		kobj_error(ko, "bad sizes");
 		error = ENOEXEC;
 		goto out;
 	}
 	error = ko->ko_read(ko, (void **)&shdr, ko->ko_shdrsz, hdr->e_shoff,
 	    true);
 	if (error != 0) {
-		kobj_error(__func__, __LINE__, ko, "read failed %d", error);
+		kobj_error(ko, "read failed %d", error);
 		goto out;
 	}
 	ko->ko_shdr = shdr;
@@ -271,21 +272,19 @@ kobj_load(kobj_t ko)
 		}
 	}
 	if (ko->ko_nprogtab == 0) {
-		kobj_error(__func__, __LINE__, ko, "file has no contents");
+		kobj_error(ko, "file has no contents");
 		error = ENOEXEC;
 		goto out;
 	}
 	if (nsym != 1) {
 		/* Only allow one symbol table for now */
-		kobj_error(__func__, __LINE__, ko,
-		    "file has no valid symbol table");
+		kobj_error(ko, "file has no valid symbol table");
 		error = ENOEXEC;
 		goto out;
 	}
 	if (symstrindex < 0 || symstrindex > hdr->e_shnum ||
 	    shdr[symstrindex].sh_type != SHT_STRTAB) {
-		kobj_error(__func__, __LINE__, ko,
-		    "file has invalid symbol strings");
+		kobj_error(ko, "file has invalid symbol strings");
 		error = ENOEXEC;
 		goto out;
 	}
@@ -298,7 +297,7 @@ kobj_load(kobj_t ko)
 		    sizeof(*ko->ko_progtab), KM_SLEEP);
 		if (ko->ko_progtab == NULL) {
 			error = ENOMEM;
-			kobj_error(__func__, __LINE__, ko, "out of memory");
+			kobj_error(ko, "out of memory");
 			goto out;
 		}
 	}
@@ -307,7 +306,7 @@ kobj_load(kobj_t ko)
 		    sizeof(*ko->ko_reltab), KM_SLEEP);
 		if (ko->ko_reltab == NULL) {
 			error = ENOMEM;
-			kobj_error(__func__, __LINE__, ko, "out of memory");
+			kobj_error(ko, "out of memory");
 			goto out;
 		}
 	}
@@ -316,12 +315,12 @@ kobj_load(kobj_t ko)
 		    sizeof(*ko->ko_relatab), KM_SLEEP);
 		if (ko->ko_relatab == NULL) {
 			error = ENOMEM;
-			kobj_error(__func__, __LINE__, ko, "out of memory");
+			kobj_error(ko, "out of memory");
 			goto out;
 		}
 	}
 	if (symtabindex == -1) {
-		kobj_error(__func__, __LINE__, ko, "lost symbol table index");
+		kobj_error(ko, "lost symbol table index");
 		goto out;
 	}
 
@@ -330,14 +329,14 @@ kobj_load(kobj_t ko)
 	 */
 	ko->ko_symcnt = shdr[symtabindex].sh_size / sizeof(Elf_Sym);
 	if (ko->ko_symcnt == 0) {
-		kobj_error(__func__, __LINE__, ko, "no symbol table");
+		kobj_error(ko, "no symbol table");
 		goto out;
 	}
 	error = ko->ko_read(ko, (void **)&ko->ko_symtab,
 	    ko->ko_symcnt * sizeof(Elf_Sym),
 	    shdr[symtabindex].sh_offset, true);
 	if (error != 0) {
-		kobj_error(__func__, __LINE__, ko, "read failed %d", error);
+		kobj_error(ko, "read failed %d", error);
 		goto out;
 	}
 
@@ -346,13 +345,13 @@ kobj_load(kobj_t ko)
 	 */
 	ko->ko_strtabsz = shdr[symstrindex].sh_size;
 	if (ko->ko_strtabsz == 0) {
-		kobj_error(__func__, __LINE__, ko, "no symbol strings");
+		kobj_error(ko, "no symbol strings");
 		goto out;
 	}
 	error = ko->ko_read(ko, (void *)&ko->ko_strtab, ko->ko_strtabsz,
 	    shdr[symstrindex].sh_offset, true);
 	if (error != 0) {
-		kobj_error(__func__, __LINE__, ko, "read failed %d", error);
+		kobj_error(ko, "read failed %d", error);
 		goto out;
 	}
 
@@ -362,7 +361,7 @@ kobj_load(kobj_t ko)
 	error = kobj_renamespace(ko->ko_symtab, ko->ko_symcnt,
 	    &ko->ko_strtab, &ko->ko_strtabsz);
 	if (error != 0) {
-		kobj_error(__func__, __LINE__, ko, "renamespace failed %d",
+		kobj_error(ko, "renamespace failed %d",
 		    error);
 		goto out;
 	}
@@ -377,8 +376,7 @@ kobj_load(kobj_t ko)
 		    shdr[hdr->e_shstrndx].sh_size,
 		    shdr[hdr->e_shstrndx].sh_offset, true);
 		if (error != 0) {
-			kobj_error(__func__, __LINE__, ko, "read failed %d",
-			    error);
+			kobj_error(ko, "read failed %d", error);
 			goto out;
 		}
 	}
@@ -408,7 +406,7 @@ kobj_load(kobj_t ko)
 	 * can get the bounds and gdb can associate offsets with modules.
 	 */
 	if (mapsize == 0) {
-		kobj_error(__func__, __LINE__, ko, "no text/data/bss");
+		kobj_error(ko, "no text/data/bss");
 		goto out;
 	}
 	if (ko->ko_type == KT_MEMORY) {
@@ -417,7 +415,7 @@ kobj_load(kobj_t ko)
 		mapbase = uvm_km_alloc(module_map, round_page(mapsize),
 		    0, UVM_KMF_WIRED | UVM_KMF_EXEC);
 		if (mapbase == 0) {
-			kobj_error(__func__, __LINE__, ko, "out of memory");
+			kobj_error(ko, "out of memory");
 			error = ENOMEM;
 			goto out;
 		}
@@ -442,9 +440,8 @@ kobj_load(kobj_t ko)
 				addr = (void *)(shdr[i].sh_offset +
 				    (vaddr_t)ko->ko_source);
 				if (((vaddr_t)addr & alignmask) != 0) {
-					kobj_error(__func__, __LINE__, ko,
-					    "section %d not aligned",
-					    i);
+					kobj_error(ko,
+					    "section %d not aligned", i);
 					goto out;
 				}
 			} else {
@@ -459,14 +456,13 @@ kobj_load(kobj_t ko)
 				error = ko->ko_read(ko, &addr,
 				    shdr[i].sh_size, shdr[i].sh_offset, false);
 				if (error != 0) {
-					kobj_error(__func__, __LINE__, ko,
-					    "read failed %d", error);
+					kobj_error(ko, "read failed %d",
+					    error);
 					goto out;
 				}
 			} else if (ko->ko_type == KT_MEMORY &&
 			    shdr[i].sh_size != 0) {
-			    	kobj_error(__func__, __LINE__, ko,
-				    "non-loadable BSS "
+			    	kobj_error(ko, "non-loadable BSS "
 				    "section in pre-loaded module");
 				error = EINVAL;
 			    	goto out;
@@ -506,8 +502,8 @@ kobj_load(kobj_t ko)
 				    ko->ko_reltab[rl].size,
 				    shdr[i].sh_offset, true);
 				if (error != 0) {
-					kobj_error(__func__, __LINE__, ko,
-					    "read failed %d", error);
+					kobj_error(ko, "read failed %d",
+					    error);
 					goto out;
 				}
 			}
@@ -528,8 +524,8 @@ kobj_load(kobj_t ko)
 				    shdr[i].sh_size,
 				    shdr[i].sh_offset, true);
 				if (error != 0) {
-					kobj_error(__func__, __LINE__, ko,
-					    "read failed %d", error);
+					kobj_error(ko, "read failed %d",
+					    error);
 					goto out;
 				}
 			}
@@ -599,8 +595,8 @@ kobj_unload(kobj_t ko)
 		error = kobj_machdep(ko, (void *)ko->ko_address, ko->ko_size,
 		    false);
 		if (error != 0)
-			kobj_error(__func__, __LINE__, ko,
-			    "machine dependent deinit failed %d", error);
+			kobj_error(ko, "machine dependent deinit failed %d",
+			    error);
 	}
 	if (ko->ko_address != 0 && ko->ko_type != KT_MEMORY) {
 		uvm_km_free(module_map, ko->ko_address, round_page(ko->ko_size),
@@ -692,8 +688,8 @@ kobj_affix(kobj_t ko, const char *name)
 		error = kobj_machdep(ko, (void *)ko->ko_address, ko->ko_size,
 		    true);
 		if (error != 0)
-			kobj_error(__func__, __LINE__, ko,
-			    "machine dependent init failed %d", error);
+			kobj_error(ko, "machine dependent init failed %d",
+			    error);
 		ko->ko_loaded = true;
 	}
 
@@ -800,7 +796,7 @@ kobj_sym_lookup(kobj_t ko, uintptr_t sym
 	switch (ELF_ST_BIND(sym->st_info)) {
 	case STB_LOCAL:
 		/* Local, but undefined? huh? */
-		kobj_error(__func__, __LINE__, ko, "local symbol undefined");
+		kobj_error(ko, "local symbol undefined");
 		return 0;
 
 	case STB_GLOBAL:
@@ -809,15 +805,14 @@ kobj_sym_lookup(kobj_t ko, uintptr_t sym
 
 		/* Force a lookup failure if the symbol name is bogus. */
 		if (*symbol == 0) {
-			kobj_error(__func__, __LINE__, ko, "bad symbol name");
+			kobj_error(ko, "bad symbol name");
 			return 0;
 		}
 
 		return (uintptr_t)sym->st_value;
 
 	case STB_WEAK:
-		kobj_error(__func__, __LINE__, ko,
-		    "weak symbols not supported");
+		kobj_error(ko, "weak symbols not supported");
 		return 0;
 
 	default:
@@ -877,8 +872,8 @@ kobj_checksyms(kobj_t ko, bool undefined
 		if (ksyms_getval_unlocked(NULL, name, &rval,
 		    KSYMS_EXTERN) != 0) {
 			if (undefined) {
-				kobj_error(__func__, __LINE__, ko,
-				    "symbol `%s' not found", name);
+				kobj_error(ko, "symbol `%s' not found",
+				    name);
 				error = ENOEXEC;
 			}
 			continue;
@@ -906,8 +901,8 @@ kobj_checksyms(kobj_t ko, bool undefined
 		    strncmp(name, "__stop_link_set_", 16)) {
 		    	continue;
 		}
-		kobj_error(__func__, __LINE__, ko,
-		    "global symbol `%s' redefined", name);
+		kobj_error(ko, "global symbol `%s' redefined",
+		    name);
 		error = ENOEXEC;
 	}
 
@@ -997,12 +992,12 @@ kobj_relocate(kobj_t ko, bool local)
 }
 
 /*
- * kobj_error:
+ * kobj_out:
  *
  *	Utility function: log an error.
  */
 static void
-kobj_error(const char *fname, int lnum, kobj_t ko, const char *fmt, ...)
+kobj_out(const char *fname, int lnum, kobj_t ko, const char *fmt, ...)
 {
 	va_list ap;
 
@@ -1021,15 +1016,15 @@ kobj_read_mem(kobj_t ko, void **basep, s
 	int error;
 
 	if (ko->ko_memsize != -1 && off + size > ko->ko_memsize) {
-		kobj_error(__func__, __LINE__, ko, "preloaded object short");
+		kobj_error(ko, "preloaded object short");
 		error = EINVAL;
 		base = NULL;
 	} else if (allocate) {
 		base = (uint8_t *)ko->ko_source + off;
 		error = 0;
 	} else if ((uint8_t *)base != (uint8_t *)ko->ko_source + off) {
-		kobj_error(__func__, __LINE__, ko, "object not aligned");
-		kobj_error(__func__, __LINE__, ko, "source=%p base=%p off=%d "
+		kobj_error(ko, "object not aligned");
+		kobj_error(ko, "source=%p base=%p off=%d "
 		    "size=%zu", ko->ko_source, base, (int)off, size);
 		error = EINVAL;
 	} else {

Reply via email to