xref: /haiku/src/add-ons/accelerants/intel_810/hooks.cpp (revision 1026b0a1a76dc88927bb8175c470f638dc5464ee)
1 /*
2  * Copyright 2008-2012 Haiku, Inc.  All rights reserved.
3  * Distributed under the terms of the MIT license.
4  *
5  * Authors:
6  *		Gerald Zajac
7  */
8 
9 
10 #include "accelerant.h"
11 
12 
13 extern "C" void*
14 get_accelerant_hook(uint32 feature, void* data)
15 {
16 	(void)data;
17 		// avoid compiler warning for unused arg
18 
19 	switch (feature) {
20 		// General
21 		case B_INIT_ACCELERANT:
22 			return (void*)InitAccelerant;
23 		case B_UNINIT_ACCELERANT:
24 			return (void*)UninitAccelerant;
25 		case B_CLONE_ACCELERANT:
26 			return (void*)CloneAccelerant;
27 		case B_ACCELERANT_CLONE_INFO_SIZE:
28 			return (void*)AccelerantCloneInfoSize;
29 		case B_GET_ACCELERANT_CLONE_INFO:
30 			return (void*)GetAccelerantCloneInfo;
31 		case B_GET_ACCELERANT_DEVICE_INFO:
32 			return (void*)GetAccelerantDeviceInfo;
33 		case B_ACCELERANT_RETRACE_SEMAPHORE:
34 			return NULL;
35 
36 		// Mode Configuration
37 		case B_ACCELERANT_MODE_COUNT:
38 			return (void*)AccelerantModeCount;
39 		case B_GET_MODE_LIST:
40 			return (void*)GetModeList;
41 		case B_PROPOSE_DISPLAY_MODE:
42 			return (void*)ProposeDisplayMode;
43 		case B_SET_DISPLAY_MODE:
44 			return (void*)SetDisplayMode;
45 		case B_GET_DISPLAY_MODE:
46 			return (void*)GetDisplayMode;
47 #ifdef __HAIKU__
48 		case B_GET_EDID_INFO:
49 			return (void*)GetEdidInfo;
50 #endif
51 		case B_GET_FRAME_BUFFER_CONFIG:
52 			return (void*)GetFrameBufferConfig;
53 		case B_GET_PIXEL_CLOCK_LIMITS:
54 			return (void*)GetPixelClockLimits;
55 		case B_MOVE_DISPLAY:
56 			return (void*)MoveDisplay;
57 		case B_SET_INDEXED_COLORS:
58 			return (void*)(I810_SetIndexedColors);
59 		case B_GET_TIMING_CONSTRAINTS:
60 			return NULL;
61 
62 		// DPMS
63 		case B_DPMS_CAPABILITIES:
64 			return (void*)(I810_DPMSCapabilities);
65 		case B_DPMS_MODE:
66 			return (void*)(I810_GetDPMSMode);
67 		case B_SET_DPMS_MODE:
68 			return (void*)(I810_SetDPMSMode);
69 
70 		// Engine Management
71 		case B_ACCELERANT_ENGINE_COUNT:
72 			return (void*)AccelerantEngineCount;
73 		case B_ACQUIRE_ENGINE:
74 			return (void*)AcquireEngine;
75 		case B_RELEASE_ENGINE:
76 			return (void*)ReleaseEngine;
77 		case B_WAIT_ENGINE_IDLE:
78 			return (void*)WaitEngineIdle;
79 		case B_GET_SYNC_TOKEN:
80 			return (void*)GetSyncToken;
81 		case B_SYNC_TO_TOKEN:
82 			return (void*)SyncToToken;
83 	}
84 
85 	return NULL;	// Return null pointer for any feature not handled above
86 }
87