xref: /haiku/headers/build/os/BeBuild.h (revision 3e216965baa8d58a67bf7372e2bfa13d999f5a9d)
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 /* support kit */
84 class _IMPEXP_BE BArchivable;
85 class _IMPEXP_BE BAutolock;
86 class _IMPEXP_BE BBlockCache;
87 class _IMPEXP_BE BBufferIO;
88 class _IMPEXP_BE BDataIO;
89 class _IMPEXP_BE BPositionIO;
90 class _IMPEXP_BE BMallocIO;
91 class _IMPEXP_BE BMemoryIO;
92 class _IMPEXP_BE BFlattenable;
93 class _IMPEXP_BE BList;
94 class _IMPEXP_BE BLocker;
95 class _IMPEXP_BE BStopWatch;
96 class _IMPEXP_BE BString;
97 
98 class _IMPEXP_BE PointerList;
99 
100 /*storage kit */
101 struct _IMPEXP_BE entry_ref;
102 struct _IMPEXP_BE node_ref;
103 class _IMPEXP_BE BAppFileInfo;
104 class _IMPEXP_BE BDirectory;
105 class _IMPEXP_BE BEntry;
106 class _IMPEXP_BE BFile;
107 class _IMPEXP_BE BRefFilter;
108 class _IMPEXP_BE BMimeType;
109 class _IMPEXP_BE BNode;
110 class _IMPEXP_BE BNodeInfo;
111 class _IMPEXP_BE BPath;
112 class _IMPEXP_BE BQuery;
113 class _IMPEXP_BE BResources;
114 class _IMPEXP_BE BResourceStrings;
115 class _IMPEXP_BE BStatable;
116 class _IMPEXP_BE BSymLink;
117 class _IMPEXP_BE BVolume;
118 class _IMPEXP_BE BVolumeRoster;
119 
120 //class _IMPEXP_BE Partition;
121 //class _IMPEXP_BE Session;
122 //class _IMPEXP_BE Device;
123 //class _IMPEXP_BE DeviceList;
124 //class _IMPEXP_BE TNodeWalker;
125 //class _IMPEXP_BE TQueryWalker;
126 //class _IMPEXP_BE TVolWalker;
127 
128 /*app kit */
129 struct _IMPEXP_BE app_info;
130 class _IMPEXP_BE BApplication;
131 class _IMPEXP_BE BClipboard;
132 class _IMPEXP_BE BHandler;
133 class _IMPEXP_BE BInvoker;
134 class _IMPEXP_BE BLooper;
135 class _IMPEXP_BE BMessage;
136 class _IMPEXP_BE BMessageFilter;
137 class _IMPEXP_BE BMessageQueue;
138 class _IMPEXP_BE BMessageRunner;
139 class _IMPEXP_BE BMessenger;
140 class _IMPEXP_BE BPropertyInfo;
141 class _IMPEXP_BE BRoster;
142 
143 class _IMPEXP_BE _BAppServerLink_;
144 class _IMPEXP_BE _BSession_;
145 
146 /*interface kit */
147 class _IMPEXP_BE BAlert;
148 class _IMPEXP_BE BBitmap;
149 class _IMPEXP_BE BBox;
150 class _IMPEXP_BE BButton;
151 class _IMPEXP_BE BChannelControl;
152 class _IMPEXP_BE BChannelSlider;
153 class _IMPEXP_BE BCheckBox;
154 class _IMPEXP_BE BColorControl;
155 class _IMPEXP_BE BControl;
156 class _IMPEXP_BE BDeskbar;
157 class _IMPEXP_BE BDragger;
158 class _IMPEXP_BE BFont;
159 class _IMPEXP_BE BInputDevice;
160 class _IMPEXP_BE BListItem;
161 class _IMPEXP_BE BListView;
162 class _IMPEXP_BE BStringItem;
163 class _IMPEXP_BE BMenu;
164 class _IMPEXP_BE BMenuBar;
165 class _IMPEXP_BE BMenuField;
166 class _IMPEXP_BE BMenuItem;
167 class _IMPEXP_BE BOptionControl;
168 class _IMPEXP_BE BOptionPopUp;
169 class _IMPEXP_BE BOutlineListView;
170 class _IMPEXP_BE BPicture;
171 class _IMPEXP_BE BPictureButton;
172 class _IMPEXP_BE BPoint;
173 class _IMPEXP_BE BPolygon;
174 class _IMPEXP_BE BPopUpMenu;
175 class _IMPEXP_BE BPrintJob;
176 class _IMPEXP_BE BRadioButton;
177 class _IMPEXP_BE BRect;
178 class _IMPEXP_BE BRegion;
179 class _IMPEXP_BE BScreen;
180 class _IMPEXP_BE BScrollBar;
181 class _IMPEXP_BE BScrollView;
182 class _IMPEXP_BE BSeparatorItem;
183 class _IMPEXP_BE BShelf;
184 class _IMPEXP_BE BShape;
185 class _IMPEXP_BE BShapeIterator;
186 class _IMPEXP_BE BSlider;
187 class _IMPEXP_BE BStatusBar;
188 class _IMPEXP_BE BStringView;
189 class _IMPEXP_BE BTab;
190 class _IMPEXP_BE BTabView;
191 class _IMPEXP_BE BTextControl;
192 class _IMPEXP_BE BTextView;
193 class _IMPEXP_BE BView;
194 class _IMPEXP_BE BWindow;
195 
196 class _IMPEXP_BE _BTextInput_;
197 class _IMPEXP_BE _BMCMenuBar_;
198 class _IMPEXP_BE _BMCItem_;
199 class _IMPEXP_BE _BWidthBuffer_;
200 class _IMPEXP_BE BPrivateScreen;
201 
202 /* net kit */
203 class _IMPEXP_NET _Allocator;
204 class _IMPEXP_NET _Transacter;
205 class _IMPEXP_NET _FastIPC;
206 
207 /* netdev kit */
208 class _IMPEXP_NETDEV BNetPacket;
209 class _IMPEXP_NETDEV BStandardPacket;
210 class _IMPEXP_NETDEV BTimeoutHandler;
211 class _IMPEXP_NETDEV BPacketHandler;
212 class _IMPEXP_NETDEV BNetProtocol;
213 class _IMPEXP_NETDEV BNetDevice;
214 class _IMPEXP_NETDEV BCallBackHandler;
215 class _IMPEXP_NETDEV BNetConfig;
216 class _IMPEXP_NETDEV BIpDevice;
217 
218 class _IMPEXP_NETDEV _NetBufList;
219 class _IMPEXP_NETDEV _BSem;
220 
221 /* atalk kit */
222 class _IMPEXP_ATALK _PrinterNode;
223 
224 /* tracker kit */
225 class _IMPEXP_TRACKER BFilePanel;
226 class _IMPEXP_TRACKER BRecentItemsList;
227 class _IMPEXP_TRACKER BRecentFilesList;
228 class _IMPEXP_TRACKER BRecentFoldersList;
229 class _IMPEXP_TRACKER BRecentAppsList;
230 
231 /* mail kit */
232 class _IMPEXP_MAIL	BMailMessage;
233 
234 /* device kit */
235 class _IMPEXP_DEVICE	BA2D;
236 class _IMPEXP_DEVICE	BD2A;
237 class _IMPEXP_DEVICE	BDigitalPort;
238 class _IMPEXP_DEVICE	BJoystick;
239 class _IMPEXP_DEVICE	BSerialPort;
240 
241 /* media kit */
242 class _IMPEXP_MEDIA		BDACRenderer;
243 class _IMPEXP_MEDIA		BAudioFileStream;
244 class _IMPEXP_MEDIA		BADCStream;
245 class _IMPEXP_MEDIA		BDACStream;
246 class _IMPEXP_MEDIA		BAbstractBufferStream;
247 class _IMPEXP_MEDIA		BBufferStreamManager;
248 class _IMPEXP_MEDIA		BBufferStream;
249 class _IMPEXP_MEDIA		BSoundFile;
250 class _IMPEXP_MEDIA		BSubscriber;
251 
252 class _IMPEXP_MEDIA BMediaRoster;
253 class _IMPEXP_MEDIA BMediaNode;
254 class _IMPEXP_MEDIA BTimeSource;
255 class _IMPEXP_MEDIA BBufferProducer;
256 class _IMPEXP_MEDIA BBufferConsumer;
257 class _IMPEXP_MEDIA BBuffer;
258 class _IMPEXP_MEDIA BBufferGroup;
259 class _IMPEXP_MEDIA BControllable;
260 class _IMPEXP_MEDIA BFileInterface;
261 class _IMPEXP_MEDIA BEntityInterface;
262 class _IMPEXP_MEDIA BMediaAddOn;
263 class _IMPEXP_MEDIA BMediaTheme;
264 class _IMPEXP_MEDIA BParameterWeb;
265 class _IMPEXP_MEDIA BParameterGroup;
266 class _IMPEXP_MEDIA BParameter;
267 class _IMPEXP_MEDIA BNullParameter;
268 class _IMPEXP_MEDIA BDiscreteParameter;
269 class _IMPEXP_MEDIA BContinuousParameter;
270 class _IMPEXP_MEDIA BMediaFiles;
271 class _IMPEXP_MEDIA BSound;
272 class _IMPEXP_MEDIA BSoundCard;
273 class _IMPEXP_MEDIA BSoundPlayer;
274 class _IMPEXP_MEDIA BMediaFormats;
275 class _IMPEXP_MEDIA BTimedEventQueue;
276 //class _IMPEXP_MEDIA BEventIterator;
277 class _IMPEXP_MEDIA BMediaEventLooper;
278 class _IMPEXP_MEDIA BMediaFile;
279 class _IMPEXP_MEDIA BMediaTrack;
280 
281 class _IMPEXP_MEDIA media_node;
282 struct _IMPEXP_MEDIA media_input;
283 struct _IMPEXP_MEDIA media_output;
284 struct _IMPEXP_MEDIA live_node_info;
285 struct _IMPEXP_MEDIA buffer_clone_info;
286 struct _IMPEXP_MEDIA media_source;
287 struct _IMPEXP_MEDIA media_destination;
288 struct _IMPEXP_MEDIA media_raw_audio_format;
289 struct _IMPEXP_MEDIA media_raw_video_format;
290 struct _IMPEXP_MEDIA media_video_display_info;
291 struct _IMPEXP_MEDIA flavor_info;
292 struct _IMPEXP_MEDIA dormant_node_info;
293 struct _IMPEXP_MEDIA dormant_flavor_info;
294 struct _IMPEXP_MEDIA media_source;
295 struct _IMPEXP_MEDIA media_destination;
296 struct _IMPEXP_MEDIA _media_format_description;
297 struct _IMPEXP_MEDIA media_timed_event;
298 
299 /* midi kit */
300 class _IMPEXP_MIDI 		BMidi;
301 class _IMPEXP_MIDI 		BMidiPort;
302 class _IMPEXP_MIDI		BMidiStore;
303 class _IMPEXP_MIDI		BMidiSynth;
304 class _IMPEXP_MIDI		BMidiSynthFile;
305 class _IMPEXP_MIDI		BMidiText;
306 class _IMPEXP_MIDI		BSamples;
307 class _IMPEXP_MIDI		BSynth;
308 
309 class _IMPEXP_MIDI2		BMidiEndpoint;
310 class _IMPEXP_MIDI2		BMidiProducer;
311 class _IMPEXP_MIDI2		BMidiConsumer;
312 class _IMPEXP_MIDI2		BMidiLocalProducer;
313 class _IMPEXP_MIDI2		BMidiLocalConsumer;
314 class _IMPEXP_MIDI2		BMidiRoster;
315 
316 /* game kit */
317 class _IMPEXP_GAME		BWindowScreen;
318 class _IMPEXP_GAME		BDirectWindow;
319 
320 /* gamesound kit */
321 class _IMPEXP_GSOUND	BGameSound;
322 class _IMPEXP_GSOUND	BSimpleGameSound;
323 class _IMPEXP_GSOUND	BStreamingGameSound;
324 class _IMPEXP_GSOUND	BFileGameSound;
325 class _IMPEXP_GSOUND	BPushGameSound;
326 
327 /* translation kit */
328 class _IMPEXP_TRANSLATION	BTranslatorRoster;
329 class _IMPEXP_TRANSLATION	BTranslationUtils;
330 class _IMPEXP_TRANSLATION	BBitmapStream;
331 class _IMPEXP_TRANSLATION	BTranslator;
332 struct _IMPEXP_TRANSLATION	translation_format;
333 struct _IMPEXP_TRANSLATION	translator_info;
334 
335 /* GL */
336 class _IMPEXP_GL BGLView;
337 class _IMPEXP_GL BGLScreen;
338 class _IMPEXP_GL GLUnurbs;
339 class _IMPEXP_GL GLUquadric;
340 class _IMPEXP_GL GLUtesselator;
341 
342 typedef class _IMPEXP_GL GLUnurbs GLUnurbsObj;
343 typedef class _IMPEXP_GL GLUquadric GLUquadricObj;
344 typedef class _IMPEXP_GL GLUtesselator GLUtesselatorObj;
345 typedef class _IMPEXP_GL GLUtesselator GLUtriangulatorObj;
346 
347 /* input_server */
348 class _IMPEXP_INPUT	BInputServerDevice;
349 class _IMPEXP_INPUT BInputServerFilter;
350 class _IMPEXP_INPUT BInputServerMethod;
351 
352 #else	/* __cplusplus */
353 /*
354 //typedef struct _IMPEXP_GL GLUnurbs GLUnurbs;
355 //typedef struct _IMPEXP_GL GLUquadric GLUquadric;
356 //typedef struct _IMPEXP_GL GLUtesselator GLUtesselator;
357 
358 //typedef struct _IMPEXP_GL GLUnurbs GLUnurbsObj;
359 //typedef struct _IMPEXP_GL GLUquadric GLUquadricObj;
360 //typedef struct _IMPEXP_GL GLUtesselator GLUtesselatorObj;
361 //typedef struct _IMPEXP_GL GLUtesselator GLUtriangulatorObj;
362 */
363 #endif	/* __cplusplus */
364 
365 #endif	/* _BE_BUILD_H */
366