VirtualBox

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

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

The Giant CDDL Dual-License Header Change.

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