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 
16 FILE_LICENCE ( BSD2_PATENT );
17 FILE_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 **/
33 typedef 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 **/
83 typedef
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 **/
103 typedef 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 **/
165 typedef
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
UINT64 AbsoluteMaxZ
The Absolute Maximum of the device on the z-axis.
Definition of EFI_ABSOLUTE_POINTER_STATE.
128 bit buffer containing a unique identifier value.
Definition: Base.h:216
Definition: efi.h:63
UINT64 AbsoluteMinZ
The Absolute Minimum of the device on the z-axis.
unsigned char BOOLEAN
EFI_EVENT WaitForInput
Event to use with WaitForEvent() to wait for input from the pointer device.
The EFI_ABSOLUTE_POINTER_PROTOCOL provides a set of services for a pointer device that can be used as...
unsigned int UINT32
Definition: ProcessorBind.h:99
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.
UINT64 AbsoluteMaxY
The Absolute Maximum of the device on the y -axis.
UINT64 AbsoluteMinX
The Absolute Minimum of the device on the x-axis.
UINT64 CurrentX
The unsigned position of the activation on the x axis.
#define OUT
Definition: mlx_utils.h:29
UINT64 AbsoluteMaxX
The Absolute Maximum of the device on the x-axis.
The following data values in the EFI_ABSOLUTE_POINTER_MODE interface are read-only and are changed by...
UINT64 AbsoluteMinY
The Absolute Minimum of the device on the y axis.
UINT32 Attributes
The following bits are set as needed (or'd together) to indicate the capabilities of the device suppo...
#define EFIAPI
UINT64 CurrentZ
The unsigned position of the activation on the z axis, or the pressure measurement.
EFI_GUID gEfiAbsolutePointerProtocolGuid
UINT32 ActiveButtons
Bits are set to 1 in this structure item to indicate that device buttons are active.
EFI_ABSOLUTE_POINTER_GET_STATE GetState
unsigned long long UINT64
Definition: ProcessorBind.h:97
UINT64 CurrentY
The unsigned position of the activation on the y axis.
#define IN
Definition: mlx_utils.h:28
FILE_SECBOOT(PERMITTED)
EFI_ABSOLUTE_POINTER_MODE * Mode
Pointer to EFI_ABSOLUTE_POINTER_MODE data.
RETURN_STATUS EFI_STATUS
Function return status for EFI API.
Definition: UefiBaseType.h:32
FILE_LICENCE(BSD2_PATENT)
EFI_ABSOLUTE_POINTER_RESET Reset
EFI_STATUS(EFIAPI * EFI_ABSOLUTE_POINTER_RESET)(IN EFI_ABSOLUTE_POINTER_PROTOCOL *This, IN BOOLEAN ExtendedVerification)
This function resets the pointer device hardware.