32a2861391df7f6964908c9d26fcd1ba2067bb25
[org.ibex.core.git] / src / org / xwt / plat / DarwinWeakSymbols.h
1
2 // this file contains declarations, initializations, and macros for
3 // all symbols that use Mac OS Frameworks.  We dynamically load these
4 // libraries at runtime since it's cumbersome to lug around 100mb of
5 // libraries on the build machines (which usually don't run Mac OS X).
6
7 static const mach_header* CarbonHandle = NULL;
8 static const mach_header* AGLHandle = NULL;
9 static const mach_header* SCHandle = NULL;
10
11 static void* load_weak(char* symbol) {
12   if (CarbonHandle == NULL) CarbonHandle = NSAddImage("/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon", NSADDIMAGE_OPTION_NONE);
13   if (AGLHandle == NULL) AGLHandle = NSAddImage("/System/Library/Frameworks/AGL.framework/Versions/A/AGL", NSADDIMAGE_OPTION_NONE);
14   if (SCHandle == NULL) SCHandle = NSAddImage("/System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration", NSADDIMAGE_OPTION_NONE);
15   void* ret = NSAddressOfSymbol(NSLookupSymbolInImage(CarbonHandle, symbol, NSLOOKUPSYMBOLINIMAGE_OPTION_BIND));
16   if (ret == NULL) ret = NSAddressOfSymbol(NSLookupSymbolInImage(AGLHandle, symbol, NSLOOKUPSYMBOLINIMAGE_OPTION_BIND));
17   if (ret == NULL) ret = NSAddressOfSymbol(NSLookupSymbolInImage(SCHandle, symbol, NSLOOKUPSYMBOLINIMAGE_OPTION_BIND));
18   printf("linking symbol %s to address %x\n", symbol, ret);
19   fflush(stdout);
20   return ret;
21 }
22
23 #define declare_weak(symbol) typeof(symbol) *symbol##_weak = NULL
24
25 //declare_weak(setBackingType);
26 //#define setBackingType (*setBackingType_weak)
27 declare_weak(AEGetNthPtr);
28 #define AEGetNthPtr (*AEGetNthPtr_weak)
29 declare_weak(CFArrayGetCount);
30 #define CFArrayGetCount (*CFArrayGetCount_weak)
31 declare_weak(CFArrayGetTypeID);
32 #define CFArrayGetTypeID (*CFArrayGetTypeID_weak)
33 declare_weak(CFArrayGetValueAtIndex);
34 #define CFArrayGetValueAtIndex (*CFArrayGetValueAtIndex_weak)
35 declare_weak(CFDictionaryGetValue);
36 #define CFDictionaryGetValue (*CFDictionaryGetValue_weak)
37 declare_weak(CFGetTypeID);
38 #define CFGetTypeID (*CFGetTypeID_weak)
39 declare_weak(CFNumberGetTypeID);
40 #define CFNumberGetTypeID (*CFNumberGetTypeID_weak)
41 declare_weak(CFNumberGetValue);
42 #define CFNumberGetValue (*CFNumberGetValue_weak)
43 declare_weak(CFRelease);
44 #define CFRelease (*CFRelease_weak)
45 declare_weak(CFStringCompare);
46 #define CFStringCompare (*CFStringCompare_weak)
47 declare_weak(CFStringCreateWithCString);
48 #define CFStringCreateWithCString (*CFStringCreateWithCString_weak)
49 declare_weak(CFStringCreateWithCharacters);
50 #define CFStringCreateWithCharacters (*CFStringCreateWithCharacters_weak)
51 declare_weak(CFStringGetCharacters);
52 #define CFStringGetCharacters (*CFStringGetCharacters_weak)
53 declare_weak(CFStringGetLength);
54 #define CFStringGetLength (*CFStringGetLength_weak)
55 declare_weak(CFStringGetTypeID);
56 #define CFStringGetTypeID (*CFStringGetTypeID_weak)
57 declare_weak(CFURLCopyScheme);
58 #define CFURLCopyScheme (*CFURLCopyScheme_weak)
59 declare_weak(CFURLCreateWithString);
60 #define CFURLCreateWithString (*CFURLCreateWithString_weak)
61 declare_weak(CGDisplayPixelsHigh);
62 #define CGDisplayPixelsHigh (*CGDisplayPixelsHigh_weak)
63 declare_weak(CGDisplayPixelsWide);
64 #define CGDisplayPixelsWide (*CGDisplayPixelsWide_weak)
65 declare_weak(CallNextEventHandler);
66 #define CallNextEventHandler (*CallNextEventHandler_weak)
67 declare_weak(CollapseWindow);
68 #define CollapseWindow (*CollapseWindow_weak)
69 declare_weak(ConstrainWindowToScreen);
70 #define ConstrainWindowToScreen (*ConstrainWindowToScreen_weak)
71 declare_weak(CreateEvent);
72 #define CreateEvent (*CreateEvent_weak)
73 declare_weak(CreateNewWindow);
74 #define CreateNewWindow (*CreateNewWindow_weak)
75 declare_weak(DisposeEventHandlerUPP);
76 #define DisposeEventHandlerUPP (*DisposeEventHandlerUPP_weak)
77 declare_weak(DisposeNavEventUPP);
78 #define DisposeNavEventUPP (*DisposeNavEventUPP_weak)
79 declare_weak(DisposeWindow);
80 #define DisposeWindow (*DisposeWindow_weak)
81 declare_weak(ExitToShell);
82 #define ExitToShell (*ExitToShell_weak)
83 declare_weak(FSRefMakePath);
84 #define FSRefMakePath (*FSRefMakePath_weak)
85 declare_weak(FrontWindow);
86 #define FrontWindow (*FrontWindow_weak)
87 declare_weak(Gestalt);
88 #define Gestalt (*Gestalt_weak)
89 declare_weak(GetApplicationEventTarget);
90 #define GetApplicationEventTarget (*GetApplicationEventTarget_weak)
91 declare_weak(GetCurrentProcess);
92 #define GetCurrentProcess (*GetCurrentProcess_weak)
93 declare_weak(GetCurrentScrap);
94 #define GetCurrentScrap (*GetCurrentScrap_weak)
95 declare_weak(GetEventClass);
96 #define GetEventClass (*GetEventClass_weak)
97 declare_weak(GetEventKind);
98 #define GetEventKind (*GetEventKind_weak)
99 declare_weak(GetEventParameter);
100 #define GetEventParameter (*GetEventParameter_weak)
101 declare_weak(GetMainEventQueue);
102 #define GetMainEventQueue (*GetMainEventQueue_weak)
103 declare_weak(GetScrapFlavorData);
104 #define GetScrapFlavorData (*GetScrapFlavorData_weak)
105 declare_weak(GetScrapFlavorSize);
106 #define GetScrapFlavorSize (*GetScrapFlavorSize_weak)
107 declare_weak(GetWindowBounds);
108 #define GetWindowBounds (*GetWindowBounds_weak)
109 declare_weak(GetWindowEventTarget);
110 #define GetWindowEventTarget (*GetWindowEventTarget_weak)
111 declare_weak(GetWindowPort);
112 #define GetWindowPort (*GetWindowPort_weak)
113 declare_weak(HideWindow);
114 #define HideWindow (*HideWindow_weak)
115 declare_weak(InstallEventHandler);
116 #define InstallEventHandler (*InstallEventHandler_weak)
117 declare_weak(IsWindowCollapsed);
118 #define IsWindowCollapsed (*IsWindowCollapsed_weak)
119 declare_weak(LSOpenCFURLRef);
120 #define LSOpenCFURLRef (*LSOpenCFURLRef_weak)
121 declare_weak(NavCreateGetFileDialog);
122 #define NavCreateGetFileDialog (*NavCreateGetFileDialog_weak)
123 declare_weak(NavCreatePutFileDialog);
124 #define NavCreatePutFileDialog (*NavCreatePutFileDialog_weak)
125 declare_weak(NavDialogDispose);
126 #define NavDialogDispose (*NavDialogDispose_weak)
127 declare_weak(NavDialogGetReply);
128 #define NavDialogGetReply (*NavDialogGetReply_weak)
129 declare_weak(NavDialogGetUserAction);
130 #define NavDialogGetUserAction (*NavDialogGetUserAction_weak)
131 declare_weak(NavDialogRun);
132 #define NavDialogRun (*NavDialogRun_weak)
133 declare_weak(NavDisposeReply);
134 #define NavDisposeReply (*NavDisposeReply_weak)
135 declare_weak(NavGetDefaultDialogCreationOptions);
136 #define NavGetDefaultDialogCreationOptions (*NavGetDefaultDialogCreationOptions_weak)
137 declare_weak(NewEventHandlerUPP);
138 #define NewEventHandlerUPP (*NewEventHandlerUPP_weak)
139 declare_weak(NewNavEventUPP);
140 #define NewNavEventUPP (*NewNavEventUPP_weak)
141 declare_weak(PostEventToQueue);
142 #define PostEventToQueue (*PostEventToQueue_weak)
143 declare_weak(PutScrapFlavor);
144 #define PutScrapFlavor (*PutScrapFlavor_weak)
145 declare_weak(QuitApplicationEventLoop);
146 #define QuitApplicationEventLoop (*QuitApplicationEventLoop_weak)
147 declare_weak(ReleaseEvent);
148 #define ReleaseEvent (*ReleaseEvent_weak)
149 declare_weak(RunApplicationEventLoop);
150 #define RunApplicationEventLoop (*RunApplicationEventLoop_weak)
151 declare_weak(SCDynamicStoreCopyProxies);
152 #define SCDynamicStoreCopyProxies (*SCDynamicStoreCopyProxies_weak)
153 declare_weak(SelectWindow);
154 #define SelectWindow (*SelectWindow_weak)
155 declare_weak(SendBehind);
156 #define SendBehind (*SendBehind_weak)
157 declare_weak(SetEventParameter);
158 #define SetEventParameter (*SetEventParameter_weak)
159 declare_weak(SetThemeCursor);
160 #define SetThemeCursor (*SetThemeCursor_weak)
161 declare_weak(SetWindowBounds);
162 #define SetWindowBounds (*SetWindowBounds_weak)
163 declare_weak(SetWindowResizeLimits);
164 #define SetWindowResizeLimits (*SetWindowResizeLimits_weak)
165 declare_weak(SetWindowTitleWithCFString);
166 #define SetWindowTitleWithCFString (*SetWindowTitleWithCFString_weak)
167 declare_weak(ShowWindow);
168 #define ShowWindow (*ShowWindow_weak)
169 declare_weak(ZoomWindowIdeal);
170 #define ZoomWindowIdeal (*ZoomWindowIdeal_weak)
171 declare_weak(__CFStringMakeConstantString);
172 #define __CFStringMakeConstantString (*__CFStringMakeConstantString_weak)
173 declare_weak(aglChoosePixelFormat);
174 #define aglChoosePixelFormat (*aglChoosePixelFormat_weak)
175 declare_weak(aglCreateContext);
176 #define aglCreateContext (*aglCreateContext_weak)
177 declare_weak(aglDestroyContext);
178 #define aglDestroyContext (*aglDestroyContext_weak)
179 declare_weak(aglSetCurrentContext);
180 #define aglSetCurrentContext (*aglSetCurrentContext_weak)
181 declare_weak(aglSetDrawable);
182 #define aglSetDrawable (*aglSetDrawable_weak)
183 declare_weak(aglSurfaceTexture);
184 #define aglSurfaceTexture (*aglSurfaceTexture_weak)
185 declare_weak(aglUpdateContext);
186 #define aglUpdateContext (*aglUpdateContext_weak)
187 const CFAllocatorRef *kCFAllocatorDefault_weak;
188 #define kCFAllocatorDefault (*kCFAllocatorDefault_weak)
189 declare_weak(CPSEnableForegroundOperation);
190 #define CPSEnableForegroundOperation (*CPSEnableForegroundOperation_weak)
191 declare_weak(CPSSetFrontProcess);
192 #define CPSSetFrontProcess (*CPSSetFrontProcess_weak)
193
194 static void load_weak_symbols() {
195   //    setBackingType_weak = (typeof(setBackingType_weak))load_weak("_setBackingType");
196     AEGetNthPtr_weak = (typeof(AEGetNthPtr_weak))load_weak("_AEGetNthPtr");
197     CFArrayGetCount_weak = (typeof(CFArrayGetCount_weak))load_weak("_CFArrayGetCount");
198     CFArrayGetTypeID_weak = (typeof(CFArrayGetTypeID_weak))load_weak("_CFArrayGetTypeID");
199     CFArrayGetValueAtIndex_weak = (typeof(CFArrayGetValueAtIndex_weak))load_weak("_CFArrayGetValueAtIndex");
200     CFDictionaryGetValue_weak = (typeof(CFDictionaryGetValue_weak))load_weak("_CFDictionaryGetValue");
201     CFGetTypeID_weak = (typeof(CFGetTypeID_weak))load_weak("_CFGetTypeID");
202     CFNumberGetTypeID_weak = (typeof(CFNumberGetTypeID_weak))load_weak("_CFNumberGetTypeID");
203     CFNumberGetValue_weak = (typeof(CFNumberGetValue_weak))load_weak("_CFNumberGetValue");
204     CFRelease_weak = (typeof(CFRelease_weak))load_weak("_CFRelease");
205     CFStringCompare_weak = (typeof(CFStringCompare_weak))load_weak("_CFStringCompare");
206     CFStringCreateWithCString_weak = (typeof(CFStringCreateWithCString_weak))load_weak("_CFStringCreateWithCString");
207     CFStringCreateWithCharacters_weak = (typeof(CFStringCreateWithCharacters_weak))load_weak("_CFStringCreateWithCharacters");
208     CFStringGetCharacters_weak = (typeof(CFStringGetCharacters_weak))load_weak("_CFStringGetCharacters");
209     CFStringGetLength_weak = (typeof(CFStringGetLength_weak))load_weak("_CFStringGetLength");
210     CFStringGetTypeID_weak = (typeof(CFStringGetTypeID_weak))load_weak("_CFStringGetTypeID");
211     CFURLCopyScheme_weak = (typeof(CFURLCopyScheme_weak))load_weak("_CFURLCopyScheme");
212     CFURLCreateWithString_weak = (typeof(CFURLCreateWithString_weak))load_weak("_CFURLCreateWithString");
213     CGDisplayPixelsHigh_weak = (typeof(CGDisplayPixelsHigh_weak))load_weak("_CGDisplayPixelsHigh");
214     CGDisplayPixelsWide_weak = (typeof(CGDisplayPixelsWide_weak))load_weak("_CGDisplayPixelsWide");
215     CallNextEventHandler_weak = (typeof(CallNextEventHandler_weak))load_weak("_CallNextEventHandler");
216     CollapseWindow_weak = (typeof(CollapseWindow_weak))load_weak("_CollapseWindow");
217     ConstrainWindowToScreen_weak = (typeof(ConstrainWindowToScreen_weak))load_weak("_ConstrainWindowToScreen");
218     CreateEvent_weak = (typeof(CreateEvent_weak))load_weak("_CreateEvent");
219     CreateNewWindow_weak = (typeof(CreateNewWindow_weak))load_weak("_CreateNewWindow");
220     DisposeEventHandlerUPP_weak = (typeof(DisposeEventHandlerUPP_weak))load_weak("_DisposeEventHandlerUPP");
221     DisposeNavEventUPP_weak = (typeof(DisposeNavEventUPP_weak))load_weak("_DisposeNavEventUPP");
222     DisposeWindow_weak = (typeof(DisposeWindow_weak))load_weak("_DisposeWindow");
223     ExitToShell_weak = (typeof(ExitToShell_weak))load_weak("_ExitToShell");
224     FSRefMakePath_weak = (typeof(FSRefMakePath_weak))load_weak("_FSRefMakePath");
225     FrontWindow_weak = (typeof(FrontWindow_weak))load_weak("_FrontWindow");
226     Gestalt_weak = (typeof(Gestalt_weak))load_weak("_Gestalt");
227     GetApplicationEventTarget_weak = (typeof(GetApplicationEventTarget_weak))load_weak("_GetApplicationEventTarget");
228     GetCurrentProcess_weak = (typeof(GetCurrentProcess_weak))load_weak("_GetCurrentProcess");
229     GetCurrentScrap_weak = (typeof(GetCurrentScrap_weak))load_weak("_GetCurrentScrap");
230     GetEventClass_weak = (typeof(GetEventClass_weak))load_weak("_GetEventClass");
231     GetEventKind_weak = (typeof(GetEventKind_weak))load_weak("_GetEventKind");
232     GetEventParameter_weak = (typeof(GetEventParameter_weak))load_weak("_GetEventParameter");
233     GetMainEventQueue_weak = (typeof(GetMainEventQueue_weak))load_weak("_GetMainEventQueue");
234     GetScrapFlavorData_weak = (typeof(GetScrapFlavorData_weak))load_weak("_GetScrapFlavorData");
235     GetScrapFlavorSize_weak = (typeof(GetScrapFlavorSize_weak))load_weak("_GetScrapFlavorSize");
236     GetWindowBounds_weak = (typeof(GetWindowBounds_weak))load_weak("_GetWindowBounds");
237     GetWindowEventTarget_weak = (typeof(GetWindowEventTarget_weak))load_weak("_GetWindowEventTarget");
238     GetWindowPort_weak = (typeof(GetWindowPort_weak))load_weak("_GetWindowPort");
239     HideWindow_weak = (typeof(HideWindow_weak))load_weak("_HideWindow");
240     InstallEventHandler_weak = (typeof(InstallEventHandler_weak))load_weak("_InstallEventHandler");
241     IsWindowCollapsed_weak = (typeof(IsWindowCollapsed_weak))load_weak("_IsWindowCollapsed");
242     LSOpenCFURLRef_weak = (typeof(LSOpenCFURLRef_weak))load_weak("_LSOpenCFURLRef");
243     NavCreateGetFileDialog_weak = (typeof(NavCreateGetFileDialog_weak))load_weak("_NavCreateGetFileDialog");
244     NavCreatePutFileDialog_weak = (typeof(NavCreatePutFileDialog_weak))load_weak("_NavCreatePutFileDialog");
245     NavDialogDispose_weak = (typeof(NavDialogDispose_weak))load_weak("_NavDialogDispose");
246     NavDialogGetReply_weak = (typeof(NavDialogGetReply_weak))load_weak("_NavDialogGetReply");
247     NavDialogGetUserAction_weak = (typeof(NavDialogGetUserAction_weak))load_weak("_NavDialogGetUserAction");
248     NavDialogRun_weak = (typeof(NavDialogRun_weak))load_weak("_NavDialogRun");
249     NavDisposeReply_weak = (typeof(NavDisposeReply_weak))load_weak("_NavDisposeReply");
250     NavGetDefaultDialogCreationOptions_weak = (typeof(NavGetDefaultDialogCreationOptions_weak))load_weak("_NavGetDefaultDialogCreationOptions");
251     NewEventHandlerUPP_weak = (typeof(NewEventHandlerUPP_weak))load_weak("_NewEventHandlerUPP");
252     NewNavEventUPP_weak = (typeof(NewNavEventUPP_weak))load_weak("_NewNavEventUPP");
253     PostEventToQueue_weak = (typeof(PostEventToQueue_weak))load_weak("_PostEventToQueue");
254     PutScrapFlavor_weak = (typeof(PutScrapFlavor_weak))load_weak("_PutScrapFlavor");
255     QuitApplicationEventLoop_weak = (typeof(QuitApplicationEventLoop_weak))load_weak("_QuitApplicationEventLoop");
256     ReleaseEvent_weak = (typeof(ReleaseEvent_weak))load_weak("_ReleaseEvent");
257     RunApplicationEventLoop_weak = (typeof(RunApplicationEventLoop_weak))load_weak("_RunApplicationEventLoop");
258     SCDynamicStoreCopyProxies_weak = (typeof(SCDynamicStoreCopyProxies_weak))load_weak("_SCDynamicStoreCopyProxies");
259     SelectWindow_weak = (typeof(SelectWindow_weak))load_weak("_SelectWindow");
260     SendBehind_weak = (typeof(SendBehind_weak))load_weak("_SendBehind");
261     SetEventParameter_weak = (typeof(SetEventParameter_weak))load_weak("_SetEventParameter");
262     SetThemeCursor_weak = (typeof(SetThemeCursor_weak))load_weak("_SetThemeCursor");
263     SetWindowBounds_weak = (typeof(SetWindowBounds_weak))load_weak("_SetWindowBounds");
264     SetWindowResizeLimits_weak = (typeof(SetWindowResizeLimits_weak))load_weak("_SetWindowResizeLimits");
265     SetWindowTitleWithCFString_weak = (typeof(SetWindowTitleWithCFString_weak))load_weak("_SetWindowTitleWithCFString");
266     ShowWindow_weak = (typeof(ShowWindow_weak))load_weak("_ShowWindow");
267     ZoomWindowIdeal_weak = (typeof(ZoomWindowIdeal_weak))load_weak("_ZoomWindowIdeal");
268     __CFStringMakeConstantString_weak = (typeof(__CFStringMakeConstantString_weak))load_weak("___CFStringMakeConstantString");
269     aglChoosePixelFormat_weak = (typeof(aglChoosePixelFormat_weak))load_weak("_aglChoosePixelFormat");
270     aglCreateContext_weak = (typeof(aglCreateContext_weak))load_weak("_aglCreateContext");
271     aglDestroyContext_weak = (typeof(aglDestroyContext_weak))load_weak("_aglDestroyContext");
272     aglSetCurrentContext_weak = (typeof(aglSetCurrentContext_weak))load_weak("_aglSetCurrentContext");
273     aglSetDrawable_weak = (typeof(aglSetDrawable_weak))load_weak("_aglSetDrawable");
274     aglSurfaceTexture_weak = (typeof(aglSurfaceTexture_weak))load_weak("_aglSurfaceTexture");
275     aglUpdateContext_weak = (typeof(aglUpdateContext_weak))load_weak("_aglUpdateContext");
276     kCFAllocatorDefault_weak = (typeof(kCFAllocatorDefault_weak))load_weak("_kCFAllocatorDefault");
277     CPSEnableForegroundOperation_weak = (typeof(CPSEnableForegroundOperation_weak))load_weak("_CPSEnableForegroundOperation");
278     CPSSetFrontProcess_weak = (typeof(CPSSetFrontProcess_weak))load_weak("_CPSSetFrontProcess");
279 }