Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 May 2006 13:07:41 GMT
From:      John Baldwin <jhb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 98065 for review
Message-ID:  <200605291307.k4TD7f7R046069@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=98065

Change 98065 by jhb@jhb_mutex on 2006/05/29 13:07:19

	- Retire linker_lookup_set() and just use linker_file_lookup_set()
	  internally again.
	- Use TAILQ_FOREACH() in a spot.

Affected files ...

.. //depot/projects/smpng/sys/kern/kern_linker.c#63 edit

Differences ...

==== //depot/projects/smpng/sys/kern/kern_linker.c#63 (text+ko) ====

@@ -130,8 +130,6 @@
 static int	linker_load_module(const char *kldname,
 		    const char *modname, struct linker_file *parent,
 		    struct mod_depend *verinfo, struct linker_file **lfpp);
-static int	linker_lookup_set(linker_file_t file, const char *name,
-		    void *firstp, void *lastp, int *countp);
 static modlist_t modlist_lookup2(const char *name, struct mod_depend *verinfo);
 
 static char *
@@ -189,7 +187,7 @@
 	KLD_DPF(FILE, ("linker_file_sysinit: calling SYSINITs for %s\n",
 	    lf->filename));
 
-	if (linker_lookup_set(lf, "sysinit_set", &start, &stop, NULL) != 0)
+	if (linker_file_lookup_set(lf, "sysinit_set", &start, &stop, NULL) != 0)
 		return;
 	/*
 	 * Perform a bubble sort of the system initialization objects by
@@ -231,7 +229,8 @@
 	KLD_DPF(FILE, ("linker_file_sysuninit: calling SYSUNINITs for %s\n",
 	    lf->filename));
 
-	if (linker_lookup_set(lf, "sysuninit_set", &start, &stop, NULL) != 0)
+	if (linker_file_lookup_set(lf, "sysuninit_set", &start, &stop,
+	    NULL) != 0)
 		return;
 
 	/*
@@ -275,7 +274,7 @@
 	    ("linker_file_register_sysctls: registering SYSCTLs for %s\n",
 	    lf->filename));
 
-	if (linker_lookup_set(lf, "sysctl_set", &start, &stop, NULL) != 0)
+	if (linker_file_lookup_set(lf, "sysctl_set", &start, &stop, NULL) != 0)
 		return;
 
 	for (oidp = start; oidp < stop; oidp++)
@@ -290,7 +289,7 @@
 	KLD_DPF(FILE, ("linker_file_unregister_sysctls: registering SYSCTLs"
 	    " for %s\n", lf->filename));
 
-	if (linker_lookup_set(lf, "sysctl_set", &start, &stop, NULL) != 0)
+	if (linker_file_lookup_set(lf, "sysctl_set", &start, &stop, NULL) != 0)
 		return;
 
 	for (oidp = start; oidp < stop; oidp++)
@@ -307,7 +306,7 @@
 	KLD_DPF(FILE, ("linker_file_register_modules: registering modules"
 	    " in %s\n", lf->filename));
 
-	if (linker_lookup_set(lf, "modmetadata_set", &start, &stop,
+	if (linker_file_lookup_set(lf, "modmetadata_set", &start, &stop,
 	    NULL) != 0) {
 		/*
 		 * This fallback should be unnecessary, but if we get booted
@@ -433,8 +432,7 @@
 		return (0);
 	}
 
-	error = linker_load_module(NULL, modname, NULL, verinfo,
-	    result);
+	error = linker_load_module(NULL, modname, NULL, verinfo, result);
 	KLD_UNLOCK();
 	return (error);
 }
@@ -650,20 +648,11 @@
 }
 
 /*
- * Locate a linker set and its contents.  This is a helper function to avoid
- * linker_if.h exposure elsewhere.  Note: firstp and lastp are really void **.
- * The first function is an internal wrapper so we can avoid having lots of
- * (void **) casts.
+ * Locate a linker set and its contents.  This is a helper function to
+ * avoid linker_if.h exposure elsewhere.  Note: firstp and lastp are
+ * really void **.  This function is used in this file so we can avoid
+ * having lots of (void **) casts.
  */
-static int
-linker_lookup_set(linker_file_t file, const char *name,
-    void *firstp, void *lastp, int *countp)
-{
-
-	KLD_LOCK_ASSERT();
-	return (LINKER_LOOKUP_SET(file, name, firstp, lastp, countp));
-}
-
 int
 linker_file_lookup_set(linker_file_t file, const char *name,
     void *firstp, void *lastp, int *countp)
@@ -673,7 +662,7 @@
 	locked = KLD_LOCKED();
 	if (!locked)
 		KLD_LOCK();
-	error = linker_lookup_set(file, name, firstp, lastp, countp);
+	error = LINKER_LOOKUP_SET(file, name, firstp, lastp, countp);
 	if (!locked)
 		KLD_UNLOCK();
 	return (error);
@@ -1215,8 +1204,7 @@
 	if (verinfo == NULL)
 		return (modlist_lookup(name, 0));
 	bestmod = NULL;
-	for (mod = TAILQ_FIRST(&found_modules); mod;
-	    mod = TAILQ_NEXT(mod, link)) {
+	TAILQ_FOREACH(mod, &found_modules, link) {
 		if (strcmp(mod->name, name) != 0)
 			continue;
 		ver = mod->version;
@@ -1323,7 +1311,7 @@
 	/*
 	 * First get a list of stuff in the kernel.
 	 */
-	if (linker_lookup_set(linker_kernel_file, MDT_SETNAME, &start,
+	if (linker_file_lookup_set(linker_kernel_file, MDT_SETNAME, &start,
 	    &stop, NULL) == 0)
 		linker_addmodules(linker_kernel_file, start, stop, 1);
 
@@ -1333,7 +1321,8 @@
 	 */
 restart:
 	TAILQ_FOREACH(lf, &loaded_files, loaded) {
-		error = linker_lookup_set(lf, MDT_SETNAME, &start, &stop, NULL);
+		error = linker_file_lookup_set(lf, MDT_SETNAME, &start,
+		    &stop, NULL);
 		/*
 		 * First, look to see if we would successfully link with this
 		 * stuff.
@@ -1426,7 +1415,8 @@
 				panic("cannot add dependency");
 		}
 		lf->userrefs++;	/* so we can (try to) kldunload it */
-		error = linker_lookup_set(lf, MDT_SETNAME, &start, &stop, NULL);
+		error = linker_file_lookup_set(lf, MDT_SETNAME, &start,
+		    &stop, NULL);
 		if (!error) {
 			for (mdp = start; mdp < stop; mdp++) {
 				mp = *mdp;
@@ -1457,7 +1447,7 @@
 			continue;
 		}
 		linker_file_register_modules(lf);
-		if (linker_lookup_set(lf, "sysinit_set", &si_start,
+		if (linker_file_lookup_set(lf, "sysinit_set", &si_start,
 		    &si_stop, NULL) == 0)
 			sysinit_add(si_start, si_stop);
 		linker_file_register_sysctls(lf);
@@ -1918,7 +1908,8 @@
 		if (error)
 			return (error);
 	}
-	if (linker_lookup_set(lf, MDT_SETNAME, &start, &stop, &count) != 0)
+	if (linker_file_lookup_set(lf, MDT_SETNAME, &start, &stop,
+	    &count) != 0)
 		return (0);
 	for (mdp = start; mdp < stop; mdp++) {
 		mp = *mdp;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200605291307.k4TD7f7R046069>