VirtualBox

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

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

Biggest check-in ever. New source code headers for all (C) innotek files.

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