xref: /haiku/headers/os/BeBuild.h (revision 5d9e40fe9252c8f9c5e5e41594545bfa4419fcc7)
1 /******************************************************************************
2 /
3 /	File:			BeBuild.h
4 /
5 /	Description:	Import/export macros
6 /
7 /	Copyright 1993-98, Be Incorporated
8 /
9 *******************************************************************************/
10 
11 #ifndef _BE_BUILD_H
12 #define _BE_BUILD_H
13 
14 #define B_BEOS_VERSION_4	0x0400
15 #define B_BEOS_VERSION_4_5	0x0450
16 #define B_BEOS_VERSION_5	0x0500
17 
18 #define B_BEOS_VERSION		B_BEOS_VERSION_5
19 #define B_BEOS_VERSION_MAUI B_BEOS_VERSION_5
20 
21 #if defined(__POWERPC__)
22 	// the PowerPC build is using GCC now (BeOS R5 used to use the Metrowerks
23 	// compiler), so it is not compatible to any BeOS version on that platform
24 	// before. However, that wouldn't rule out source compatibility, which
25 	// we do here (for now).
26 	#define _PR2_COMPATIBLE_ 0
27 	#define _PR3_COMPATIBLE_ 0
28 	#define _R4_COMPATIBLE_ 0
29 	#define _R4_5_COMPATIBLE_ 0
30 #elif defined(__INTEL__)
31 	#define _PR2_COMPATIBLE_ 0
32 	#define _PR3_COMPATIBLE_ 0
33 	#define _R4_COMPATIBLE_ 1
34 	#define _R4_5_COMPATIBLE_ 1
35 #else
36 #	error Configure BeBuild.h for your platform
37 #endif
38 
39 #if __MWERKS__
40 #	define _UNUSED(x)
41 #	define _PACKED
42 #endif
43 
44 #if __GNUC__
45 #	define _UNUSED(x) x
46 #	define _PACKED	__attribute__((packed))
47 #endif
48 
49 #if defined(__INTEL__) || defined(__POWERPC__)
50 
51 //	This is the standard import/export definitions used for
52 //	the ELF binary format - this should be usable by all flavors
53 //	of OpenBeOS.
54 
55 #	define _EXPORT
56 #	define _IMPORT
57 
58 #	define _IMPEXP_KERNEL
59 #	define	_IMPEXP_GL
60 #	define	_IMPEXP_ROOT
61 #	define	_IMPEXP_NET
62 #	define	_IMPEXP_NETDEV
63 #	define	_IMPEXP_ATALK
64 #	define	_IMPEXP_BE
65 #	define	_IMPEXP_TRACKER
66 #	define	_IMPEXP_MAIL
67 #	define	_IMPEXP_DEVICE
68 #	define	_IMPEXP_MEDIA
69 #	define	_IMPEXP_MIDI
70 #	define _IMPEXP_MIDI2
71 #	define _IMPEXP_GAME
72 #	define _IMPEXP_GSOUND
73 #	define _IMPEXP_TRANSLATION
74 #	define _IMPEXP_TEXTENCODING
75 #	define _IMPEXP_INPUT
76 #endif
77 
78 
79 #ifdef __cplusplus
80 
81 /* cpp kit */
82 
83 /* -- <typeinfo> */
84 class _IMPEXP_ROOT bad_cast;
85 class _IMPEXP_ROOT bad_typeid;
86 class _IMPEXP_ROOT type_info;
87 
88 /* -- <exception> */
89 class _IMPEXP_ROOT exception;
90 class _IMPEXP_ROOT bad_exception;
91 
92 /* -- <new.h> */
93 class _IMPEXP_ROOT bad_alloc;
94 
95 /* -- <mexcept.h> */
96 class _IMPEXP_ROOT logic_error;
97 class _IMPEXP_ROOT domain_error;
98 class _IMPEXP_ROOT invalid_argument;
99 class _IMPEXP_ROOT length_error;
100 class _IMPEXP_ROOT out_of_range;
101 class _IMPEXP_ROOT runtime_error;
102 class _IMPEXP_ROOT range_error;
103 class _IMPEXP_ROOT overflow_error;
104 
105 /* support kit */
106 class _IMPEXP_BE BArchivable;
107 class _IMPEXP_BE BAutolock;
108 class _IMPEXP_BE BBlockCache;
109 class _IMPEXP_BE BBufferIO;
110 class _IMPEXP_BE BDataIO;
111 class _IMPEXP_BE BPositionIO;
112 class _IMPEXP_BE BMallocIO;
113 class _IMPEXP_BE BMemoryIO;
114 class _IMPEXP_BE BFlattenable;
115 class _IMPEXP_BE BList;
116 class _IMPEXP_BE BLocker;
117 class _IMPEXP_BE BStopWatch;
118 class _IMPEXP_BE BString;
119 
120 class _IMPEXP_BE PointerList;
121 
122 /*storage kit */
123 struct _IMPEXP_BE entry_ref;
124 struct _IMPEXP_BE node_ref;
125 class _IMPEXP_BE BAppFileInfo;
126 class _IMPEXP_BE BDirectory;
127 class _IMPEXP_BE BEntry;
128 class _IMPEXP_BE BFile;
129 class _IMPEXP_BE BRefFilter;
130 class _IMPEXP_BE BMimeType;
131 class _IMPEXP_BE BNode;
132 class _IMPEXP_BE BNodeInfo;
133 class _IMPEXP_BE BPath;
134 class _IMPEXP_BE BQuery;
135 class _IMPEXP_BE BResources;
136 class _IMPEXP_BE BResourceStrings;
137 class _IMPEXP_BE BStatable;
138 class _IMPEXP_BE BSymLink;
139 class _IMPEXP_BE BVolume;
140 class _IMPEXP_BE BVolumeRoster;
141 
142 //class _IMPEXP_BE Partition;
143 //class _IMPEXP_BE Session;
144 //class _IMPEXP_BE Device;
145 //class _IMPEXP_BE DeviceList;
146 //class _IMPEXP_BE TNodeWalker;
147 //class _IMPEXP_BE TQueryWalker;
148 //class _IMPEXP_BE TVolWalker;
149 
150 /*app kit */
151 struct _IMPEXP_BE app_info;
152 class _IMPEXP_BE BApplication;
153 class _IMPEXP_BE BClipboard;
154 class _IMPEXP_BE BHandler;
155 class _IMPEXP_BE BInvoker;
156 class _IMPEXP_BE BLooper;
157 class _IMPEXP_BE BMessage;
158 class _IMPEXP_BE BMessageFilter;
159 class _IMPEXP_BE BMessageQueue;
160 class _IMPEXP_BE BMessageRunner;
161 class _IMPEXP_BE BMessenger;
162 class _IMPEXP_BE BPropertyInfo;
163 class _IMPEXP_BE BRoster;
164 
165 class _IMPEXP_BE _BAppServerLink_;
166 class _IMPEXP_BE _BSession_;
167 
168 /*interface kit */
169 class _IMPEXP_BE BAlert;
170 class _IMPEXP_BE BBitmap;
171 class _IMPEXP_BE BBox;
172 class _IMPEXP_BE BButton;
173 class _IMPEXP_BE BChannelControl;
174 class _IMPEXP_BE BChannelSlider;
175 class _IMPEXP_BE BCheckBox;
176 class _IMPEXP_BE BColorControl;
177 class _IMPEXP_BE BControl;
178 class _IMPEXP_BE BDeskbar;
179 class _IMPEXP_BE BDragger;
180 class _IMPEXP_BE BFont;
181 class _IMPEXP_BE BInputDevice;
182 class _IMPEXP_BE BListItem;
183 class _IMPEXP_BE BListView;
184 class _IMPEXP_BE BStringItem;
185 class _IMPEXP_BE BMenu;
186 class _IMPEXP_BE BMenuBar;
187 class _IMPEXP_BE BMenuField;
188 class _IMPEXP_BE BMenuItem;
189 class _IMPEXP_BE BOptionControl;
190 class _IMPEXP_BE BOptionPopUp;
191 class _IMPEXP_BE BOutlineListView;
192 class _IMPEXP_BE BPicture;
193 class _IMPEXP_BE BPictureButton;
194 class _IMPEXP_BE BPoint;
195 class _IMPEXP_BE BPolygon;
196 class _IMPEXP_BE BPopUpMenu;
197 class _IMPEXP_BE BPrintJob;
198 class _IMPEXP_BE BRadioButton;
199 class _IMPEXP_BE BRect;
200 class _IMPEXP_BE BRegion;
201 class _IMPEXP_BE BScreen;
202 class _IMPEXP_BE BScrollBar;
203 class _IMPEXP_BE BScrollView;
204 class _IMPEXP_BE BSeparatorItem;
205 class _IMPEXP_BE BShelf;
206 class _IMPEXP_BE BShape;
207 class _IMPEXP_BE BShapeIterator;
208 class _IMPEXP_BE BSlider;
209 class _IMPEXP_BE BStatusBar;
210 class _IMPEXP_BE BStringView;
211 class _IMPEXP_BE BTab;
212 class _IMPEXP_BE BTabView;
213 class _IMPEXP_BE BTextControl;
214 class _IMPEXP_BE BTextView;
215 class _IMPEXP_BE BView;
216 class _IMPEXP_BE BWindow;
217 
218 class _IMPEXP_BE _BTextInput_;
219 class _IMPEXP_BE _BMCMenuBar_;
220 class _IMPEXP_BE _BMCItem_;
221 class _IMPEXP_BE _BWidthBuffer_;
222 class _IMPEXP_BE BPrivateScreen;
223 
224 /* net kit */
225 class _IMPEXP_NET _Allocator;
226 class _IMPEXP_NET _Transacter;
227 class _IMPEXP_NET _FastIPC;
228 
229 /* netdev kit */
230 class _IMPEXP_NETDEV BNetPacket;
231 class _IMPEXP_NETDEV BStandardPacket;
232 class _IMPEXP_NETDEV BTimeoutHandler;
233 class _IMPEXP_NETDEV BPacketHandler;
234 class _IMPEXP_NETDEV BNetProtocol;
235 class _IMPEXP_NETDEV BNetDevice;
236 class _IMPEXP_NETDEV BCallBackHandler;
237 class _IMPEXP_NETDEV BNetConfig;
238 class _IMPEXP_NETDEV BIpDevice;
239 
240 class _IMPEXP_NETDEV _NetBufList;
241 class _IMPEXP_NETDEV _BSem;
242 
243 /* atalk kit */
244 class _IMPEXP_ATALK _PrinterNode;
245 
246 /* tracker kit */
247 class _IMPEXP_TRACKER BFilePanel;
248 class _IMPEXP_TRACKER BRecentItemsList;
249 class _IMPEXP_TRACKER BRecentFilesList;
250 class _IMPEXP_TRACKER BRecentFoldersList;
251 class _IMPEXP_TRACKER BRecentAppsList;
252 
253 /* mail kit */
254 class _IMPEXP_MAIL	BMailMessage;
255 
256 /* device kit */
257 class _IMPEXP_DEVICE	BA2D;
258 class _IMPEXP_DEVICE	BD2A;
259 class _IMPEXP_DEVICE	BDigitalPort;
260 class _IMPEXP_DEVICE	BJoystick;
261 class _IMPEXP_DEVICE	BSerialPort;
262 
263 /* media kit */
264 class _IMPEXP_MEDIA		BDACRenderer;
265 class _IMPEXP_MEDIA		BAudioFileStream;
266 class _IMPEXP_MEDIA		BADCStream;
267 class _IMPEXP_MEDIA		BDACStream;
268 class _IMPEXP_MEDIA		BAbstractBufferStream;
269 class _IMPEXP_MEDIA		BBufferStreamManager;
270 class _IMPEXP_MEDIA		BBufferStream;
271 class _IMPEXP_MEDIA		BSoundFile;
272 class _IMPEXP_MEDIA		BSubscriber;
273 
274 class _IMPEXP_MEDIA BMediaRoster;
275 class _IMPEXP_MEDIA BMediaNode;
276 class _IMPEXP_MEDIA BTimeSource;
277 class _IMPEXP_MEDIA BBufferProducer;
278 class _IMPEXP_MEDIA BBufferConsumer;
279 class _IMPEXP_MEDIA BBuffer;
280 class _IMPEXP_MEDIA BBufferGroup;
281 class _IMPEXP_MEDIA BControllable;
282 class _IMPEXP_MEDIA BFileInterface;
283 class _IMPEXP_MEDIA BEntityInterface;
284 class _IMPEXP_MEDIA BMediaAddOn;
285 class _IMPEXP_MEDIA BMediaTheme;
286 class _IMPEXP_MEDIA BParameterWeb;
287 class _IMPEXP_MEDIA BParameterGroup;
288 class _IMPEXP_MEDIA BParameter;
289 class _IMPEXP_MEDIA BNullParameter;
290 class _IMPEXP_MEDIA BDiscreteParameter;
291 class _IMPEXP_MEDIA BContinuousParameter;
292 class _IMPEXP_MEDIA BMediaFiles;
293 class _IMPEXP_MEDIA BSound;
294 class _IMPEXP_MEDIA BSoundCard;
295 class _IMPEXP_MEDIA BSoundPlayer;
296 class _IMPEXP_MEDIA BMediaFormats;
297 class _IMPEXP_MEDIA BTimedEventQueue;
298 //class _IMPEXP_MEDIA BEventIterator;
299 class _IMPEXP_MEDIA BMediaEventLooper;
300 class _IMPEXP_MEDIA BMediaFile;
301 class _IMPEXP_MEDIA BMediaTrack;
302 
303 class _IMPEXP_MEDIA media_node;
304 struct _IMPEXP_MEDIA media_input;
305 struct _IMPEXP_MEDIA media_output;
306 struct _IMPEXP_MEDIA live_node_info;
307 struct _IMPEXP_MEDIA buffer_clone_info;
308 struct _IMPEXP_MEDIA media_source;
309 struct _IMPEXP_MEDIA media_destination;
310 struct _IMPEXP_MEDIA media_raw_audio_format;
311 struct _IMPEXP_MEDIA media_raw_video_format;
312 struct _IMPEXP_MEDIA media_video_display_info;
313 struct _IMPEXP_MEDIA flavor_info;
314 struct _IMPEXP_MEDIA dormant_node_info;
315 struct _IMPEXP_MEDIA dormant_flavor_info;
316 struct _IMPEXP_MEDIA media_source;
317 struct _IMPEXP_MEDIA media_destination;
318 struct _IMPEXP_MEDIA _media_format_description;
319 struct _IMPEXP_MEDIA media_timed_event;
320 
321 /* midi kit */
322 class _IMPEXP_MIDI 		BMidi;
323 class _IMPEXP_MIDI 		BMidiPort;
324 class _IMPEXP_MIDI		BMidiStore;
325 class _IMPEXP_MIDI		BMidiSynth;
326 class _IMPEXP_MIDI		BMidiSynthFile;
327 class _IMPEXP_MIDI		BMidiText;
328 class _IMPEXP_MIDI		BSamples;
329 class _IMPEXP_MIDI		BSynth;
330 
331 class _IMPEXP_MIDI2		BMidiEndpoint;
332 class _IMPEXP_MIDI2		BMidiProducer;
333 class _IMPEXP_MIDI2		BMidiConsumer;
334 class _IMPEXP_MIDI2		BMidiLocalProducer;
335 class _IMPEXP_MIDI2		BMidiLocalConsumer;
336 class _IMPEXP_MIDI2		BMidiRoster;
337 
338 /* game kit */
339 class _IMPEXP_GAME		BWindowScreen;
340 class _IMPEXP_GAME		BDirectWindow;
341 
342 /* gamesound kit */
343 class _IMPEXP_GSOUND	BGameSound;
344 class _IMPEXP_GSOUND	BSimpleGameSound;
345 class _IMPEXP_GSOUND	BStreamingGameSound;
346 class _IMPEXP_GSOUND	BFileGameSound;
347 class _IMPEXP_GSOUND	BPushGameSound;
348 
349 /* translation kit */
350 class _IMPEXP_TRANSLATION	BTranslatorRoster;
351 class _IMPEXP_TRANSLATION	BTranslationUtils;
352 class _IMPEXP_TRANSLATION	BBitmapStream;
353 class _IMPEXP_TRANSLATION	BTranslator;
354 struct _IMPEXP_TRANSLATION	translation_format;
355 struct _IMPEXP_TRANSLATION	translator_info;
356 
357 /* GL */
358 class _IMPEXP_GL BGLView;
359 class _IMPEXP_GL BGLScreen;
360 class _IMPEXP_GL GLUnurbs;
361 class _IMPEXP_GL GLUquadric;
362 class _IMPEXP_GL GLUtesselator;
363 
364 typedef class _IMPEXP_GL GLUnurbs GLUnurbsObj;
365 typedef class _IMPEXP_GL GLUquadric GLUquadricObj;
366 typedef class _IMPEXP_GL GLUtesselator GLUtesselatorObj;
367 typedef class _IMPEXP_GL GLUtesselator GLUtriangulatorObj;
368 
369 /* input_server */
370 class _IMPEXP_INPUT	BInputServerDevice;
371 class _IMPEXP_INPUT BInputServerFilter;
372 class _IMPEXP_INPUT BInputServerMethod;
373 
374 #else	/* __cplusplus */
375 
376 typedef struct _IMPEXP_GL GLUnurbs GLUnurbs;
377 typedef struct _IMPEXP_GL GLUquadric GLUquadric;
378 typedef struct _IMPEXP_GL GLUtesselator GLUtesselator;
379 
380 typedef struct _IMPEXP_GL GLUnurbs GLUnurbsObj;
381 typedef struct _IMPEXP_GL GLUquadric GLUquadricObj;
382 typedef struct _IMPEXP_GL GLUtesselator GLUtesselatorObj;
383 typedef struct _IMPEXP_GL GLUtesselator GLUtriangulatorObj;
384 
385 #endif	/* __cplusplus */
386 
387 #endif	/* _BE_BUILD_H */
388