i don't understand. if it's in the portability interface, you say what arch_vcpu_info_t is, so why not typedef int arch_vcpu_info_t; and be done with it. i don't see why it must be a struct in that context.
i'd assumed (based on having looked at some xen headers a month ago) that they'd used 0-length things to try to get round some portability problem with `packed' structs, but the problem seems simpler than that.
