iPXE
SimplePointer.h
Go to the documentation of this file.
1 /** @file
2  Simple Pointer protocol from the UEFI 2.0 specification.
3 
4  Abstraction of a very simple pointer device like a mouse or trackball.
5 
6  Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
7  SPDX-License-Identifier: BSD-2-Clause-Patent
8 
9 **/
10 
11 #ifndef __SIMPLE_POINTER_H__
12 #define __SIMPLE_POINTER_H__
13 
14 FILE_LICENCE ( BSD2_PATENT );
15 
16 #define EFI_SIMPLE_POINTER_PROTOCOL_GUID \
17  { \
18  0x31878c87, 0xb75, 0x11d5, {0x9a, 0x4f, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \
19  }
20 
22 
23 //
24 // Data structures
25 //
26 typedef struct {
27  ///
28  /// The signed distance in counts that the pointer device has been moved along the x-axis.
29  ///
31  ///
32  /// The signed distance in counts that the pointer device has been moved along the y-axis.
33  ///
35  ///
36  /// The signed distance in counts that the pointer device has been moved along the z-axis.
37  ///
39  ///
40  /// If TRUE, then the left button of the pointer device is being
41  /// pressed. If FALSE, then the left button of the pointer device is not being pressed.
42  ///
44  ///
45  /// If TRUE, then the right button of the pointer device is being
46  /// pressed. If FALSE, then the right button of the pointer device is not being pressed.
47  ///
50 
51 typedef struct {
52  ///
53  /// The resolution of the pointer device on the x-axis in counts/mm.
54  /// If 0, then the pointer device does not support an x-axis.
55  ///
57  ///
58  /// The resolution of the pointer device on the y-axis in counts/mm.
59  /// If 0, then the pointer device does not support an x-axis.
60  ///
62  ///
63  /// The resolution of the pointer device on the z-axis in counts/mm.
64  /// If 0, then the pointer device does not support an x-axis.
65  ///
67  ///
68  /// TRUE if a left button is present on the pointer device. Otherwise FALSE.
69  ///
71  ///
72  /// TRUE if a right button is present on the pointer device. Otherwise FALSE.
73  ///
76 
77 /**
78  Resets the pointer device hardware.
79 
80  @param This A pointer to the EFI_SIMPLE_POINTER_PROTOCOL
81  instance.
82  @param ExtendedVerification Indicates that the driver may perform a more exhaustive
83  verification operation of the device during reset.
84 
85  @retval EFI_SUCCESS The device was reset.
86  @retval EFI_DEVICE_ERROR The device is not functioning correctly and could not be reset.
87 
88 **/
89 typedef
93  IN BOOLEAN ExtendedVerification
94  );
95 
96 /**
97  Retrieves the current state of a pointer device.
98 
99  @param This A pointer to the EFI_SIMPLE_POINTER_PROTOCOL
100  instance.
101  @param State A pointer to the state information on the pointer device.
102 
103  @retval EFI_SUCCESS The state of the pointer device was returned in State.
104  @retval EFI_NOT_READY The state of the pointer device has not changed since the last call to
105  GetState().
106  @retval EFI_DEVICE_ERROR A device error occurred while attempting to retrieve the pointer device's
107  current state.
108 
109 **/
110 typedef
115  );
116 
117 ///
118 /// The EFI_SIMPLE_POINTER_PROTOCOL provides a set of services for a pointer
119 /// device that can use used as an input device from an application written
120 /// to this specification. The services include the ability to reset the
121 /// pointer device, retrieve get the state of the pointer device, and
122 /// retrieve the capabilities of the pointer device.
123 ///
127  ///
128  /// Event to use with WaitForEvent() to wait for input from the pointer device.
129  ///
131  ///
132  /// Pointer to EFI_SIMPLE_POINTER_MODE data.
133  ///
135 };
136 
138 
139 #endif
INT32 RelativeMovementY
The signed distance in counts that the pointer device has been moved along the y-axis.
Definition: SimplePointer.h:34
BOOLEAN LeftButton
If TRUE, then the left button of the pointer device is being pressed.
Definition: SimplePointer.h:43
int INT32
Definition: ProcessorBind.h:99
UINT64 ResolutionY
The resolution of the pointer device on the y-axis in counts/mm.
Definition: SimplePointer.h:61
BOOLEAN LeftButton
TRUE if a left button is present on the pointer device.
Definition: SimplePointer.h:70
128 bit buffer containing a unique identifier value.
Definition: Base.h:215
VOID * EFI_EVENT
Handle to an event structure.
Definition: UefiBaseType.h:39
BOOLEAN RightButton
TRUE if a right button is present on the pointer device.
Definition: SimplePointer.h:74
unsigned char BOOLEAN
BOOLEAN RightButton
If TRUE, then the right button of the pointer device is being pressed.
Definition: SimplePointer.h:48
EFI_STATUS(EFIAPI * EFI_SIMPLE_POINTER_GET_STATE)(IN EFI_SIMPLE_POINTER_PROTOCOL *This, OUT EFI_SIMPLE_POINTER_STATE *State)
Retrieves the current state of a pointer device.
EFI_EVENT WaitForInput
Event to use with WaitForEvent() to wait for input from the pointer device.
UINT64 ResolutionZ
The resolution of the pointer device on the z-axis in counts/mm.
Definition: SimplePointer.h:66
#define OUT
Definition: mlx_utils.h:29
INT32 RelativeMovementZ
The signed distance in counts that the pointer device has been moved along the z-axis.
Definition: SimplePointer.h:38
EFI_STATUS(EFIAPI * EFI_SIMPLE_POINTER_RESET)(IN EFI_SIMPLE_POINTER_PROTOCOL *This, IN BOOLEAN ExtendedVerification)
Resets the pointer device hardware.
Definition: SimplePointer.h:91
INT32 RelativeMovementX
The signed distance in counts that the pointer device has been moved along the x-axis.
Definition: SimplePointer.h:30
#define EFIAPI
EFI_GUID gEfiSimplePointerProtocolGuid
EFI_SIMPLE_POINTER_MODE * Mode
Pointer to EFI_SIMPLE_POINTER_MODE data.
The EFI_SIMPLE_POINTER_PROTOCOL provides a set of services for a pointer device that can use used as ...
unsigned long long UINT64
Definition: ProcessorBind.h:96
#define IN
Definition: mlx_utils.h:28
UINT64 ResolutionX
The resolution of the pointer device on the x-axis in counts/mm.
Definition: SimplePointer.h:56
FILE_LICENCE(BSD2_PATENT)
EFI_SIMPLE_POINTER_RESET Reset
RETURN_STATUS EFI_STATUS
Function return status for EFI API.
Definition: UefiBaseType.h:31
EFI_SIMPLE_POINTER_GET_STATE GetState