VirtualBox

source: vbox/trunk/include/VBox/cdefs.h@ 2666

Last change on this file since 2666 was 1566, checked in by vboxsync, 18 years ago

VBOXDDU_DECL & IN_VBOXDDU

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 38.7 KB
Line 
1/** @file
2 * VirtualBox - Common C and C++ definition.
3 */
4
5/*
6 * Copyright (C) 2006 InnoTek Systemberatung GmbH
7 *
8 * This file is part of VirtualBox Open Source Edition (OSE), as
9 * available from http://www.virtualbox.org. This file is free software;
10 * you can redistribute it and/or modify it under the terms of the GNU
11 * General Public License as published by the Free Software Foundation,
12 * in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
13 * distribution. VirtualBox OSE is distributed in the hope that it will
14 * be useful, but WITHOUT ANY WARRANTY of any kind.
15 *
16 * If you received this file as part of a commercial VirtualBox
17 * distribution, then only the terms of your commercial VirtualBox
18 * license agreement apply instead of the previous paragraph.
19 */
20
21#ifndef __VBox_cdefs_h__
22#define __VBox_cdefs_h__
23
24#include <iprt/cdefs.h>
25
26
27/** @def VBOX_WITH_STATISTICS
28 * When defined all statistics will be included in the build.
29 * This is enabled by default in all debug builds.
30 */
31#ifndef VBOX_WITH_STATISTICS
32# ifdef DEBUG
33# define VBOX_WITH_STATISTICS
34# endif
35#endif
36
37/** @def VBOX_STRICT
38 * Alias for RT_STRICT.
39 */
40#ifdef RT_STRICT
41# ifndef VBOX_STRICT
42# define VBOX_STRICT
43# endif
44#endif
45
46
47/*
48 * Shut up DOXYGEN warnings and guide it properly thru the code.
49 */
50#ifdef __DOXYGEN__
51#define VBOX_WITH_STATISTICS
52#ifndef VBOX_STRICT
53# define VBOX_STRICT
54#endif
55#define IN_CFGLDR_R3
56#define IN_CFGM_GC
57#define IN_CFGM_R3
58#define IN_CPUM_GC
59#define IN_CPUM_R0
60#define IN_CPUM_R3
61#define IN_CSAM_R0
62#define IN_CSAM_R3
63#define IN_CSAM_GC
64#define IN_DBGF_R0
65#define IN_DBGF_R3
66#define IN_DBGF_GC
67#define IN_DIS_GC
68#define IN_DIS_R0
69#define IN_DIS_R3
70#define IN_EM_GC
71#define IN_EM_R3
72#define IN_EM_R0
73#define IN_HWACCM_R0
74#define IN_HWACCM_R3
75#define IN_HWACCM_GC
76#define IN_IDE_R3
77#define IN_INTNET_R0
78#define IN_INTNET_R3
79#define IN_IOM_GC
80#define IN_IOM_R3
81#define IN_IOM_R0
82#define IN_MM_GC
83#define IN_MM_R0
84#define IN_MM_R3
85#define IN_PATM_R0
86#define IN_PATM_R3
87#define IN_PATM_GC
88#define IN_PDM_GC
89#define IN_PDM_R3
90#define IN_PGM_GC
91#define IN_PGM_R0
92#define IN_PGM_R3
93#define IN_REM_GC
94#define IN_REM_R0
95#define IN_REM_R3
96#define IN_SELM_GC
97#define IN_SELM_R0
98#define IN_SELM_R3
99#define IN_SSM_R3
100#define IN_STAM_GC
101#define IN_STAM_R0
102#define IN_STAM_R3
103#define IN_SUP_R0
104#define IN_SUP_R3
105#define IN_SUP_GC
106#define IN_TM_GC
107#define IN_TM_R0
108#define IN_TM_R3
109#define IN_TRPM_GC
110#define IN_TRPM_R0
111#define IN_TRPM_R3
112#define IN_USB_GC
113#define IN_USB_R0
114#define IN_USB_R3
115#define IN_VGADEVICE_GC
116#define IN_VGADEVICE_R3
117#define IN_VHHD_R3
118#define IN_VM_GC
119#define IN_VM_R0
120#define IN_VM_R3
121#define IN_VMM_GC
122#define IN_VMM_R0
123#define IN_VMM_R3
124#define IN_VRDP_R3
125/** @todo fixme */
126#endif
127
128
129
130
131/** @def VBOXCALL
132 * The standard calling convention for VBOX interfaces.
133 */
134#define VBOXCALL RTCALL
135
136
137
138/** @def IN_VM_R3
139 * Used to indicate whether we're inside the same link module as the ring 3 part of the
140 * virtual machine (the module) or not.
141 */
142/** @def VMR3DECL
143 * Ring 3 VM export or import declaration.
144 * @param type The return type of the function declaration.
145 */
146#ifdef IN_VM_R3
147# define VMR3DECL(type) DECLEXPORT(type) VBOXCALL
148#else
149# define VMR3DECL(type) DECLIMPORT(type) VBOXCALL
150#endif
151
152/** @def IN_VM_R0
153 * Used to indicate whether we're inside the same link module as the ring 0
154 * part of the virtual machine (the module) or not.
155 */
156/** @def VMR0DECL
157 * Ring 0 VM export or import declaration.
158 * @param type The return type of the function declaration.
159 */
160#ifdef IN_VM_R0
161# define VMR0DECL(type) DECLEXPORT(type) VBOXCALL
162#else
163# define VMR0DECL(type) DECLIMPORT(type) VBOXCALL
164#endif
165
166/** @def IN_VM_GC
167 * Used to indicate whether we're inside the same link module as the guest context
168 * part of the virtual machine (the module) or not.
169 */
170/** @def VMGCDECL
171 * Guest context VM export or import declaration.
172 * @param type The return type of the function declaration.
173 */
174#ifdef IN_VM_GC
175# define VMGCDECL(type) DECLEXPORT(type) VBOXCALL
176#else
177# define VMGCDECL(type) DECLIMPORT(type) VBOXCALL
178#endif
179
180/** @def VMDECL
181 * VM export or import declaration.
182 * @param type The return type of the function declaration.
183 */
184#if defined(IN_VM_R3) || defined(IN_VM_R0) || defined(IN_VM_GC)
185# define VMDECL(type) DECLEXPORT(type) VBOXCALL
186#else
187# define VMDECL(type) DECLIMPORT(type) VBOXCALL
188#endif
189
190
191/** @def IN_VMM_R3
192 * Used to indicate whether we're inside the same link module as the ring 3 part of the
193 * virtual machine monitor or not.
194 */
195/** @def VMMR3DECL
196 * Ring 3 VMM export or import declaration.
197 * @param type The return type of the function declaration.
198 */
199#ifdef IN_VMM_R3
200# define VMMR3DECL(type) DECLEXPORT(type) VBOXCALL
201#else
202# define VMMR3DECL(type) DECLIMPORT(type) VBOXCALL
203#endif
204
205/** @def IN_VMM_R0
206 * Used to indicate whether we're inside the same link module as the ring 0 part of the
207 * virtual machine monitor or not.
208 */
209/** @def VMMR0DECL
210 * Ring 0 VMM export or import declaration.
211 * @param type The return type of the function declaration.
212 */
213#ifdef IN_VMM_R0
214# define VMMR0DECL(type) DECLEXPORT(type) VBOXCALL
215#else
216# define VMMR0DECL(type) DECLIMPORT(type) VBOXCALL
217#endif
218
219/** @def IN_VMM_GC
220 * Used to indicate whether we're inside the same link module as the guest context
221 * part of the virtual machine monitor or not.
222 */
223/** @def VMMGCDECL
224 * Guest context VMM export or import declaration.
225 * @param type The return type of the function declaration.
226 */
227#ifdef IN_VMM_GC
228# define VMMGCDECL(type) DECLEXPORT(type) VBOXCALL
229#else
230# define VMMGCDECL(type) DECLIMPORT(type) VBOXCALL
231#endif
232
233/** @def VMMDECL
234 * VMM export or import declaration.
235 * @param type The return type of the function declaration.
236 */
237#if defined(IN_VMM_R3) || defined(IN_VMM_R0) || defined(IN_VMM_GC)
238# define VMMDECL(type) DECLEXPORT(type) VBOXCALL
239#else
240# define VMMDECL(type) DECLIMPORT(type) VBOXCALL
241#endif
242
243
244/** @def IN_DIS_R3
245 * Used to indicate whether we're inside the same link module as the
246 * Ring-3 disassembler or not.
247 */
248/** @def DISR3DECL(type)
249 * Disassembly export or import declaration.
250 * @param type The return type of the function declaration.
251 */
252#ifdef IN_DIS_R3
253# define DISR3DECL(type) DECLEXPORT(type) VBOXCALL
254#else
255# define DISR3DECL(type) DECLIMPORT(type) VBOXCALL
256#endif
257
258/** @def IN_DIS_R0
259 * Used to indicate whether we're inside the same link module as the
260 * Ring-0 disassembler or not.
261 */
262/** @def DISR0DECL(type)
263 * Disassembly export or import declaration.
264 * @param type The return type of the function declaration.
265 */
266#ifdef IN_DIS_R0
267# define DISR0DECL(type) DECLEXPORT(type) VBOXCALL
268#else
269# define DISR0DECL(type) DECLIMPORT(type) VBOXCALL
270#endif
271
272/** @def IN_DIS_GC
273 * Used to indicate whether we're inside the same link module as the
274 * GC disassembler or not.
275 */
276/** @def DISGCDECL(type)
277 * Disassembly export or import declaration.
278 * @param type The return type of the function declaration.
279 */
280#ifdef IN_DIS_GC
281# define DISGCDECL(type) DECLEXPORT(type) VBOXCALL
282#else
283# define DISGCDECL(type) DECLIMPORT(type) VBOXCALL
284#endif
285
286/** @def DISDECL(type)
287 * Disassembly export or import declaration.
288 * @param type The return type of the function declaration.
289 */
290#if defined(IN_DIS_R3) ||defined(IN_DIS_R0) || defined(IN_DIS_GC)
291# define DISDECL(type) DECLEXPORT(type) VBOXCALL
292#else
293# define DISDECL(type) DECLIMPORT(type) VBOXCALL
294#endif
295
296
297/** @def IN_SUP_R3
298 * Used to indicate whether we're inside the same link module as the Ring 3 Support Library or not.
299 */
300/** @def SUPR3DECL(type)
301 * Support library export or import declaration.
302 * @param type The return type of the function declaration.
303 */
304#ifdef IN_SUP_R3
305# define SUPR3DECL(type) DECLEXPORT(type) VBOXCALL
306#else
307# define SUPR3DECL(type) DECLIMPORT(type) VBOXCALL
308#endif
309
310/** @def IN_SUP_R0
311 * Used to indicate whether we're inside the same link module as the Ring 0 Support Library or not.
312 */
313/** @def SUPR0DECL(type)
314 * Support library export or import declaration.
315 * @param type The return type of the function declaration.
316 */
317#ifdef IN_SUP_R0
318# define SUPR0DECL(type) DECLEXPORT(type) VBOXCALL
319#else
320# define SUPR0DECL(type) DECLIMPORT(type) VBOXCALL
321#endif
322
323/** @def IN_SUP_GC
324 * Used to indicate whether we're inside the same link module as the GC Support Library or not.
325 */
326/** @def SUPGCDECL(type)
327 * Support library export or import declaration.
328 * @param type The return type of the function declaration.
329 */
330#ifdef IN_SUP_GC
331# define SUPGCDECL(type) DECLEXPORT(type) VBOXCALL
332#else
333# define SUPGCDECL(type) DECLIMPORT(type) VBOXCALL
334#endif
335
336/** @def IN_SUP_R0
337 * Used to indicate whether we're inside the same link module as the Ring 0 Support Library or not.
338 */
339/** @def SUPR0DECL(type)
340 * Support library export or import declaration.
341 * @param type The return type of the function declaration.
342 */
343#if defined(IN_SUP_R0) || defined(IN_SUP_R3) || defined(IN_SUP_GC)
344# define SUPDECL(type) DECLEXPORT(type) VBOXCALL
345#else
346# define SUPDECL(type) DECLIMPORT(type) VBOXCALL
347#endif
348
349
350
351
352/** @def IN_PDM_R3
353 * Used to indicate whether we're inside the same link module as the Ring 3
354 * Pluggable Device Manager.
355 */
356/** @def PDMR3DECL(type)
357 * Pluggable Device Manager export or import declaration.
358 * @param type The return type of the function declaration.
359 */
360#ifdef IN_PDM_R3
361# define PDMR3DECL(type) DECLEXPORT(type) VBOXCALL
362#else
363# define PDMR3DECL(type) DECLIMPORT(type) VBOXCALL
364#endif
365
366/** @def IN_PDM_GC
367 * Used to indicate whether we're inside the same link module as the GC
368 * Pluggable Device Manager.
369 */
370/** @def PDMGCDECL(type)
371 * Pluggable Device Manager export or import declaration.
372 * @param type The return type of the function declaration.
373 */
374#ifdef IN_PDM_GC
375# define PDMGCDECL(type) DECLEXPORT(type) VBOXCALL
376#else
377# define PDMGCDECL(type) DECLIMPORT(type) VBOXCALL
378#endif
379
380/** @def PDMDECL(type)
381 * Pluggable Device Manager export or import declaration.
382 * Functions declared using this macro exists in all contexts.
383 * @param type The return type of the function declaration.
384 */
385#if defined(IN_PDM_R3) || defined(IN_PDM_GC) || defined(IN_PDM_R0)
386# define PDMDECL(type) DECLEXPORT(type) VBOXCALL
387#else
388# define PDMDECL(type) DECLIMPORT(type) VBOXCALL
389#endif
390
391
392
393
394/** @def IN_CFGM_R3
395 * Used to indicate whether we're inside the same link module as the Ring 3
396 * Configuration Manager.
397 */
398/** @def CFGMR3DECL(type)
399 * Configuration Manager export or import declaration.
400 * @param type The return type of the function declaration.
401 */
402#ifdef IN_CFGM_R3
403# define CFGMR3DECL(type) DECLEXPORT(type) VBOXCALL
404#else
405# define CFGMR3DECL(type) DECLIMPORT(type) VBOXCALL
406#endif
407
408/** @def IN_CFGM_GC
409 * Used to indicate whether we're inside the same link module as the GC
410 * Configuration Manager.
411 */
412/** @def CFGMGCDECL(type)
413 * Configuration Manager export or import declaration.
414 * @param type The return type of the function declaration.
415 */
416#ifdef IN_CFGM_GC
417# define CFGMGCDECL(type) DECLEXPORT(type) VBOXCALL
418#else
419# define CFGMGCDECL(type) DECLIMPORT(type) VBOXCALL
420#endif
421
422
423/** @def IN_CPUM_R0
424 * Used to indicate whether we're inside the same link module as
425 * the HC Ring-0 CPU Monitor(/Manager).
426 */
427/** @def CPUMR0DECL(type)
428 * CPU Monitor(/Manager) HC Ring-0 export or import declaration.
429 * @param type The return type of the function declaration.
430 */
431#ifdef IN_CPUM_R0
432# define CPUMR0DECL(type) DECLEXPORT(type) VBOXCALL
433#else
434# define CPUMR0DECL(type) DECLIMPORT(type) VBOXCALL
435#endif
436
437/** @def IN_CPUM_R3
438 * Used to indicate whether we're inside the same link module as
439 * the HC Ring-3 CPU Monitor(/Manager).
440 */
441/** @def CPUMR3DECL(type)
442 * CPU Monitor(/Manager) HC Ring-3 export or import declaration.
443 * @param type The return type of the function declaration.
444 */
445#ifdef IN_CPUM_R3
446# define CPUMR3DECL(type) DECLEXPORT(type) VBOXCALL
447#else
448# define CPUMR3DECL(type) DECLIMPORT(type) VBOXCALL
449#endif
450
451/** @def IN_CPUM_GC
452 * Used to indicate whether we're inside the same link module as
453 * the GC CPU Monitor(/Manager).
454 */
455/** @def CPUMGCDECL(type)
456 * CPU Monitor(/Manager) HC Ring-3 export or import declaration.
457 * @param type The return type of the function declaration.
458 */
459#ifdef IN_CPUM_GC
460# define CPUMGCDECL(type) DECLEXPORT(type) VBOXCALL
461#else
462# define CPUMGCDECL(type) DECLIMPORT(type) VBOXCALL
463#endif
464
465/** @def CPUMDECL(type)
466 * CPU Monitor(/Manager) export or import declaration.
467 * Functions declared using this macro exists in all contexts.
468 * @param type The return type of the function declaration.
469 */
470#if defined(IN_CPUM_R3) || defined(IN_CPUM_GC) || defined(IN_CPUM_R0)
471# define CPUMDECL(type) DECLEXPORT(type) VBOXCALL
472#else
473# define CPUMDECL(type) DECLIMPORT(type) VBOXCALL
474#endif
475
476
477
478/** @def IN_PATM_R0
479 * Used to indicate whether we're inside the same link module as
480 * the HC Ring-0 CPU Monitor(/Manager).
481 */
482/** @def PATMR0DECL(type)
483 * Patch Manager HC Ring-0 export or import declaration.
484 * @param type The return type of the function declaration.
485 */
486#ifdef IN_PATM_R0
487# define PATMR0DECL(type) DECLEXPORT(type) VBOXCALL
488#else
489# define PATMR0DECL(type) DECLIMPORT(type) VBOXCALL
490#endif
491
492/** @def IN_PATM_R3
493 * Used to indicate whether we're inside the same link module as
494 * the HC Ring-3 CPU Monitor(/Manager).
495 */
496/** @def PATMR3DECL(type)
497 * Patch Manager HC Ring-3 export or import declaration.
498 * @param type The return type of the function declaration.
499 */
500#ifdef IN_PATM_R3
501# define PATMR3DECL(type) DECLEXPORT(type) VBOXCALL
502#else
503# define PATMR3DECL(type) DECLIMPORT(type) VBOXCALL
504#endif
505
506/** @def IN_PATM_GC
507 * Used to indicate whether we're inside the same link module as
508 * the GC Patch Manager.
509 */
510/** @def PATMGCDECL(type)
511 * Patch Manager HC Ring-3 export or import declaration.
512 * @param type The return type of the function declaration.
513 */
514#ifdef IN_PATM_GC
515# define PATMGCDECL(type) DECLEXPORT(type) VBOXCALL
516#else
517# define PATMGCDECL(type) DECLIMPORT(type) VBOXCALL
518#endif
519
520/** @def PATMDECL(type)
521 * Patch Manager all contexts export or import declaration.
522 * @param type The return type of the function declaration.
523 */
524#if defined(IN_PATM_R3) || defined(IN_PATM_R0) || defined(IN_PATM_GC)
525# define PATMDECL(type) DECLEXPORT(type) VBOXCALL
526#else
527# define PATMDECL(type) DECLIMPORT(type) VBOXCALL
528#endif
529
530
531
532/** @def IN_CSAM_R0
533 * Used to indicate whether we're inside the same link module as
534 * the HC Ring-0 CPU Monitor(/Manager).
535 */
536/** @def CSAMR0DECL(type)
537 * Code Scanning and Analysis Manager HC Ring-0 export or import declaration.
538 * @param type The return type of the function declaration.
539 */
540#ifdef IN_CSAM_R0
541# define CSAMR0DECL(type) DECLEXPORT(type) VBOXCALL
542#else
543# define CSAMR0DECL(type) DECLIMPORT(type) VBOXCALL
544#endif
545
546/** @def IN_CSAM_R3
547 * Used to indicate whether we're inside the same link module as
548 * the HC Ring-3 CPU Monitor(/Manager).
549 */
550/** @def CSAMR3DECL(type)
551 * Code Scanning and Analysis Manager HC Ring-3 export or import declaration.
552 * @param type The return type of the function declaration.
553 */
554#ifdef IN_CSAM_R3
555# define CSAMR3DECL(type) DECLEXPORT(type) VBOXCALL
556#else
557# define CSAMR3DECL(type) DECLIMPORT(type) VBOXCALL
558#endif
559
560/** @def IN_CSAM_GC
561 * Used to indicate whether we're inside the same link module as
562 * the GC Code Scanning and Analysis Manager.
563 */
564/** @def CSAMGCDECL(type)
565 * Code Scanning and Analysis Manager HC Ring-3 export or import declaration.
566 * @param type The return type of the function declaration.
567 */
568#ifdef IN_CSAM_GC
569# define CSAMGCDECL(type) DECLEXPORT(type) VBOXCALL
570#else
571# define CSAMGCDECL(type) DECLIMPORT(type) VBOXCALL
572#endif
573
574/** @def CSAMDECL(type)
575 * Code Scanning and Analysis Manager export or import declaration.
576 * Functions declared using this macro exists in all contexts.
577 * @param type The return type of the function declaration.
578 */
579#if defined(IN_CSAM_R3) || defined(IN_CSAM_GC) || defined(IN_CSAM_R0)
580# define CSAMDECL(type) DECLEXPORT(type) VBOXCALL
581#else
582# define CSAMDECL(type) DECLIMPORT(type) VBOXCALL
583#endif
584
585
586
587/** @def IN_MM_R0
588 * Used to indicate whether we're inside the same link module as
589 * the HC Ring-0 Memory Monitor(/Manager).
590 */
591/** @def MMR0DECL(type)
592 * Memory Monitor(/Manager) HC Ring-0 export or import declaration.
593 * @param type The return type of the function declaration.
594 */
595#ifdef IN_MM_R0
596# define MMR0DECL(type) DECLEXPORT(type) VBOXCALL
597#else
598# define MMR0DECL(type) DECLIMPORT(type) VBOXCALL
599#endif
600
601/** @def IN_MM_R3
602 * Used to indicate whether we're inside the same link module as
603 * the HC Ring-3 Memory Monitor(/Manager).
604 */
605/** @def MMR3DECL(type)
606 * Memory Monitor(/Manager) HC Ring-3 export or import declaration.
607 * @param type The return type of the function declaration.
608 */
609#ifdef IN_MM_R3
610# define MMR3DECL(type) DECLEXPORT(type) VBOXCALL
611#else
612# define MMR3DECL(type) DECLIMPORT(type) VBOXCALL
613#endif
614
615/** @def IN_MM_GC
616 * Used to indicate whether we're inside the same link module as
617 * the GC Memory Monitor(/Manager).
618 */
619/** @def MMGCDECL(type)
620 * Memory Monitor(/Manager) HC Ring-3 export or import declaration.
621 * @param type The return type of the function declaration.
622 */
623#ifdef IN_MM_GC
624# define MMGCDECL(type) DECLEXPORT(type) VBOXCALL
625#else
626# define MMGCDECL(type) DECLIMPORT(type) VBOXCALL
627#endif
628
629/** @def MMDECL(type)
630 * Memory Monitor(/Manager) export or import declaration.
631 * Functions declared using this macro exists in all contexts.
632 * @param type The return type of the function declaration.
633 */
634#if defined(IN_MM_R3) || defined(IN_MM_GC) || defined(IN_MM_R0)
635# define MMDECL(type) DECLEXPORT(type) VBOXCALL
636#else
637# define MMDECL(type) DECLIMPORT(type) VBOXCALL
638#endif
639
640
641
642
643/** @def IN_SELM_R0
644 * Used to indicate whether we're inside the same link module as
645 * the HC Ring-0 Selector Monitor(/Manager).
646 */
647/** @def SELMR0DECL(type)
648 * Selector Monitor(/Manager) HC Ring-0 export or import declaration.
649 * @param type The return type of the function declaration.
650 */
651#ifdef IN_SELM_R0
652# define SELMR0DECL(type) DECLEXPORT(type) VBOXCALL
653#else
654# define SELMR0DECL(type) DECLIMPORT(type) VBOXCALL
655#endif
656
657/** @def IN_SELM_R3
658 * Used to indicate whether we're inside the same link module as
659 * the HC Ring-3 Selector Monitor(/Manager).
660 */
661/** @def SELMR3DECL(type)
662 * Selector Monitor(/Manager) HC Ring-3 export or import declaration.
663 * @param type The return type of the function declaration.
664 */
665#ifdef IN_SELM_R3
666# define SELMR3DECL(type) DECLEXPORT(type) VBOXCALL
667#else
668# define SELMR3DECL(type) DECLIMPORT(type) VBOXCALL
669#endif
670
671/** @def IN_SELM_GC
672 * Used to indicate whether we're inside the same link module as
673 * the GC Selector Monitor(/Manager).
674 */
675/** @def SELMGCDECL(type)
676 * Selector Monitor(/Manager) HC Ring-3 export or import declaration.
677 * @param type The return type of the function declaration.
678 */
679#ifdef IN_SELM_GC
680# define SELMGCDECL(type) DECLEXPORT(type) VBOXCALL
681#else
682# define SELMGCDECL(type) DECLIMPORT(type) VBOXCALL
683#endif
684
685/** @def SELMDECL(type)
686 * Selector Monitor(/Manager) export or import declaration.
687 * Functions declared using this macro exists in all contexts.
688 * @param type The return type of the function declaration.
689 */
690#if defined(IN_SELM_R3) || defined(IN_SELM_GC) || defined(IN_SELM_R0)
691# define SELMDECL(type) DECLEXPORT(type) VBOXCALL
692#else
693# define SELMDECL(type) DECLIMPORT(type) VBOXCALL
694#endif
695
696
697
698/** @def IN_HWACCM_R0
699 * Used to indicate whether we're inside the same link module as
700 * the HC Ring-0 VMX Monitor(/Manager).
701 */
702/** @def HWACCMR0DECL(type)
703 * Selector Monitor(/Manager) HC Ring-0 export or import declaration.
704 * @param type The return type of the function declaration.
705 */
706#ifdef IN_HWACCM_R0
707# define HWACCMR0DECL(type) DECLEXPORT(type) VBOXCALL
708#else
709# define HWACCMR0DECL(type) DECLIMPORT(type) VBOXCALL
710#endif
711
712/** @def IN_HWACCM_R3
713 * Used to indicate whether we're inside the same link module as
714 * the HC Ring-3 VMX Monitor(/Manager).
715 */
716/** @def HWACCMR3DECL(type)
717 * Selector Monitor(/Manager) HC Ring-3 export or import declaration.
718 * @param type The return type of the function declaration.
719 */
720#ifdef IN_HWACCM_R3
721# define HWACCMR3DECL(type) DECLEXPORT(type) VBOXCALL
722#else
723# define HWACCMR3DECL(type) DECLIMPORT(type) VBOXCALL
724#endif
725
726/** @def IN_HWACCM_GC
727 * Used to indicate whether we're inside the same link module as
728 * the GC VMX Monitor(/Manager).
729 */
730/** @def HWACCMGCDECL(type)
731 * Selector Monitor(/Manager) HC Ring-3 export or import declaration.
732 * @param type The return type of the function declaration.
733 */
734#ifdef IN_HWACCM_GC
735# define HWACCMGCDECL(type) DECLEXPORT(type) VBOXCALL
736#else
737# define HWACCMGCDECL(type) DECLIMPORT(type) VBOXCALL
738#endif
739
740/** @def HWACCMDECL(type)
741 * VMX Monitor(/Manager) export or import declaration.
742 * Functions declared using this macro exists in all contexts.
743 * @param type The return type of the function declaration.
744 */
745#if defined(IN_HWACCM_R3) || defined(IN_HWACCM_GC) || defined(IN_HWACCM_R0)
746# define HWACCMDECL(type) DECLEXPORT(type) VBOXCALL
747#else
748# define HWACCMDECL(type) DECLIMPORT(type) VBOXCALL
749#endif
750
751
752
753/** @def IN_TM_R0
754 * Used to indicate whether we're inside the same link module as
755 * the HC Ring-0 Time Manager.
756 */
757/** @def TMR0DECL(type)
758 * Time Manager HC Ring-0 export or import declaration.
759 * @param type The return type of the function declaration.
760 */
761#ifdef IN_TM_R0
762# define TMR0DECL(type) DECLEXPORT(type) VBOXCALL
763#else
764# define TMR0DECL(type) DECLIMPORT(type) VBOXCALL
765#endif
766
767/** @def IN_TM_R3
768 * Used to indicate whether we're inside the same link module as
769 * the HC Ring-3 Time Manager.
770 */
771/** @def TMR3DECL(type)
772 * Time Manager HC Ring-3 export or import declaration.
773 * @param type The return type of the function declaration.
774 */
775#ifdef IN_TM_R3
776# define TMR3DECL(type) DECLEXPORT(type) VBOXCALL
777#else
778# define TMR3DECL(type) DECLIMPORT(type) VBOXCALL
779#endif
780
781/** @def IN_TM_GC
782 * Used to indicate whether we're inside the same link module as
783 * the GC Time Manager.
784 */
785/** @def TMGCDECL(type)
786 * Time Manager HC Ring-3 export or import declaration.
787 * @param type The return type of the function declaration.
788 */
789#ifdef IN_TM_GC
790# define TMGCDECL(type) DECLEXPORT(type) VBOXCALL
791#else
792# define TMGCDECL(type) DECLIMPORT(type) VBOXCALL
793#endif
794
795/** @def TMDECL(type)
796 * Time Manager export or import declaration.
797 * Functions declared using this macro exists in all contexts.
798 * @param type The return type of the function declaration.
799 */
800#if defined(IN_TM_R3) || defined(IN_TM_GC) || defined(IN_TM_R0)
801# define TMDECL(type) DECLEXPORT(type) VBOXCALL
802#else
803# define TMDECL(type) DECLIMPORT(type) VBOXCALL
804#endif
805
806
807
808
809/** @def IN_TRPM_R0
810 * Used to indicate whether we're inside the same link module as
811 * the HC Ring-0 Trap Monitor.
812 */
813/** @def TRPMR0DECL(type)
814 * Trap Monitor HC Ring-0 export or import declaration.
815 * @param type The return type of the function declaration.
816 */
817#ifdef IN_TRPM_R0
818# define TRPMR0DECL(type) DECLEXPORT(type) VBOXCALL
819#else
820# define TRPMR0DECL(type) DECLIMPORT(type) VBOXCALL
821#endif
822
823/** @def IN_TRPM_R3
824 * Used to indicate whether we're inside the same link module as
825 * the HC Ring-3 Trap Monitor.
826 */
827/** @def TRPMR3DECL(type)
828 * Trap Monitor HC Ring-3 export or import declaration.
829 * @param type The return type of the function declaration.
830 */
831#ifdef IN_TRPM_R3
832# define TRPMR3DECL(type) DECLEXPORT(type) VBOXCALL
833#else
834# define TRPMR3DECL(type) DECLIMPORT(type) VBOXCALL
835#endif
836
837/** @def IN_TRPM_GC
838 * Used to indicate whether we're inside the same link module as
839 * the GC Trap Monitor.
840 */
841/** @def TRPMGCDECL(type)
842 * Trap Monitor GC export or import declaration.
843 * @param type The return type of the function declaration.
844 */
845#ifdef IN_TRPM_GC
846# define TRPMGCDECL(type) DECLEXPORT(type) VBOXCALL
847#else
848# define TRPMGCDECL(type) DECLIMPORT(type) VBOXCALL
849#endif
850
851/** @def TRPMDECL(type)
852 * Trap Monitor export or import declaration.
853 * Functions declared using this macro exists in all contexts.
854 * @param type The return type of the function declaration.
855 */
856#if defined(IN_TRPM_R3) || defined(IN_TRPM_GC) || defined(IN_TRPM_R0)
857# define TRPMDECL(type) DECLEXPORT(type) VBOXCALL
858#else
859# define TRPMDECL(type) DECLIMPORT(type) VBOXCALL
860#endif
861
862
863
864
865/** @def IN_USB_R0
866 * Used to indicate whether we're inside the same link module as
867 * the HC Ring-0 USB device / service.
868 */
869/** @def USBR0DECL(type)
870 * USB device / service HC Ring-0 export or import declaration.
871 * @param type The return type of the function declaration.
872 */
873#ifdef IN_USB_R0
874# define USBR0DECL(type) DECLEXPORT(type) VBOXCALL
875#else
876# define USBR0DECL(type) DECLIMPORT(type) VBOXCALL
877#endif
878
879/** @def IN_USB_R3
880 * Used to indicate whether we're inside the same link module as
881 * the HC Ring-3 USB device / service.
882 */
883/** @def USBR3DECL(type)
884 * USB device / services HC Ring-3 export or import declaration.
885 * @param type The return type of the function declaration.
886 */
887#ifdef IN_USB_R3
888# define USBR3DECL(type) DECLEXPORT(type) VBOXCALL
889#else
890# define USBR3DECL(type) DECLIMPORT(type) VBOXCALL
891#endif
892
893/** @def IN_USB_GC
894 * Used to indicate whether we're inside the same link module as
895 * the GC USB device.
896 */
897/** @def USBGCDECL(type)
898 * USB device GC export or import declaration.
899 * @param type The return type of the function declaration.
900 */
901#ifdef IN_USB_GC
902# define USBGCDECL(type) DECLEXPORT(type) VBOXCALL
903#else
904# define USBGCDECL(type) DECLIMPORT(type) VBOXCALL
905#endif
906
907/** @def USBDECL(type)
908 * Trap Monitor export or import declaration.
909 * Functions declared using this macro exists in all contexts.
910 * @param type The return type of the function declaration.
911 */
912#if defined(IN_USB_R3) || defined(IN_USB_GC) || defined(IN_USB_R0)
913# define USBDECL(type) DECLEXPORT(type) VBOXCALL
914#else
915# define USBDECL(type) DECLIMPORT(type) VBOXCALL
916#endif
917
918
919
920/** @def IN_INTNET_R3
921 * Used to indicate whether we're inside the same link module as the Ring 3
922 * Internal Networking Service.
923 */
924/** @def INTNETR3DECL(type)
925 * Internal Networking Service export or import declaration.
926 * @param type The return type of the function declaration.
927 */
928#ifdef IN_INTNET_R3
929# define INTNETR3DECL(type) DECLEXPORT(type) VBOXCALL
930#else
931# define INTNETR3DECL(type) DECLIMPORT(type) VBOXCALL
932#endif
933
934/** @def IN_INTNET_R0
935 * Used to indicate whether we're inside the same link module as the R0
936 * Internal Network Service.
937 */
938/** @def INTNETR0DECL(type)
939 * Internal Networking Service export or import declaration.
940 * @param type The return type of the function declaration.
941 */
942#ifdef IN_INTNET_R0
943# define INTNETR0DECL(type) DECLEXPORT(type) VBOXCALL
944#else
945# define INTNETR0DECL(type) DECLIMPORT(type) VBOXCALL
946#endif
947
948
949
950/** @def IN_IOM_R3
951 * Used to indicate whether we're inside the same link module as the Ring 3
952 * Input/Output Monitor.
953 */
954/** @def IOMR3DECL(type)
955 * Input/Output Monitor export or import declaration.
956 * @param type The return type of the function declaration.
957 */
958#ifdef IN_IOM_R3
959# define IOMR3DECL(type) DECLEXPORT(type) VBOXCALL
960#else
961# define IOMR3DECL(type) DECLIMPORT(type) VBOXCALL
962#endif
963
964/** @def IN_IOM_GC
965 * Used to indicate whether we're inside the same link module as the GC
966 * Input/Output Monitor.
967 */
968/** @def IOMGCDECL(type)
969 * Input/Output Monitor export or import declaration.
970 * @param type The return type of the function declaration.
971 */
972#ifdef IN_IOM_GC
973# define IOMGCDECL(type) DECLEXPORT(type) VBOXCALL
974#else
975# define IOMGCDECL(type) DECLIMPORT(type) VBOXCALL
976#endif
977
978/** @def IN_IOM_R0
979 * Used to indicate whether we're inside the same link module as the R0
980 * Input/Output Monitor.
981 */
982/** @def IOMR0DECL(type)
983 * Input/Output Monitor export or import declaration.
984 * @param type The return type of the function declaration.
985 */
986#ifdef IN_IOM_R0
987# define IOMR0DECL(type) DECLEXPORT(type) VBOXCALL
988#else
989# define IOMR0DECL(type) DECLIMPORT(type) VBOXCALL
990#endif
991
992/** @def IOMDECL(type)
993 * Input/Output Monitor export or import declaration.
994 * Functions declared using this macro exists in all contexts.
995 * @param type The return type of the function declaration.
996 */
997#if defined(IN_IOM_R3) || defined(IN_IOM_GC) || defined(IN_IOM_R0)
998# define IOMDECL(type) DECLEXPORT(type) VBOXCALL
999#else
1000# define IOMDECL(type) DECLIMPORT(type) VBOXCALL
1001#endif
1002
1003
1004/** @def IN_VGADEVICE_R3
1005 * Used to indicate whether we're inside the same link module as
1006 * the HC Ring-3 VGA Monitor(/Manager).
1007 */
1008/** @def VGAR3DECL(type)
1009 * VGA Monitor(/Manager) HC Ring-3 export or import declaration.
1010 * @param type The return type of the function declaration.
1011 */
1012#ifdef IN_VGADEVICE_R3
1013# define VGAR3DECL(type) DECLEXPORT(type) VBOXCALL
1014#else
1015# define VGAR3DECL(type) DECLIMPORT(type) VBOXCALL
1016#endif
1017
1018/** @def IN_VGADEVICE_GC
1019 * Used to indicate whether we're inside the same link module as
1020 * the GC VGA Monitor(/Manager).
1021 */
1022/** @def VGAGCDECL(type)
1023 * VGA Monitor(/Manager) HC Ring-3 export or import declaration.
1024 * @param type The return type of the function declaration.
1025 */
1026#ifdef IN_VGADEVICE_GC
1027# define VGAGCDECL(type) DECLEXPORT(type) VBOXCALL
1028#else
1029# define VGAGCDECL(type) DECLIMPORT(type) VBOXCALL
1030#endif
1031
1032/** @def VGADECL(type)
1033 * VGA Monitor(/Manager) export or import declaration.
1034 * Functions declared using this macro exists in all contexts.
1035 * @param type The return type of the function declaration.
1036 */
1037#if defined(IN_VGADEVICE_R3) || defined(IN_VGADEVICE_GC)
1038# define VGADECL(type) DECLEXPORT(type) VBOXCALL
1039#else
1040# define VGADECL(type) DECLIMPORT(type) VBOXCALL
1041#endif
1042
1043
1044/** @def IN_PGM_R3
1045 * Used to indicate whether we're inside the same link module as the Ring 3
1046 * Page Monitor and Manager.
1047 */
1048/** @def PGMR3DECL(type)
1049 * Page Monitor and Manager export or import declaration.
1050 * @param type The return type of the function declaration.
1051 */
1052#ifdef IN_PGM_R3
1053# define PGMR3DECL(type) DECLEXPORT(type) VBOXCALL
1054#else
1055# define PGMR3DECL(type) DECLIMPORT(type) VBOXCALL
1056#endif
1057
1058/** @def IN_PGM_GC
1059 * Used to indicate whether we're inside the same link module as the GC
1060 * Page Monitor and Manager.
1061 */
1062/** @def PGMGCDECL(type)
1063 * Page Monitor and Manager export or import declaration.
1064 * @param type The return type of the function declaration.
1065 */
1066#ifdef IN_PGM_GC
1067# define PGMGCDECL(type) DECLEXPORT(type) VBOXCALL
1068#else
1069# define PGMGCDECL(type) DECLIMPORT(type) VBOXCALL
1070#endif
1071
1072/** @def IN_PGM_R0
1073 * Used to indicate whether we're inside the same link module as the R0
1074 * Page Monitor and Manager.
1075 */
1076/** @def PGMR0DECL(type)
1077 * Page Monitor and Manager export or import declaration.
1078 * @param type The return type of the function declaration.
1079 */
1080#ifdef IN_PGM_R0
1081# define PGMR0DECL(type) DECLEXPORT(type) VBOXCALL
1082#else
1083# define PGMR0DECL(type) DECLIMPORT(type) VBOXCALL
1084#endif
1085
1086/** @def PGMDECL(type)
1087 * Page Monitor and Manager export or import declaration.
1088 * @param type The return type of the function declaration.
1089 */
1090#if defined(IN_PGM_R3) || defined(IN_PGM_R0) || defined(IN_PGM_GC)
1091# define PGMDECL(type) DECLEXPORT(type) VBOXCALL
1092#else
1093# define PGMDECL(type) DECLIMPORT(type) VBOXCALL
1094#endif
1095
1096
1097/** @def IN_DBGF_R3
1098 * Used to indicate whether we're inside the same link module as the Ring 3
1099 * Debugging Facility.
1100 */
1101/** @def DBGFR3DECL(type)
1102 * R3 Debugging Facility export or import declaration.
1103 * @param type The return type of the function declaration.
1104 */
1105#ifdef IN_DBGF_R3
1106# define DBGFR3DECL(type) DECLEXPORT(type) VBOXCALL
1107#else
1108# define DBGFR3DECL(type) DECLIMPORT(type) VBOXCALL
1109#endif
1110
1111/** @def IN_DBGF_R0
1112 * Used to indicate whether we're inside the same link module as the Ring 0
1113 * Debugging Facility.
1114 */
1115/** @def DBGFR0DECL(type)
1116 * R0 Debugging Facility export or import declaration.
1117 * @param type The return type of the function declaration.
1118 */
1119#ifdef IN_DBGF_R0
1120# define DBGFR0DECL(type) DECLEXPORT(type) VBOXCALL
1121#else
1122# define DBGFR0DECL(type) DECLIMPORT(type) VBOXCALL
1123#endif
1124
1125/** @def IN_DBGF_GC
1126 * Used to indicate whether we're inside the same link module as the GC
1127 * Debugging Facility.
1128 */
1129/** @def DBGFGCDECL(type)
1130 * GC Debugging Facility export or import declaration.
1131 * @param type The return type of the function declaration.
1132 */
1133#ifdef IN_DBGF_GC
1134# define DBGFGCDECL(type) DECLEXPORT(type) VBOXCALL
1135#else
1136# define DBGFGCDECL(type) DECLIMPORT(type) VBOXCALL
1137#endif
1138
1139/** @def DBGFGCDECL(type)
1140 * Debugging Facility export or import declaration.
1141 * @param type The return type of the function declaration.
1142 */
1143#if defined(IN_DBGF_R3) || defined(IN_DBGF_R0) || defined(IN_DBGF_GC)
1144# define DBGFDECL(type) DECLEXPORT(type) VBOXCALL
1145#else
1146# define DBGFDECL(type) DECLIMPORT(type) VBOXCALL
1147#endif
1148
1149
1150
1151/** @def IN_SSM_R3
1152 * Used to indicate whether we're inside the same link module as the Ring 3
1153 * Saved State Manager.
1154 */
1155/** @def SSMR3DECL(type)
1156 * R3 Saved State export or import declaration.
1157 * @param type The return type of the function declaration.
1158 */
1159#ifdef IN_SSM_R3
1160# define SSMR3DECL(type) DECLEXPORT(type) VBOXCALL
1161#else
1162# define SSMR3DECL(type) DECLIMPORT(type) VBOXCALL
1163#endif
1164
1165
1166
1167/** @def IN_STAM_R3
1168 * Used to indicate whether we're inside the same link module as the Ring 3
1169 * Statistics Manager.
1170 */
1171/** @def STAMR3DECL(type)
1172 * R3 Statistics Manager export or import declaration.
1173 * @param type The return type of the function declaration.
1174 */
1175#ifdef IN_STAM_R3
1176# define STAMR3DECL(type) DECLEXPORT(type) VBOXCALL
1177#else
1178# define STAMR3DECL(type) DECLIMPORT(type) VBOXCALL
1179#endif
1180
1181/** @def IN_STAM_R0
1182 * Used to indicate whether we're inside the same link module as the Ring 0
1183 * Statistics Manager.
1184 */
1185/** @def STAMR0DECL(type)
1186 * R0 Statistics Manager export or import declaration.
1187 * @param type The return type of the function declaration.
1188 */
1189#ifdef IN_STAM_R0
1190# define STAMR0DECL(type) DECLEXPORT(type) VBOXCALL
1191#else
1192# define STAMR0DECL(type) DECLIMPORT(type) VBOXCALL
1193#endif
1194
1195/** @def IN_STAM_GC
1196 * Used to indicate whether we're inside the same link module as the GC
1197 * Statistics Manager.
1198 */
1199/** @def STAMGCDECL(type)
1200 * GC Statistics Manager export or import declaration.
1201 * @param type The return type of the function declaration.
1202 */
1203#ifdef IN_STAM_GC
1204# define STAMGCDECL(type) DECLEXPORT(type) VBOXCALL
1205#else
1206# define STAMGCDECL(type) DECLIMPORT(type) VBOXCALL
1207#endif
1208
1209/** @def STAMGCDECL(type)
1210 * Debugging Facility export or import declaration.
1211 * @param type The return type of the function declaration.
1212 */
1213#if defined(IN_STAM_R3) || defined(IN_STAM_R0) || defined(IN_STAM_GC)
1214# define STAMDECL(type) DECLEXPORT(type) VBOXCALL
1215#else
1216# define STAMDECL(type) DECLIMPORT(type) VBOXCALL
1217#endif
1218
1219
1220
1221/** @def IN_EM_R3
1222 * Used to indicate whether we're inside the same link module as the Ring 3
1223 * Execution Monitor.
1224 */
1225/** @def EMR3DECL(type)
1226 * Execution Monitor export or import declaration.
1227 * @param type The return type of the function declaration.
1228 */
1229#ifdef IN_EM_R3
1230# define EMR3DECL(type) DECLEXPORT(type) VBOXCALL
1231#else
1232# define EMR3DECL(type) DECLIMPORT(type) VBOXCALL
1233#endif
1234
1235/** @def IN_EM_GC
1236 * Used to indicate whether we're inside the same link module as the GC
1237 * Execution Monitor.
1238 */
1239/** @def EMGCDECL(type)
1240 * Execution Monitor export or import declaration.
1241 * @param type The return type of the function declaration.
1242 */
1243#ifdef IN_EM_GC
1244# define EMGCDECL(type) DECLEXPORT(type) VBOXCALL
1245#else
1246# define EMGCDECL(type) DECLIMPORT(type) VBOXCALL
1247#endif
1248
1249
1250/** @def EMDECL(type)
1251 * Execution Monitor export or import declaration.
1252 * @param type The return type of the function declaration.
1253 */
1254#if defined(IN_EM_R3) || defined(IN_EM_GC) || defined(IN_EM_R0)
1255# define EMDECL(type) DECLEXPORT(type) VBOXCALL
1256#else
1257# define EMDECL(type) DECLIMPORT(type) VBOXCALL
1258#endif
1259
1260
1261/** @def IN_IDE_R3
1262 * Used to indicate whether we're inside the same link module as the Ring 3
1263 * IDE device.
1264 */
1265/** @def IDER3DECL(type)
1266 * Ring-3 IDE device export or import declaration.
1267 * @param type The return type of the function declaration.
1268 */
1269#ifdef IN_IDE_R3
1270# define IDER3DECL(type) DECLEXPORT(type) VBOXCALL
1271#else
1272# define IDER3DECL(type) DECLIMPORT(type) VBOXCALL
1273#endif
1274
1275
1276/** @def IN_VBOXDDU
1277 * Used to indicate whether we're inside the VBoxDDU shared object.
1278 */
1279/** @def VBOXDDU_DECL(type)
1280 * VBoxDDU export or import (ring-3).
1281 * @param type The return type of the function declaration.
1282 */
1283#ifdef IN_VBOXDDU
1284# define VBOXDDU_DECL(type) DECLEXPORT(type) VBOXCALL
1285#else
1286# define VBOXDDU_DECL(type) DECLIMPORT(type) VBOXCALL
1287#endif
1288
1289
1290
1291/** @def IN_REM_R0
1292 * Used to indicate whether we're inside the same link module as
1293 * the HC Ring-0 Recompiled Execution Manager.
1294 */
1295/** @def REMR0DECL(type)
1296 * Recompiled Execution Manager HC Ring-0 export or import declaration.
1297 * @param type The return type of the function declaration.
1298 */
1299#ifdef IN_REM_R0
1300# define REMR0DECL(type) DECLEXPORT(type) VBOXCALL
1301#else
1302# define REMR0DECL(type) DECLIMPORT(type) VBOXCALL
1303#endif
1304
1305/** @def IN_RT_R3
1306 * Used to indicate whether we're inside the same link module as
1307 * the HC Ring-3 Recompiled Execution Manager.
1308 */
1309/** @def RTR3DECL(type)
1310 * Recompiled Execution Manager HC Ring-3 export or import declaration.
1311 * @param type The return type of the function declaration.
1312 */
1313#ifdef IN_REM_R3
1314# define REMR3DECL(type) DECLEXPORT(type) VBOXCALL
1315#else
1316# define REMR3DECL(type) DECLIMPORT(type) VBOXCALL
1317#endif
1318
1319/** @def IN_REM_GC
1320 * Used to indicate whether we're inside the same link module as
1321 * the GC Recompiled Execution Manager.
1322 */
1323/** @def REMGCDECL(type)
1324 * Recompiled Execution Manager HC Ring-3 export or import declaration.
1325 * @param type The return type of the function declaration.
1326 */
1327#ifdef IN_REM_GC
1328# define REMGCDECL(type) DECLEXPORT(type) VBOXCALL
1329#else
1330# define REMGCDECL(type) DECLIMPORT(type) VBOXCALL
1331#endif
1332
1333/** @def REMDECL(type)
1334 * Recompiled Execution Manager export or import declaration.
1335 * Functions declared using this macro exists in all contexts.
1336 * @param type The return type of the function declaration.
1337 */
1338#if defined(IN_REM_R3) || defined(IN_REM_GC) || defined(IN_REM_R0)
1339# define REMDECL(type) DECLEXPORT(type) VBOXCALL
1340#else
1341# define REMDECL(type) DECLIMPORT(type) VBOXCALL
1342#endif
1343
1344
1345
1346
1347/** @def DBGDECL(type)
1348 * Debugger module export or import declaration.
1349 * Functions declared using this exists only in R3 since the
1350 * debugger modules is R3 only.
1351 * @param type The return type of the function declaration.
1352 */
1353#if defined(IN_DBG_R3) || defined(IN_DBG)
1354# define DBGDECL(type) DECLEXPORT(type) VBOXCALL
1355#else
1356# define DBGDECL(type) DECLIMPORT(type) VBOXCALL
1357#endif
1358
1359
1360/** @def IN_VRDP_R3(type)
1361 * Used to indicate whether we're inside the same link module as the
1362 * VRDP server.
1363 */
1364#ifdef IN_VRDP_R3
1365# define VRDPR3DECL(type) DECLEXPORT(type) VBOXCALL
1366#else
1367# define VRDPR3DECL(type) DECLIMPORT(type) VBOXCALL
1368#endif
1369
1370
1371#endif /* !__VBox_cdefs_h__ */
1372
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette