[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] pvcalls: Document explicitly the padding for all arches
Hi, On 22/04/2020 10:20, Jan Beulich wrote: Even if it was possible to use the sub-structs defined in the header that way, keep in mind that we also wrote: /* dummy member to force sizeof(struct xen_pvcalls_request) * to match across archs */ struct xen_pvcalls_dummy { uint8_t dummy[56]; } dummy;This has nothing to do with how a consumer may use the structs.And the spec also clarifies that the size of each specific request is always 56 bytes.Sure, and I didn't mean to imply that a consumer would be allowed to break this requirement. Still something like this int pvcall_new_socket(struct xen_pvcalls_socket *s) { struct xen_pvcalls_request req = { .req_id = REQ_ID, .cmd = PVCALLS_SOCKET, .u.socket = *s, }; return pvcall(&req); } may break. I think I understand your concern now. So yes I agree this would break 32-bit consumer. As the padding is at the end of the structure, I think a 32-bit frontend and 64-bit backend (or vice-versa) should currently work without any trouble. The problem would come later if we decide to extend a command. I will document the padding only for non 32-bit x86 guest and rework the documentation. Cheers, -- Julien Grall
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |