Jeremy Fitzhardinge wrote: > Single entry pros: > > * simpler control flow? > Simpler to maintain the code. Maintaining multiple intertwined entry points is a mess. It used to be done for Visual workstation, and the code got merged back together. Here's a pretty easy thing to do: ENTRY(startup_32) #ifdef CONFIG_PARAVIRT movl %cs, %eax testl $0x3, %eax jnz pv_startup_32 #endif Now you don't need any special magic at all to register an alternate entry point. > cons: > > * requires "hypervisor sniffing" to work out what hypervisor we're under > o mandates setting %ebx to a magic constant? > * not possible to have hypervisor-specific setup before setting up > stacks, making calls, etc > > > Where do the ebx constants come from anyway? If they're provided by the > hypervisor itself, it means we need to have a registry of who's using > what number, right? We'd require them to all be unique (since > collisions would be disastrous), and also they need to be densely > allocated (single we're using them as an array index). > Why is registering these constants hard? I prefer the symmetry of having all vendors use the same entry method rather than encouraging ad-hoc hacks. Zach