On 11/12/13, 5:31 AM, Mateusz Guzik wrote:
On Tue, Nov 12, 2013 at 03:33:45PM +0400, Sergey Kandaurov wrote:
On 12 November 2013 07:01, Mateusz Guzik <[email protected]> wrote:
On Mon, Nov 11, 2013 at 01:33:25PM -0800, Julian Elischer wrote:
On 11/11/13, 7:49 AM, Pavel Timofeev wrote:
Great, it helped! Thanks a lot!
the suggested change suggests fragile code. It should be able to
handle unexpected input..
Indeed, I already suggested Sergey placing a compile time assertion to
make sure vm_guest range is covered.
I have the following change for this.
Btw, the last element in vm_guest_sysctl_names is NULL, is it really needed
for something? Unlike vm_bnames/vm_pnames, it seems not.
No idea, I would leave it be.
Add CTASSERT to handle enum VM_GUEST and vm_guest_sysctl_names cooperation.
Index: sys/sys/systm.h
===================================================================
--- sys/sys/systm.h (revision 258036)
+++ sys/sys/systm.h (working copy)
@@ -72,7 +72,8 @@ extern int vm_guest; /* Running as virtual machin
* ever implemented (e.g. vendor-specific paravirtualization features).
* Keep in sync with vm_guest_sysctl_names[].
*/
-enum VM_GUEST { VM_GUEST_NO = 0, VM_GUEST_VM, VM_GUEST_XEN, VM_GUEST_HV };
+enum VM_GUEST { VM_GUEST_NO = 0, VM_GUEST_VM, VM_GUEST_XEN, VM_GUEST_HV,
+ VM_LAST };
#if defined(WITNESS) || defined(INVARIANTS)
void kassert_panic(const char *fmt, ...) __printflike(1, 2);
Index: sys/kern/subr_param.c
===================================================================
--- sys/kern/subr_param.c (revision 258036)
+++ sys/kern/subr_param.c (working copy)
@@ -156,6 +156,7 @@ static const char *const vm_guest_sysctl_names[] =
"hv",
NULL
};
+CTASSERT(nitems(vm_guest_sysctl_names) - 1 == VM_LAST);
hmm. one learns something every day. nitems() is new to me..
yes assuming nitems is supported on all platforms then this adds a
safety belt
and is a good idea.
#ifndef XEN
static const char *const vm_bnames[] = {
I can't test it right now, I presume it works :)
With that in mind looks good to me, thanks!
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization
To unsubscribe, send any mail to
"[email protected]"