iPXE
AbsolutePointer.h
Go to the documentation of this file.
1/** @file
2 The file provides services that allow information about an
3 absolute pointer device to be retrieved.
4
5 Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
6 SPDX-License-Identifier: BSD-2-Clause-Patent
7
8 @par Revision Reference:
9 This Protocol was introduced in UEFI Specification 2.3.
10
11**/
12
13#ifndef __ABSOLUTE_POINTER_H__
14#define __ABSOLUTE_POINTER_H__
15
16FILE_LICENCE ( BSD2_PATENT );
17FILE_SECBOOT ( PERMITTED );
18
19#define EFI_ABSOLUTE_POINTER_PROTOCOL_GUID \
20 { 0x8D59D32B, 0xC655, 0x4AE9, { 0x9B, 0x15, 0xF2, 0x59, 0x04, 0x99, 0x2A, 0x43 } }
21
23
24// *******************************************************
25// EFI_ABSOLUTE_POINTER_MODE
26// *******************************************************
27
28/**
29 The following data values in the EFI_ABSOLUTE_POINTER_MODE
30 interface are read-only and are changed by using the appropriate
31 interface functions.
32**/
33typedef struct {
34 UINT64 AbsoluteMinX; ///< The Absolute Minimum of the device on the x-axis
35 UINT64 AbsoluteMinY; ///< The Absolute Minimum of the device on the y axis.
36 UINT64 AbsoluteMinZ; ///< The Absolute Minimum of the device on the z-axis
37 UINT64 AbsoluteMaxX; ///< The Absolute Maximum of the device on the x-axis. If 0, and the
38 ///< AbsoluteMinX is 0, then the pointer device does not support a xaxis
39 UINT64 AbsoluteMaxY; ///< The Absolute Maximum of the device on the y -axis. If 0, and the
40 ///< AbsoluteMinX is 0, then the pointer device does not support a yaxis.
41 UINT64 AbsoluteMaxZ; ///< The Absolute Maximum of the device on the z-axis. If 0 , and the
42 ///< AbsoluteMinX is 0, then the pointer device does not support a zaxis
43 UINT32 Attributes; ///< The following bits are set as needed (or'd together) to indicate the
44 ///< capabilities of the device supported. The remaining bits are undefined
45 ///< and should be 0
47
48///
49/// If set, indicates this device supports an alternate button input.
50///
51#define EFI_ABSP_SupportsAltActive 0x00000001
52
53///
54/// If set, indicates this device returns pressure data in parameter CurrentZ.
55///
56#define EFI_ABSP_SupportsPressureAsZ 0x00000002
57
58/**
59 This function resets the pointer device hardware. As part of
60 initialization process, the firmware/device will make a quick
61 but reasonable attempt to verify that the device is
62 functioning. If the ExtendedVerification flag is TRUE the
63 firmware may take an extended amount of time to verify the
64 device is operating on reset. Otherwise the reset operation is
65 to occur as quickly as possible. The hardware verification
66 process is not defined by this specification and is left up to
67 the platform firmware or driver to implement.
68
69 @param This A pointer to the EFI_ABSOLUTE_POINTER_PROTOCOL
70 instance.
71
72 @param ExtendedVerification Indicates that the driver may
73 perform a more exhaustive
74 verification operation of the
75 device during reset.
76
77 @retval EFI_SUCCESS The device was reset.
78
79 @retval EFI_DEVICE_ERROR The device is not functioning
80 correctly and could not be reset.
81
82**/
83typedef
87 IN BOOLEAN ExtendedVerification
88 );
89
90///
91/// This bit is set if the touch sensor is active.
92///
93#define EFI_ABSP_TouchActive 0x00000001
94
95///
96/// This bit is set if the alt sensor, such as pen-side button, is active
97///
98#define EFI_ABS_AltActive 0x00000002
99
100/**
101 Definition of EFI_ABSOLUTE_POINTER_STATE.
102**/
103typedef struct {
104 ///
105 /// The unsigned position of the activation on the x axis. If the AboluteMinX
106 /// and the AboluteMaxX fields of the EFI_ABSOLUTE_POINTER_MODE structure are
107 /// both 0, then this pointer device does not support an x-axis, and this field
108 /// must be ignored.
109 ///
111
112 ///
113 /// The unsigned position of the activation on the y axis. If the AboluteMinY
114 /// and the AboluteMaxY fields of the EFI_ABSOLUTE_POINTER_MODE structure are
115 /// both 0, then this pointer device does not support an y-axis, and this field
116 /// must be ignored.
117 ///
119
120 ///
121 /// The unsigned position of the activation on the z axis, or the pressure
122 /// measurement. If the AboluteMinZ and the AboluteMaxZ fields of the
123 /// EFI_ABSOLUTE_POINTER_MODE structure are both 0, then this pointer device
124 /// does not support an z-axis, and this field must be ignored.
125 ///
127
128 ///
129 /// Bits are set to 1 in this structure item to indicate that device buttons are
130 /// active.
131 ///
134
135/**
136 The GetState() function retrieves the current state of a pointer
137 device. This includes information on the active state associated
138 with the pointer device and the current position of the axes
139 associated with the pointer device. If the state of the pointer
140 device has not changed since the last call to GetState(), then
141 EFI_NOT_READY is returned. If the state of the pointer device
142 has changed since the last call to GetState(), then the state
143 information is placed in State, and EFI_SUCCESS is returned. If
144 a device error occurs while attempting to retrieve the state
145 information, then EFI_DEVICE_ERROR is returned.
146
147
148 @param This A pointer to the EFI_ABSOLUTE_POINTER_PROTOCOL
149 instance.
150
151 @param State A pointer to the state information on the
152 pointer device.
153
154 @retval EFI_SUCCESS The state of the pointer device was
155 returned in State.
156
157 @retval EFI_NOT_READY The state of the pointer device has not
158 changed since the last call to GetState().
159
160 @retval EFI_DEVICE_ERROR A device error occurred while
161 attempting to retrieve the pointer
162 device's current state.
163
164**/
165typedef
170 );
171
172///
173/// The EFI_ABSOLUTE_POINTER_PROTOCOL provides a set of services
174/// for a pointer device that can be used as an input device from an
175/// application written to this specification. The services include
176/// the ability to: reset the pointer device, retrieve the state of
177/// the pointer device, and retrieve the capabilities of the pointer
178/// device. The service also provides certain data items describing the device.
179///
183 ///
184 /// Event to use with WaitForEvent() to wait for input from the pointer device.
185 ///
187 ///
188 /// Pointer to EFI_ABSOLUTE_POINTER_MODE data.
189 ///
191};
192
194
195#endif
unsigned char BOOLEAN
Logical Boolean.
unsigned long long UINT64
8-byte unsigned value.
#define EFIAPI
unsigned int UINT32
4-byte unsigned value.
struct _EFI_ABSOLUTE_POINTER_PROTOCOL EFI_ABSOLUTE_POINTER_PROTOCOL
EFI_STATUS(EFIAPI * EFI_ABSOLUTE_POINTER_GET_STATE)(IN EFI_ABSOLUTE_POINTER_PROTOCOL *This, OUT EFI_ABSOLUTE_POINTER_STATE *State)
The GetState() function retrieves the current state of a pointer device.
EFI_GUID gEfiAbsolutePointerProtocolGuid
EFI_STATUS(EFIAPI * EFI_ABSOLUTE_POINTER_RESET)(IN EFI_ABSOLUTE_POINTER_PROTOCOL *This, IN BOOLEAN ExtendedVerification)
This function resets the pointer device hardware.
RETURN_STATUS EFI_STATUS
Function return status for EFI API.
GUID EFI_GUID
128-bit buffer containing a unique identifier value.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
Definition compiler.h:896
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
Definition compiler.h:926
#define EFI_EVENT
Definition efi.h:54
#define IN
Definition mlx_utils.h:28
#define OUT
Definition mlx_utils.h:29
The following data values in the EFI_ABSOLUTE_POINTER_MODE interface are read-only and are changed by...
UINT32 Attributes
The following bits are set as needed (or'd together) to indicate the capabilities of the device suppo...
UINT64 AbsoluteMinX
The Absolute Minimum of the device on the x-axis.
UINT64 AbsoluteMinZ
The Absolute Minimum of the device on the z-axis.
UINT64 AbsoluteMaxZ
The Absolute Maximum of the device on the z-axis.
UINT64 AbsoluteMaxY
The Absolute Maximum of the device on the y -axis.
UINT64 AbsoluteMinY
The Absolute Minimum of the device on the y axis.
UINT64 AbsoluteMaxX
The Absolute Maximum of the device on the x-axis.
Definition of EFI_ABSOLUTE_POINTER_STATE.
UINT64 CurrentX
The unsigned position of the activation on the x axis.
UINT32 ActiveButtons
Bits are set to 1 in this structure item to indicate that device buttons are active.
UINT64 CurrentZ
The unsigned position of the activation on the z axis, or the pressure measurement.
UINT64 CurrentY
The unsigned position of the activation on the y axis.
The EFI_ABSOLUTE_POINTER_PROTOCOL provides a set of services for a pointer device that can be used as...
EFI_ABSOLUTE_POINTER_GET_STATE GetState
EFI_ABSOLUTE_POINTER_MODE * Mode
Pointer to EFI_ABSOLUTE_POINTER_MODE data.
EFI_ABSOLUTE_POINTER_RESET Reset
EFI_EVENT WaitForInput
Event to use with WaitForEvent() to wait for input from the pointer device.