include/xen/interface/io/kbdif.h
Source file repositories/reference/linux-study-clean/include/xen/interface/io/kbdif.h
File Facts
- System
- Linux kernel
- Corpus path
include/xen/interface/io/kbdif.h- Extension
.h- Size
- 23233 bytes
- Lines
- 544
- Domain
- Repository Root And Misc
- Bucket
- include
- Inferred role
- Repository Root And Misc: implementation source
- Status
- source implementation candidate
Why This File Exists
Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
struct xenkbd_motionstruct xenkbd_keystruct xenkbd_positionstruct xenkbd_mtouchstruct xenkbd_page
Annotated Snippet
struct xenkbd_motion {
uint8_t type;
int32_t rel_x;
int32_t rel_y;
int32_t rel_z;
};
/*
* Key event (includes pointer buttons)
* 0 1 2 3 octet
* +----------------+----------------+----------------+----------------+
* | _TYPE_KEY | pressed | reserved | 4
* +----------------+----------------+----------------+----------------+
* | keycode | 8
* +----------------+----------------+----------------+----------------+
* | reserved | 12
* +----------------+----------------+----------------+----------------+
* |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
* +----------------+----------------+----------------+----------------+
* | reserved | 40
* +----------------+----------------+----------------+----------------+
*
* pressed - uint8_t, 1 if pressed; 0 otherwise
* keycode - uint32_t, KEY_* from linux/input.h
*/
struct xenkbd_key {
uint8_t type;
uint8_t pressed;
uint32_t keycode;
};
/*
* Pointer absolute position event
* 0 1 2 3 octet
* +----------------+----------------+----------------+----------------+
* | _TYPE_POS | reserved | 4
* +----------------+----------------+----------------+----------------+
* | abs_x | 8
* +----------------+----------------+----------------+----------------+
* | abs_y | 12
* +----------------+----------------+----------------+----------------+
* | rel_z | 16
* +----------------+----------------+----------------+----------------+
* | reserved | 20
* +----------------+----------------+----------------+----------------+
* |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
* +----------------+----------------+----------------+----------------+
* | reserved | 40
* +----------------+----------------+----------------+----------------+
*
* abs_x - int32_t, absolute X position (in FB pixels)
* abs_y - int32_t, absolute Y position (in FB pixels)
* rel_z - int32_t, relative Z motion (wheel)
*/
struct xenkbd_position {
uint8_t type;
int32_t abs_x;
int32_t abs_y;
int32_t rel_z;
};
/*
* Multi-touch event and its sub-types
*
* All multi-touch event packets have common header:
*
* 0 1 2 3 octet
* +----------------+----------------+----------------+----------------+
* | _TYPE_MTOUCH | event_type | contact_id | reserved | 4
* +----------------+----------------+----------------+----------------+
* | reserved | 8
* +----------------+----------------+----------------+----------------+
*
* event_type - unt8_t, multi-touch event sub-type, XENKBD_MT_EV_???
* contact_id - unt8_t, ID of the contact
*
* Touch interactions can consist of one or more contacts.
* For each contact, a series of events is generated, starting
* with a down event, followed by zero or more motion events,
* and ending with an up event. Events relating to the same
* contact point can be identified by the ID of the sequence: contact ID.
* Contact ID may be reused after XENKBD_MT_EV_UP event and
* is in the [0; XENKBD_FIELD_NUM_CONTACTS - 1] range.
*
* For further information please refer to documentation on Wayland [1],
* Linux [2] and Windows [3] multi-touch support.
*
* [1] https://cgit.freedesktop.org/wayland/wayland/tree/protocol/wayland.xml
Annotation
- Detected declarations: `struct xenkbd_motion`, `struct xenkbd_key`, `struct xenkbd_position`, `struct xenkbd_mtouch`, `struct xenkbd_page`.
- Atlas domain: Repository Root And Misc / include.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.