VirtualBox

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

Last change on this file since 6076 was 6047, checked in by vboxsync, 17 years ago

VRDP cleanup.

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

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