2 Simple Pointer protocol from the UEFI 2.0 specification.
4 Abstraction of a very simple pointer device like a mouse or trackball.
6 Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
7 SPDX-License-Identifier: BSD-2-Clause-Patent
11 #ifndef __SIMPLE_POINTER_H__
12 #define __SIMPLE_POINTER_H__
14 #define EFI_SIMPLE_POINTER_PROTOCOL_GUID \
16 0x31878c87, 0xb75, 0x11d5, {0x9a, 0x4f, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \
19 typedef struct _EFI_SIMPLE_POINTER_PROTOCOL EFI_SIMPLE_POINTER_PROTOCOL
;
26 /// The signed distance in counts that the pointer device has been moved along the x-axis.
28 INT32 RelativeMovementX
;
30 /// The signed distance in counts that the pointer device has been moved along the y-axis.
32 INT32 RelativeMovementY
;
34 /// The signed distance in counts that the pointer device has been moved along the z-axis.
36 INT32 RelativeMovementZ
;
38 /// If TRUE, then the left button of the pointer device is being
39 /// pressed. If FALSE, then the left button of the pointer device is not being pressed.
43 /// If TRUE, then the right button of the pointer device is being
44 /// pressed. If FALSE, then the right button of the pointer device is not being pressed.
47 } EFI_SIMPLE_POINTER_STATE
;
51 /// The resolution of the pointer device on the x-axis in counts/mm.
52 /// If 0, then the pointer device does not support an x-axis.
56 /// The resolution of the pointer device on the y-axis in counts/mm.
57 /// If 0, then the pointer device does not support an x-axis.
61 /// The resolution of the pointer device on the z-axis in counts/mm.
62 /// If 0, then the pointer device does not support an x-axis.
66 /// TRUE if a left button is present on the pointer device. Otherwise FALSE.
70 /// TRUE if a right button is present on the pointer device. Otherwise FALSE.
73 } EFI_SIMPLE_POINTER_MODE
;
76 Resets the pointer device hardware.
78 @param This A pointer to the EFI_SIMPLE_POINTER_PROTOCOL
80 @param ExtendedVerification Indicates that the driver may perform a more exhaustive
81 verification operation of the device during reset.
83 @retval EFI_SUCCESS The device was reset.
84 @retval EFI_DEVICE_ERROR The device is not functioning correctly and could not be reset.
89 (EFIAPI
*EFI_SIMPLE_POINTER_RESET
)(
90 IN EFI_SIMPLE_POINTER_PROTOCOL
*This
,
91 IN BOOLEAN ExtendedVerification
95 Retrieves the current state of a pointer device.
97 @param This A pointer to the EFI_SIMPLE_POINTER_PROTOCOL
99 @param State A pointer to the state information on the pointer device.
101 @retval EFI_SUCCESS The state of the pointer device was returned in State.
102 @retval EFI_NOT_READY The state of the pointer device has not changed since the last call to
104 @retval EFI_DEVICE_ERROR A device error occurred while attempting to retrieve the pointer device's
110 (EFIAPI
*EFI_SIMPLE_POINTER_GET_STATE
)(
111 IN EFI_SIMPLE_POINTER_PROTOCOL
*This
,
112 OUT EFI_SIMPLE_POINTER_STATE
*State
116 /// The EFI_SIMPLE_POINTER_PROTOCOL provides a set of services for a pointer
117 /// device that can use used as an input device from an application written
118 /// to this specification. The services include the ability to reset the
119 /// pointer device, retrieve get the state of the pointer device, and
120 /// retrieve the capabilities of the pointer device.
122 struct _EFI_SIMPLE_POINTER_PROTOCOL
{
123 EFI_SIMPLE_POINTER_RESET Reset
;
124 EFI_SIMPLE_POINTER_GET_STATE GetState
;
126 /// Event to use with WaitForEvent() to wait for input from the pointer device.
128 EFI_EVENT WaitForInput
;
130 /// Pointer to EFI_SIMPLE_POINTER_MODE data.
132 EFI_SIMPLE_POINTER_MODE
*Mode
;
135 extern EFI_GUID gEfiSimplePointerProtocolGuid
;