]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - MdePkg/Include/Protocol/SimplePointer.h
MdePkg: Fix coding style issues
[mirror_edk2.git] / MdePkg / Include / Protocol / SimplePointer.h
... / ...
CommitLineData
1/** @file\r
2 Simple Pointer protocol from the UEFI 2.0 specification.\r
3\r
4 Abstraction of a very simple pointer device like a mouse or trackball.\r
5\r
6 Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
7 This program and the accompanying materials\r
8 are licensed and made available under the terms and conditions of the BSD License\r
9 which accompanies this distribution. The full text of the license may be found at\r
10 http://opensource.org/licenses/bsd-license.php\r
11\r
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
14\r
15**/\r
16\r
17#ifndef __SIMPLE_POINTER_H__\r
18#define __SIMPLE_POINTER_H__\r
19\r
20#define EFI_SIMPLE_POINTER_PROTOCOL_GUID \\r
21 { \\r
22 0x31878c87, 0xb75, 0x11d5, {0x9a, 0x4f, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \\r
23 }\r
24\r
25typedef struct _EFI_SIMPLE_POINTER_PROTOCOL EFI_SIMPLE_POINTER_PROTOCOL;\r
26\r
27//\r
28// Data structures\r
29//\r
30typedef struct {\r
31 ///\r
32 /// The signed distance in counts that the pointer device has been moved along the x-axis.\r
33 ///\r
34 INT32 RelativeMovementX;\r
35 ///\r
36 /// The signed distance in counts that the pointer device has been moved along the y-axis.\r
37 ///\r
38 INT32 RelativeMovementY;\r
39 ///\r
40 /// The signed distance in counts that the pointer device has been moved along the z-axis.\r
41 ///\r
42 INT32 RelativeMovementZ;\r
43 ///\r
44 /// If TRUE, then the left button of the pointer device is being\r
45 /// pressed. If FALSE, then the left button of the pointer device is not being pressed.\r
46 ///\r
47 BOOLEAN LeftButton;\r
48 ///\r
49 /// If TRUE, then the right button of the pointer device is being\r
50 /// pressed. If FALSE, then the right button of the pointer device is not being pressed.\r
51 ///\r
52 BOOLEAN RightButton;\r
53} EFI_SIMPLE_POINTER_STATE;\r
54\r
55typedef struct {\r
56 ///\r
57 /// The resolution of the pointer device on the x-axis in counts/mm.\r
58 /// If 0, then the pointer device does not support an x-axis.\r
59 ///\r
60 UINT64 ResolutionX;\r
61 ///\r
62 /// The resolution of the pointer device on the y-axis in counts/mm.\r
63 /// If 0, then the pointer device does not support an x-axis.\r
64 ///\r
65 UINT64 ResolutionY;\r
66 ///\r
67 /// The resolution of the pointer device on the z-axis in counts/mm.\r
68 /// If 0, then the pointer device does not support an x-axis.\r
69 ///\r
70 UINT64 ResolutionZ;\r
71 ///\r
72 /// TRUE if a left button is present on the pointer device. Otherwise FALSE.\r
73 ///\r
74 BOOLEAN LeftButton;\r
75 ///\r
76 /// TRUE if a right button is present on the pointer device. Otherwise FALSE.\r
77 ///\r
78 BOOLEAN RightButton;\r
79} EFI_SIMPLE_POINTER_MODE;\r
80\r
81/**\r
82 Resets the pointer device hardware.\r
83\r
84 @param This A pointer to the EFI_SIMPLE_POINTER_PROTOCOL\r
85 instance.\r
86 @param ExtendedVerification Indicates that the driver may perform a more exhaustive\r
87 verification operation of the device during reset.\r
88\r
89 @retval EFI_SUCCESS The device was reset.\r
90 @retval EFI_DEVICE_ERROR The device is not functioning correctly and could not be reset.\r
91\r
92**/\r
93typedef\r
94EFI_STATUS\r
95(EFIAPI *EFI_SIMPLE_POINTER_RESET)(\r
96 IN EFI_SIMPLE_POINTER_PROTOCOL *This,\r
97 IN BOOLEAN ExtendedVerification\r
98 );\r
99\r
100/**\r
101 Retrieves the current state of a pointer device.\r
102\r
103 @param This A pointer to the EFI_SIMPLE_POINTER_PROTOCOL\r
104 instance.\r
105 @param State A pointer to the state information on the pointer device.\r
106\r
107 @retval EFI_SUCCESS The state of the pointer device was returned in State.\r
108 @retval EFI_NOT_READY The state of the pointer device has not changed since the last call to\r
109 GetState().\r
110 @retval EFI_DEVICE_ERROR A device error occurred while attempting to retrieve the pointer device's\r
111 current state.\r
112\r
113**/\r
114typedef\r
115EFI_STATUS\r
116(EFIAPI *EFI_SIMPLE_POINTER_GET_STATE)(\r
117 IN EFI_SIMPLE_POINTER_PROTOCOL *This,\r
118 IN OUT EFI_SIMPLE_POINTER_STATE *State\r
119 );\r
120\r
121///\r
122/// The EFI_SIMPLE_POINTER_PROTOCOL provides a set of services for a pointer\r
123/// device that can use used as an input device from an application written\r
124/// to this specification. The services include the ability to reset the\r
125/// pointer device, retrieve get the state of the pointer device, and\r
126/// retrieve the capabilities of the pointer device.\r
127///\r
128struct _EFI_SIMPLE_POINTER_PROTOCOL {\r
129 EFI_SIMPLE_POINTER_RESET Reset;\r
130 EFI_SIMPLE_POINTER_GET_STATE GetState;\r
131 ///\r
132 /// Event to use with WaitForEvent() to wait for input from the pointer device.\r
133 ///\r
134 EFI_EVENT WaitForInput;\r
135 ///\r
136 /// Pointer to EFI_SIMPLE_POINTER_MODE data.\r
137 ///\r
138 EFI_SIMPLE_POINTER_MODE *Mode;\r
139};\r
140\r
141extern EFI_GUID gEfiSimplePointerProtocolGuid;\r
142\r
143#endif\r