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 - 2008, Intel Corporation. All rights reserved.<BR>
7  This program and the accompanying materials
8  are licensed and made available under the terms and conditions of the BSD License
9  which accompanies this distribution. The full text of the license may be found at
10  http://opensource.org/licenses/bsd-license.php
11 
12  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14 
15 **/
16 
17 #ifndef __SIMPLE_POINTER_H__
18 #define __SIMPLE_POINTER_H__
19 
20 FILE_LICENCE ( BSD3 );
21 
22 #define EFI_SIMPLE_POINTER_PROTOCOL_GUID \
23  { \
24  0x31878c87, 0xb75, 0x11d5, {0x9a, 0x4f, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \
25  }
26 
28 
29 //
30 // Data structures
31 //
32 typedef struct {
33  ///
34  /// The signed distance in counts that the pointer device has been moved along the x-axis.
35  ///
37  ///
38  /// The signed distance in counts that the pointer device has been moved along the y-axis.
39  ///
41  ///
42  /// The signed distance in counts that the pointer device has been moved along the z-axis.
43  ///
45  ///
46  /// If TRUE, then the left button of the pointer device is being
47  /// pressed. If FALSE, then the left button of the pointer device is not being pressed.
48  ///
50  ///
51  /// If TRUE, then the right button of the pointer device is being
52  /// pressed. If FALSE, then the right button of the pointer device is not being pressed.
53  ///
56 
57 typedef struct {
58  ///
59  /// The resolution of the pointer device on the x-axis in counts/mm.
60  /// If 0, then the pointer device does not support an x-axis.
61  ///
63  ///
64  /// The resolution of the pointer device on the y-axis in counts/mm.
65  /// If 0, then the pointer device does not support an x-axis.
66  ///
68  ///
69  /// The resolution of the pointer device on the z-axis in counts/mm.
70  /// If 0, then the pointer device does not support an x-axis.
71  ///
73  ///
74  /// TRUE if a left button is present on the pointer device. Otherwise FALSE.
75  ///
77  ///
78  /// TRUE if a right button is present on the pointer device. Otherwise FALSE.
79  ///
82 
83 /**
84  Resets the pointer device hardware.
85 
86  @param This A pointer to the EFI_SIMPLE_POINTER_PROTOCOL
87  instance.
88  @param ExtendedVerification Indicates that the driver may perform a more exhaustive
89  verification operation of the device during reset.
90 
91  @retval EFI_SUCCESS The device was reset.
92  @retval EFI_DEVICE_ERROR The device is not functioning correctly and could not be reset.
93 
94 **/
95 typedef
99  IN BOOLEAN ExtendedVerification
100  );
101 
102 /**
103  Retrieves the current state of a pointer device.
104 
105  @param This A pointer to the EFI_SIMPLE_POINTER_PROTOCOL
106  instance.
107  @param State A pointer to the state information on the pointer device.
108 
109  @retval EFI_SUCCESS The state of the pointer device was returned in State.
110  @retval EFI_NOT_READY The state of the pointer device has not changed since the last call to
111  GetState().
112  @retval EFI_DEVICE_ERROR A device error occurred while attempting to retrieve the pointer device's
113  current state.
114 
115 **/
116 typedef
121  );
122 
123 ///
124 /// The EFI_SIMPLE_POINTER_PROTOCOL provides a set of services for a pointer
125 /// device that can use used as an input device from an application written
126 /// to this specification. The services include the ability to reset the
127 /// pointer device, retrieve get the state of the pointer device, and
128 /// retrieve the capabilities of the pointer device.
129 ///
133  ///
134  /// Event to use with WaitForEvent() to wait for input from the pointer device.
135  ///
137  ///
138  /// Pointer to EFI_SIMPLE_POINTER_MODE data.
139  ///
141 };
142 
144 
145 #endif
INT32 RelativeMovementY
The signed distance in counts that the pointer device has been moved along the y-axis.
Definition: SimplePointer.h:40
BOOLEAN LeftButton
If TRUE, then the left button of the pointer device is being pressed.
Definition: SimplePointer.h:49
FILE_LICENCE(BSD3)
int INT32
Definition: ProcessorBind.h:57
UINT64 ResolutionY
The resolution of the pointer device on the y-axis in counts/mm.
Definition: SimplePointer.h:67
BOOLEAN LeftButton
TRUE if a left button is present on the pointer device.
Definition: SimplePointer.h:76
128 bit buffer containing a unique identifier value.
Definition: Base.h:263
VOID * EFI_EVENT
Handle to an event structure.
Definition: UefiBaseType.h:43
BOOLEAN RightButton
TRUE if a right button is present on the pointer device.
Definition: SimplePointer.h:80
unsigned char BOOLEAN
Definition: ProcessorBind.h:61
BOOLEAN RightButton
If TRUE, then the right button of the pointer device is being pressed.
Definition: SimplePointer.h:54
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:72
EFI_STATUS(EFIAPI * EFI_SIMPLE_POINTER_GET_STATE)(IN EFI_SIMPLE_POINTER_PROTOCOL *This, IN OUT EFI_SIMPLE_POINTER_STATE *State)
Retrieves the current state of a pointer device.
#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:44
EFI_STATUS(EFIAPI * EFI_SIMPLE_POINTER_RESET)(IN EFI_SIMPLE_POINTER_PROTOCOL *This, IN BOOLEAN ExtendedVerification)
Resets the pointer device hardware.
Definition: SimplePointer.h:97
INT32 RelativeMovementX
The signed distance in counts that the pointer device has been moved along the x-axis.
Definition: SimplePointer.h:36
#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:54
#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:62
EFI_SIMPLE_POINTER_RESET Reset
RETURN_STATUS EFI_STATUS
Function return status for EFI API.
Definition: UefiBaseType.h:35
EFI_SIMPLE_POINTER_GET_STATE GetState