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