PERFORCE change 112779 for review

Marko Zec zec at FreeBSD.org
Thu Jan 11 10:02:44 PST 2007


http://perforce.freebsd.org/chv.cgi?CH=112779

Change 112779 by zec at 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);
 }


More information about the p4-projects mailing list