Re: [PATCH 5/13] KVM: virtualization infrastructure

From: Avi Kivity
Date: Tue Oct 24 2006 - 08:03:43 EST


Arnd Bergmann wrote:
On Monday 23 October 2006 22:28, Avi Kivity wrote:

+struct segment_descriptor {
+ u16 limit_low;
+ u16 base_low;
+ u8 base_mid;
+ u8 type : 4;
+ u8 system : 1;
+ u8 dpl : 2;
+ u8 present : 1;
+ u8 limit_high : 4;
+ u8 avl : 1;
+ u8 long_mode : 1;
+ u8 default_op : 1;
+ u8 granularity : 1;
+ u8 base_high;
+} __attribute__((packed));
Bitfields are generally frowned upon. It's better to define
constants for each of these and use a u64.
Any specific reasons? I find the code much more readable (and
lowercase) with bitfields.

The strongest reason against bitfields is that they are not
endian-clean. This doesn't apply on a architecture-specific
patch such as KVM, but it just feels wrong to read code
with bit fields in the kernel.


This structure is suspiciously similar to struct desc_struct in asm-x86_64/desc.h.

However, I can't use it because asm-i386/desc.h does not have a similar definition.


Andi, will you accept a patch to move it to asm-i386/desc_defs.h so it can be used in both archs?

--
error compiling committee.c: too many arguments to function

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/