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