Avi Kivity wrote:
> Well, I hate to say it, but the resulting code doesn't look too well
> (all the kvm_x86 variables), and it's entirely my fault as I recommended
> this approach.  Not like it was difficult to predict.
> 
> I'm thinking again of
> 
>     struct kvm {
>         struct kvm_arch a;
>         ...
>     }
> 
> Where each arch defines its own kvm_arch.  Now the changes look like a
> bunch of "kvm->blah" to "kvm->a.blah" conversions.
> 
> IIRC a downside was mentioned that it is easier to cause a build failure
> for another arch now.
> 
> Opinions?  In theory correctness should win over style every time, no?
It's a matter of taste. I favor embedding an kvm_arch too, but I 
recommend to name member "a" different. "arch" maybe?

An advantage of this solution is, that some (not all) architectures 
can share common code. If kvm_arch contains member foo for x86 and 
ia64, a common function could do kvm->a.foo. With the posted approach, 
we'd have
#ifdef CONFIG_ARCH_X86
        val = to_kvm_x86(kvm).foo;
#else
        val = to_kvm_ia74(kvm).foo;
#endif


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to