As agreed on PV call PFA pahole results

On 01/06/2017 11:32 AM, Oleksandr Andrushchenko wrote:
From: Oleksandr Andrushchenko <oleksandr_andrushche...@epam.com>

Hi, all!

This series updates existing kbdif protocol documentation
and adds multi-touch support

Thank you,
Oleksandr Andrushchenko

Oleksandr Andrushchenko (2):
   xen/kbdif: update protocol documentation
   xen/kbdif: add multi-touch support

  xen/include/public/io/kbdif.h | 477 +++++++++++++++++++++++++++++++++++++++---
  1 file changed, 450 insertions(+), 27 deletions(-)


struct xenkbd_motion {
        uint8_t                    type;                 /*     0     1 */

        /* XXX 3 bytes hole, try to pack */

        int32_t                    rel_x;                /*     4     4 */
        int32_t                    rel_y;                /*     8     4 */
        int32_t                    rel_z;                /*    12     4 */

        /* size: 16, cachelines: 1, members: 4 */
        /* sum members: 13, holes: 1, sum holes: 3 */
        /* last cacheline: 16 bytes */
};
struct xenkbd_key {
        uint8_t                    type;                 /*     0     1 */
        uint8_t                    pressed;              /*     1     1 */

        /* XXX 2 bytes hole, try to pack */

        uint32_t                   keycode;              /*     4     4 */

        /* size: 8, cachelines: 1, members: 3 */
        /* sum members: 6, holes: 1, sum holes: 2 */
        /* last cacheline: 8 bytes */
};
struct xenkbd_position {
        uint8_t                    type;                 /*     0     1 */

        /* XXX 3 bytes hole, try to pack */

        int32_t                    abs_x;                /*     4     4 */
        int32_t                    abs_y;                /*     8     4 */
        int32_t                    rel_z;                /*    12     4 */

        /* size: 16, cachelines: 1, members: 4 */
        /* sum members: 13, holes: 1, sum holes: 3 */
        /* last cacheline: 16 bytes */
};
struct xenkbd_mtouch {
        uint8_t                    type;                 /*     0     1 */
        uint8_t                    event_type;           /*     1     1 */
        uint8_t                    contact_id;           /*     2     1 */
        uint8_t                    reserved[5];          /*     3     5 */
        union {
                struct {
                        int32_t    abs_x;                /*     8     4 */
                        int32_t    abs_y;                /*    12     4 */
                } pos;                                   /*           8 */
                struct {
                        uint32_t   major;                /*     8     4 */
                        uint32_t   minor;                /*    12     4 */
                } shape;                                 /*           8 */
                int16_t            orientation;          /*           2 */
        } u;                                             /*     8     8 */

        /* size: 16, cachelines: 1, members: 5 */
        /* last cacheline: 16 bytes */
};
struct xenkbd_page {
        uint32_t                   in_cons;              /*     0     4 */
        uint32_t                   in_prod;              /*     4     4 */
        uint32_t                   out_cons;             /*     8     4 */
        uint32_t                   out_prod;             /*    12     4 */

        /* size: 16, cachelines: 1, members: 4 */
        /* last cacheline: 16 bytes */
};
struct xenkbd_motion {
        uint8_t                    type;                 /*     0     1 */

        /* XXX 3 bytes hole, try to pack */

        int32_t                    rel_x;                /*     4     4 */
        int32_t                    rel_y;                /*     8     4 */
        int32_t                    rel_z;                /*    12     4 */

        /* size: 16, cachelines: 1, members: 4 */
        /* sum members: 13, holes: 1, sum holes: 3 */
        /* last cacheline: 16 bytes */
};
struct xenkbd_key {
        uint8_t                    type;                 /*     0     1 */
        uint8_t                    pressed;              /*     1     1 */

        /* XXX 2 bytes hole, try to pack */

        uint32_t                   keycode;              /*     4     4 */

        /* size: 8, cachelines: 1, members: 3 */
        /* sum members: 6, holes: 1, sum holes: 2 */
        /* last cacheline: 8 bytes */
};
struct xenkbd_position {
        uint8_t                    type;                 /*     0     1 */

        /* XXX 3 bytes hole, try to pack */

        int32_t                    abs_x;                /*     4     4 */
        int32_t                    abs_y;                /*     8     4 */
        int32_t                    rel_z;                /*    12     4 */

        /* size: 16, cachelines: 1, members: 4 */
        /* sum members: 13, holes: 1, sum holes: 3 */
        /* last cacheline: 16 bytes */
};
struct xenkbd_mtouch {
        uint8_t                    type;                 /*     0     1 */
        uint8_t                    event_type;           /*     1     1 */
        uint8_t                    contact_id;           /*     2     1 */
        uint8_t                    reserved[5];          /*     3     5 */
        union {
                struct {
                        int32_t    abs_x;                /*     8     4 */
                        int32_t    abs_y;                /*    12     4 */
                } pos;                                   /*           8 */
                struct {
                        uint32_t   major;                /*     8     4 */
                        uint32_t   minor;                /*    12     4 */
                } shape;                                 /*           8 */
                int16_t            orientation;          /*           2 */
        } u;                                             /*     8     8 */

        /* size: 16, cachelines: 1, members: 5 */
        /* last cacheline: 16 bytes */
};
struct xenkbd_page {
        uint32_t                   in_cons;              /*     0     4 */
        uint32_t                   in_prod;              /*     4     4 */
        uint32_t                   out_cons;             /*     8     4 */
        uint32_t                   out_prod;             /*    12     4 */

        /* size: 16, cachelines: 1, members: 4 */
        /* last cacheline: 16 bytes */
};
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

Reply via email to