Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 11 Jan 2007 18:02:43 GMT
From:      Marko Zec <zec@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 112779 for review
Message-ID:  <200701111802.l0BI2hws026170@repoman.freebsd.org>

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

Change 112779 by zec@zec_tca51 on 2007/01/11 18:02:15

	Convert virtualized sysctl handlers to use the new
	SYSCTL_RESOLVE_V_ARG1() macro.

Affected files ...

.. //depot/projects/vimage/src/sys/kern/kern_sysctl.c#3 edit

Differences ...

==== //depot/projects/vimage/src/sys/kern/kern_sysctl.c#3 (text+ko) ====

@@ -833,32 +833,22 @@
 sysctl_handle_v_int(SYSCTL_HANDLER_V_ARGS)
 {
 	int error = 0;
-	void *ptr;
+
+	SYSCTL_RESOLVE_V_ARG1();
 
 	/*
 	 * Attempt to get a coherent snapshot by making a copy of the data.
 	 */
-	
-	switch (subs) {
 
-	case V_NET:
-		ptr = curthread->td_vimage->v_vnetb->mod_data[mod];
-		ptr = (void *) ((int) ptr + (int) arg1);
-		break;
-
-	default:
-		panic("unsupported module id %d", subs);
-	}
+	error = SYSCTL_OUT(req, arg1, sizeof(int));
 
-	error = SYSCTL_OUT(req, ptr, sizeof(int));
-
 	if (error || !req->newptr)
 		return (error);
 
-	if (!ptr)
+	if (!arg1)
 		error = EPERM;
 	else
-		error = SYSCTL_IN(req, ptr, sizeof(int));
+		error = SYSCTL_IN(req, arg1, sizeof(int));
 	return (error);
 }
 #endif
@@ -1017,24 +1007,14 @@
 	int error, tries;
 	u_int generation;
 	struct sysctl_req req2;
-	void *ptr;
 
-	switch (subs) {
-
-	case V_NET:
-		ptr = curthread->td_vimage->v_vnetb->mod_data[mod];
-		ptr = (void *) ((int) ptr + (int) arg1);
-		break;
-
-	default:
-		panic("unsupported module id %d", subs);
-	}
+	SYSCTL_RESOLVE_V_ARG1();
 
 	tries = 0;
 	req2 = *req;
 retry:
 	generation = curthread->td_generation;
-	error = SYSCTL_OUT(req, ptr, arg2);
+	error = SYSCTL_OUT(req, arg1, arg2);
 	if (error)
 		return (error);
 	tries++;
@@ -1043,7 +1023,7 @@
 		goto retry;
 	}
 
-	error = SYSCTL_IN(req, ptr, arg2);
+	error = SYSCTL_IN(req, arg1, arg2);
 
 	return (error);
 }



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