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 - 2012, Intel Corporation. All rights reserved.<BR>
6  This program and the accompanying materials
7  are licensed and made available under the terms and conditions of the BSD License
8  which accompanies this distribution. The full text of the license may be found at
9  http://opensource.org/licenses/bsd-license.php
10 
11  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 
14 **/
15 
16 #ifndef __ABSOLUTE_POINTER_H__
17 #define __ABSOLUTE_POINTER_H__
18 
19 FILE_LICENCE ( BSD3 );
20 
21 
22 #define EFI_ABSOLUTE_POINTER_PROTOCOL_GUID \
23  { 0x8D59D32B, 0xC655, 0x4AE9, { 0x9B, 0x15, 0xF2, 0x59, 0x04, 0x99, 0x2A, 0x43 } }
24 
25 
27 
28 
29 //*******************************************************
30 // EFI_ABSOLUTE_POINTER_MODE
31 //*******************************************************
32 
33 
34 /**
35  The following data values in the EFI_ABSOLUTE_POINTER_MODE
36  interface are read-only and are changed by using the appropriate
37  interface functions.
38 **/
39 typedef struct {
40  UINT64 AbsoluteMinX; ///< The Absolute Minimum of the device on the x-axis
41  UINT64 AbsoluteMinY; ///< The Absolute Minimum of the device on the y axis.
42  UINT64 AbsoluteMinZ; ///< The Absolute Minimum of the device on the z-axis
43  UINT64 AbsoluteMaxX; ///< The Absolute Maximum of the device on the x-axis. If 0, and the
44  ///< AbsoluteMinX is 0, then the pointer device does not support a xaxis
45  UINT64 AbsoluteMaxY; ///< The Absolute Maximum of the device on the y -axis. If 0, and the
46  ///< AbsoluteMinX is 0, then the pointer device does not support a yaxis.
47  UINT64 AbsoluteMaxZ; ///< The Absolute Maximum of the device on the z-axis. If 0 , and the
48  ///< AbsoluteMinX is 0, then the pointer device does not support a zaxis
49  UINT32 Attributes; ///< The following bits are set as needed (or'd together) to indicate the
50  ///< capabilities of the device supported. The remaining bits are undefined
51  ///< and should be 0
53 
54 ///
55 /// If set, indicates this device supports an alternate button input.
56 ///
57 #define EFI_ABSP_SupportsAltActive 0x00000001
58 
59 ///
60 /// If set, indicates this device returns pressure data in parameter CurrentZ.
61 ///
62 #define EFI_ABSP_SupportsPressureAsZ 0x00000002
63 
64 
65 /**
66  This function resets the pointer device hardware. As part of
67  initialization process, the firmware/device will make a quick
68  but reasonable attempt to verify that the device is
69  functioning. If the ExtendedVerification flag is TRUE the
70  firmware may take an extended amount of time to verify the
71  device is operating on reset. Otherwise the reset operation is
72  to occur as quickly as possible. The hardware verification
73  process is not defined by this specification and is left up to
74  the platform firmware or driver to implement.
75 
76  @param This A pointer to the EFI_ABSOLUTE_POINTER_PROTOCOL
77  instance.
78 
79  @param ExtendedVerification Indicates that the driver may
80  perform a more exhaustive
81  verification operation of the
82  device during reset.
83 
84  @retval EFI_SUCCESS The device was reset.
85 
86  @retval EFI_DEVICE_ERROR The device is not functioning
87  correctly and could not be reset.
88 
89 **/
90 typedef
94  IN BOOLEAN ExtendedVerification
95 );
96 
97 ///
98 /// This bit is set if the touch sensor is active.
99 ///
100 #define EFI_ABSP_TouchActive 0x00000001
101 
102 ///
103 /// This bit is set if the alt sensor, such as pen-side button, is active
104 ///
105 #define EFI_ABS_AltActive 0x00000002
106 
107 
108 /**
109  Definition of EFI_ABSOLUTE_POINTER_STATE.
110 **/
111 typedef struct {
112  ///
113  /// The unsigned position of the activation on the x axis. If the AboluteMinX
114  /// and the AboluteMaxX fields of the EFI_ABSOLUTE_POINTER_MODE structure are
115  /// both 0, then this pointer device does not support an x-axis, and this field
116  /// must be ignored.
117  ///
119 
120  ///
121  /// The unsigned position of the activation on the y axis. If the AboluteMinY
122  /// and the AboluteMaxY fields of the EFI_ABSOLUTE_POINTER_MODE structure are
123  /// both 0, then this pointer device does not support an y-axis, and this field
124  /// must be ignored.
125  ///
127 
128  ///
129  /// The unsigned position of the activation on the z axis, or the pressure
130  /// measurement. If the AboluteMinZ and the AboluteMaxZ fields of the
131  /// EFI_ABSOLUTE_POINTER_MODE structure are both 0, then this pointer device
132  /// does not support an z-axis, and this field must be ignored.
133  ///
135 
136  ///
137  /// Bits are set to 1 in this structure item to indicate that device buttons are
138  /// active.
139  ///
142 
143 /**
144  The GetState() function retrieves the current state of a pointer
145  device. This includes information on the active state associated
146  with the pointer device and the current position of the axes
147  associated with the pointer device. If the state of the pointer
148  device has not changed since the last call to GetState(), then
149  EFI_NOT_READY is returned. If the state of the pointer device
150  has changed since the last call to GetState(), then the state
151  information is placed in State, and EFI_SUCCESS is returned. If
152  a device error occurs while attempting to retrieve the state
153  information, then EFI_DEVICE_ERROR is returned.
154 
155 
156  @param This A pointer to the EFI_ABSOLUTE_POINTER_PROTOCOL
157  instance.
158 
159  @param State A pointer to the state information on the
160  pointer device.
161 
162  @retval EFI_SUCCESS The state of the pointer device was
163  returned in State.
164 
165  @retval EFI_NOT_READY The state of the pointer device has not
166  changed since the last call to GetState().
167 
168  @retval EFI_DEVICE_ERROR A device error occurred while
169  attempting to retrieve the pointer
170  device's current state.
171 
172 **/
173 typedef
178 );
179 
180 
181 ///
182 /// The EFI_ABSOLUTE_POINTER_PROTOCOL provides a set of services
183 /// for a pointer device that can be used as an input device from an
184 /// application written to this specification. The services include
185 /// the ability to: reset the pointer device, retrieve the state of
186 /// the pointer device, and retrieve the capabilities of the pointer
187 /// device. The service also provides certain data items describing the device.
188 ///
192  ///
193  /// Event to use with WaitForEvent() to wait for input from the pointer device.
194  ///
196  ///
197  /// Pointer to EFI_ABSOLUTE_POINTER_MODE data.
198  ///
200 };
201 
202 
204 
205 
206 #endif
207 
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:263
UINT64 AbsoluteMinZ
The Absolute Minimum of the device on the z-axis.
VOID * EFI_EVENT
Handle to an event structure.
Definition: UefiBaseType.h:43
unsigned char BOOLEAN
Definition: ProcessorBind.h:61
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:56
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
EFI_STATUS(EFIAPI * EFI_ABSOLUTE_POINTER_GET_STATE)(IN EFI_ABSOLUTE_POINTER_PROTOCOL *This, IN OUT EFI_ABSOLUTE_POINTER_STATE *State)
The GetState() function retrieves the current state of a pointer device.
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:54
UINT64 CurrentY
The unsigned position of the activation on the y axis.
#define IN
Definition: mlx_utils.h:28
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:35
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.
FILE_LICENCE(BSD3)