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