Root/
Source at commit 1319 created 12 years 11 months ago. By meklort, Makefile update | |
---|---|
1 | /*␊ |
2 | * @APPLE_LICENSE_HEADER_START@␊ |
3 | * ␊ |
4 | * Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved.␊ |
5 | * ␊ |
6 | * This file contains Original Code and/or Modifications of Original Code␊ |
7 | * as defined in and that are subject to the Apple Public Source License␊ |
8 | * Version 2.0 (the 'License'). You may not use this file except in␊ |
9 | * compliance with the License. Please obtain a copy of the License at␊ |
10 | * http://www.opensource.apple.com/apsl/ and read it before using this␊ |
11 | * file.␊ |
12 | * ␊ |
13 | * The Original Code and all software distributed under the License are␊ |
14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER␊ |
15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,␊ |
16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,␊ |
17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.␊ |
18 | * Please see the License for the specific language governing rights and␊ |
19 | * limitations under the License.␊ |
20 | * ␊ |
21 | * @APPLE_LICENSE_HEADER_END@␊ |
22 | */␊ |
23 | /******************************************************************************␊ |
24 | ␉ev_types.h␊ |
25 | ␉Data types for the events status driver.␊ |
26 | ␉This file contains public API.␊ |
27 | ␉mpaque 11Oct91␊ |
28 | ␉␊ |
29 | ␉Copyright 1991 NeXT Computer, Inc.␊ |
30 | ␉␊ |
31 | ␉Modified:␊ |
32 | ␉␊ |
33 | ******************************************************************************/␊ |
34 | ␊ |
35 | #ifndef _DEV_EV_TYPES_H␊ |
36 | #define _DEV_EV_TYPES_H␊ |
37 | ␊ |
38 | #include <mach/boolean.h>␊ |
39 | #include <IOKit/IOSharedLock.h>␊ |
40 | #include <IOKit/graphics/IOGraphicsTypes.h>␊ |
41 | ␊ |
42 | /* Shared memory versions */␊ |
43 | #define EVENT_SYSTEM_VERSION 2␊ |
44 | ␊ |
45 | /* Maximum length of SetMouseScaling arrays */␊ |
46 | #define NX_MAXMOUSESCALINGS 20␊ |
47 | ␊ |
48 | typedef struct evsioKeymapping␉␉/* Match old struct names in kernel */␊ |
49 | {␊ |
50 | int size;␊ |
51 | char *mapping;␊ |
52 | } NXKeyMapping;␊ |
53 | ␊ |
54 | typedef struct evsioMouseScaling␉/* Match old struct names in kernel */␊ |
55 | {␊ |
56 | int numScaleLevels;␊ |
57 | short scaleThresholds[NX_MAXMOUSESCALINGS];␊ |
58 | short scaleFactors[NX_MAXMOUSESCALINGS];␊ |
59 | } NXMouseScaling;␊ |
60 | ␊ |
61 | typedef enum {␊ |
62 | NX_OneButton,␊ |
63 | NX_LeftButton,␊ |
64 | NX_RightButton␊ |
65 | } NXMouseButton;␊ |
66 | ␊ |
67 | /*␊ |
68 | * NXEventSystemInfo() information structures. These are designed to␊ |
69 | * allow for expansion.␊ |
70 | *␊ |
71 | * The current implementation of NXEventSystemInfo() uses an ioctl call.␊ |
72 | * THIS WILL CHANGE.␊ |
73 | */␊ |
74 | ␊ |
75 | /*␊ |
76 | * Generic query max size and typedefs.␊ |
77 | *␊ |
78 | *␉The maximum size is selected to support anticipated future extensions␊ |
79 | *␉of request flavors. Certain flavors planned for future releases may ␊ |
80 | *␉require roughtly 800 ints to represent. We allow a little extra, in␊ |
81 | *␉case further growth is needed.␊ |
82 | */␊ |
83 | typedef int *NXEventSystemInfoType;␊ |
84 | #define NX_EVS_INFO_MAX␉␉(1024)␉/* Max array size */␊ |
85 | typedef int NXEventSystemInfoData[NX_EVS_INFO_MAX];␊ |
86 | ␊ |
87 | /* Event System Devices query */␊ |
88 | #define NX_EVS_DEVICE_MAX␉16␊ |
89 | ␊ |
90 | ␉/* Interface types */␊ |
91 | #define NX_EVS_DEVICE_INTERFACE_OTHER␉␉0␊ |
92 | #define NX_EVS_DEVICE_INTERFACE_NeXT␉␉1 // NeXT custom, in older sys␊ |
93 | #define NX_EVS_DEVICE_INTERFACE_ADB␉␉2 // NeXT/fruit keybds/mice␊ |
94 | #define NX_EVS_DEVICE_INTERFACE_ACE␉␉3 // For x86 PC keyboards␊ |
95 | #define NX_EVS_DEVICE_INTERFACE_SERIAL_ACE␉4 // For PC serial mice ␊ |
96 | #define NX_EVS_DEVICE_INTERFACE_BUS_ACE␉␉5 // For PC bus mice ␊ |
97 | #define NX_EVS_DEVICE_INTERFACE_HIL␉␉6 // For HIL hp keyboard ␊ |
98 | #define NX_EVS_DEVICE_INTERFACE_TYPE5␉␉7 // For Sun Type5 keyboard␊ |
99 | ␊ |
100 | /*␊ |
101 | * Note! if any new interface types are added above, the following␊ |
102 | * definition of the number of interfaces supported must reflect this.␊ |
103 | * This is used in the libkeymap project (storemap.c module) which needs␊ |
104 | * to be cognizant of the number of new devices coming online␊ |
105 | * via support for heterogeneous architecture platforms.␊ |
106 | * e.g., PCs, HP's HIL, Sun's Type5 keyboard,...␊ |
107 | */␊ |
108 | #define NUM_SUPPORTED_INTERFACES␉(NX_EVS_DEVICE_INTERFACE_TYPE5 + 1)␊ |
109 | ␉␉␉␉␉// Other, NeXT, ADB, ACE,...␊ |
110 | ␊ |
111 | ␉/* Device types */␊ |
112 | #define NX_EVS_DEVICE_TYPE_OTHER␉0␊ |
113 | #define NX_EVS_DEVICE_TYPE_KEYBOARD␉1␊ |
114 | #define NX_EVS_DEVICE_TYPE_MOUSE␉2␉// Relative position devices␊ |
115 | #define NX_EVS_DEVICE_TYPE_TABLET␉3␉// Absolute position devices␊ |
116 | ␊ |
117 | typedef struct {␊ |
118 | ␉int␉interface;␉/* NeXT, ADB, other */␊ |
119 | ␉int␉interface_addr;␉/* Device address on the interface */␊ |
120 | ␉int␉dev_type;␉/* Keyboard, mouse, tablet, other */␊ |
121 | ␉int␉id;␉␉/* manufacturer's device handler ID */␊ |
122 | } NXEventSystemDevice;␊ |
123 | ␊ |
124 | typedef struct {␊ |
125 | ␉NXEventSystemDevice␉dev[NX_EVS_DEVICE_MAX];␊ |
126 | } NXEventSystemDeviceList;␊ |
127 | ␊ |
128 | #define __OLD_NX_EVS_DEVICE_INFO␉␉1␊ |
129 | #define NX_EVS_DEVICE_INFO␉␉␉"Evs_EventDeviceInfo"␊ |
130 | #define NX_EVS_DEVICE_INFO_COUNT \␊ |
131 | ␉(sizeof (NXEventSystemDeviceList) / sizeof (int))␊ |
132 | ␊ |
133 | /*␊ |
134 | * Types used in evScreen protocol compliant operations.␊ |
135 | */␊ |
136 | ␊ |
137 | typedef enum {EVNOP, EVHIDE, EVSHOW, EVMOVE, EVLEVEL} EvCmd; /* Cursor state */␊ |
138 | ␊ |
139 | #define EV_SCREEN_MIN_BRIGHTNESS␉0␊ |
140 | #define EV_SCREEN_MAX_BRIGHTNESS␉64␊ |
141 | /* Scale should lie between MIN_BRIGHTNESS and MAX_BRIGHTNESS */␊ |
142 | #define EV_SCALE_BRIGHTNESS( scale, datum ) \␊ |
143 | ␉((((UInt32)(datum))*((UInt32)scale)) >> 6)␊ |
144 | ␊ |
145 | /*␊ |
146 | * Definition of a tick, as a time in milliseconds. This controls how␊ |
147 | * often the event system periodic jobs are run. All actual tick times␊ |
148 | * are derived from the nanosecond timer. These values are typically used␊ |
149 | * as part of computing mouse velocity for acceleration purposes.␊ |
150 | */␊ |
151 | #define EV_TICK_TIME␉␉16␉␉␉/* 16 milliseconds */␊ |
152 | #define EV_TICKS_PER_SEC␉(1000/EV_TICK_TIME)␉/* ~ 62 Hz */␊ |
153 | ␊ |
154 | /* Mouse Button bits, as passed from an EventSrc to the Event Driver */␊ |
155 | #define EV_RB␉␉␉(0x01)␊ |
156 | #define EV_LB␉␉␉(0x04)␊ |
157 | #define EV_MOUSEBUTTONMASK␉(EV_LB | EV_RB)␊ |
158 | ␊ |
159 | /* Tablet Pressure Constants, as passed from an EventSrc to the Event Driver */␊ |
160 | #define EV_MINPRESSURE 0␊ |
161 | #define EV_MAXPRESSURE 255␊ |
162 | ␊ |
163 | /* Cursor size in pixels */␊ |
164 | #define EV_CURSOR_WIDTH␉␉16␊ |
165 | #define EV_CURSOR_HEIGHT␉16␊ |
166 | ␊ |
167 | ␊ |
168 | #define kAppleOnboardGUID ␉0x0610000000000000ULL␊ |
169 | ␊ |
170 | #endif /* !_DEV_EV_TYPES_H */␊ |
171 | ␊ |
172 |