As agreed on PV call PFA pahole results
On 12/22/2016 10:12 AM, Oleksandr Andrushchenko wrote:
From: Oleksandr Andrushchenko <oleksandr_andrushche...@epam.com> This protocol aims to provide a unified protocol which fits more sophisticated use-cases than a framebuffer device can handle. At the moment basic functionality is supported with the intention to extend: o multiple dynamically allocated/destroyed framebuffers o buffers of arbitrary sizes o better configuration options including multiple display support Oleksandr Andrushchenko (1): displif: add ABI for para-virtual display xen/include/public/io/displif.h | 730 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 730 insertions(+) create mode 100644 xen/include/public/io/displif.h
struct xendispl_dbuf_create_req { uint64_t dbuf_cookie; /* 0 8 */ uint32_t width; /* 8 4 */ uint32_t height; /* 12 4 */ uint32_t bpp; /* 16 4 */ uint32_t buffer_sz; /* 20 4 */ uint32_t flags; /* 24 4 */ grant_ref_t gref_directory_start; /* 28 4 */ /* size: 32, cachelines: 1, members: 7 */ /* last cacheline: 32 bytes */ }; struct xendispl_page_directory { grant_ref_t gref_dir_next_page; /* 0 4 */ grant_ref_t gref[1]; /* 4 4 */ /* size: 8, cachelines: 1, members: 2 */ /* last cacheline: 8 bytes */ }; struct xendispl_dbuf_destroy_req { uint64_t dbuf_cookie; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct xendispl_fb_attach_req { uint64_t dbuf_cookie; /* 0 8 */ uint64_t fb_cookie; /* 8 8 */ uint32_t width; /* 16 4 */ uint32_t height; /* 20 4 */ uint32_t pixel_format; /* 24 4 */ /* size: 28, cachelines: 1, members: 5 */ /* last cacheline: 28 bytes */ }; struct xendispl_fb_detach_req { uint64_t fb_cookie; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct xendispl_set_config_req { uint64_t fb_cookie; /* 0 8 */ uint32_t x; /* 8 4 */ uint32_t y; /* 12 4 */ uint32_t width; /* 16 4 */ uint32_t height; /* 20 4 */ uint32_t bpp; /* 24 4 */ /* size: 28, cachelines: 1, members: 6 */ /* last cacheline: 28 bytes */ }; struct xendispl_page_flip_req { uint64_t fb_cookie; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct xendispl_pg_flip_evt { uint64_t fb_cookie; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct xendispl_req { uint16_t id; /* 0 2 */ uint8_t operation; /* 2 1 */ uint8_t reserved[5]; /* 3 5 */ union { struct xendispl_dbuf_create_req dbuf_create; /* 32 */ struct xendispl_dbuf_destroy_req dbuf_destroy; /* 8 */ struct xendispl_fb_attach_req fb_attach; /* 28 */ struct xendispl_fb_detach_req fb_detach; /* 8 */ struct xendispl_set_config_req set_config; /* 28 */ struct xendispl_page_flip_req pg_flip; /* 8 */ uint8_t reserved[56]; /* 56 */ } op; /* 8 56 */ /* size: 64, cachelines: 1, members: 4 */ }; struct xendispl_resp { uint16_t id; /* 0 2 */ uint8_t operation; /* 2 1 */ int8_t status; /* 3 1 */ uint8_t reserved[60]; /* 4 60 */ /* size: 64, cachelines: 1, members: 4 */ }; struct xendispl_evt { uint16_t id; /* 0 2 */ uint8_t type; /* 2 1 */ uint8_t reserved[5]; /* 3 5 */ union { struct xendispl_pg_flip_evt pg_flip; /* 8 */ uint8_t reserved[56]; /* 56 */ } op; /* 8 56 */ /* size: 64, cachelines: 1, members: 4 */ };
struct xendispl_dbuf_create_req { uint64_t dbuf_cookie; /* 0 8 */ uint32_t width; /* 8 4 */ uint32_t height; /* 12 4 */ uint32_t bpp; /* 16 4 */ uint32_t buffer_sz; /* 20 4 */ uint32_t flags; /* 24 4 */ grant_ref_t gref_directory_start; /* 28 4 */ /* size: 32, cachelines: 1, members: 7 */ /* last cacheline: 32 bytes */ }; struct xendispl_page_directory { grant_ref_t gref_dir_next_page; /* 0 4 */ grant_ref_t gref[1]; /* 4 4 */ /* size: 8, cachelines: 1, members: 2 */ /* last cacheline: 8 bytes */ }; struct xendispl_dbuf_destroy_req { uint64_t dbuf_cookie; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct xendispl_fb_attach_req { uint64_t dbuf_cookie; /* 0 8 */ uint64_t fb_cookie; /* 8 8 */ uint32_t width; /* 16 4 */ uint32_t height; /* 20 4 */ uint32_t pixel_format; /* 24 4 */ /* size: 28, cachelines: 1, members: 5 */ /* last cacheline: 28 bytes */ }; struct xendispl_fb_detach_req { uint64_t fb_cookie; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct xendispl_set_config_req { uint64_t fb_cookie; /* 0 8 */ uint32_t x; /* 8 4 */ uint32_t y; /* 12 4 */ uint32_t width; /* 16 4 */ uint32_t height; /* 20 4 */ uint32_t bpp; /* 24 4 */ /* size: 28, cachelines: 1, members: 6 */ /* last cacheline: 28 bytes */ }; struct xendispl_page_flip_req { uint64_t fb_cookie; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct xendispl_pg_flip_evt { uint64_t fb_cookie; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct xendispl_req { uint16_t id; /* 0 2 */ uint8_t operation; /* 2 1 */ uint8_t reserved[5]; /* 3 5 */ union { struct xendispl_dbuf_create_req dbuf_create; /* 32 */ struct xendispl_dbuf_destroy_req dbuf_destroy; /* 8 */ struct xendispl_fb_attach_req fb_attach; /* 28 */ struct xendispl_fb_detach_req fb_detach; /* 8 */ struct xendispl_set_config_req set_config; /* 28 */ struct xendispl_page_flip_req pg_flip; /* 8 */ uint8_t reserved[56]; /* 56 */ } op; /* 8 56 */ /* size: 64, cachelines: 1, members: 4 */ }; struct xendispl_resp { uint16_t id; /* 0 2 */ uint8_t operation; /* 2 1 */ int8_t status; /* 3 1 */ uint8_t reserved[60]; /* 4 60 */ /* size: 64, cachelines: 1, members: 4 */ }; struct xendispl_evt { uint16_t id; /* 0 2 */ uint8_t type; /* 2 1 */ uint8_t reserved[5]; /* 3 5 */ union { struct xendispl_pg_flip_evt pg_flip; /* 8 */ uint8_t reserved[56]; /* 56 */ } op; /* 8 56 */ /* size: 64, cachelines: 1, members: 4 */ };
_______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel