VirtualBox

source: vbox/trunk/include/VBox/log.h@ 321

Last change on this file since 321 was 210, checked in by vboxsync, 18 years ago

Logging groups for shared folders and VMM backdoor logging added.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 10.0 KB
Line 
1/** @file
2 * VirtualBox - Logging.
3 */
4
5/*
6 * Copyright (C) 2006 InnoTek Systemberatung GmbH
7 *
8 * This file is part of VirtualBox Open Source Edition (OSE), as
9 * available from http://www.virtualbox.org. This file is free software;
10 * you can redistribute it and/or modify it under the terms of the GNU
11 * General Public License as published by the Free Software Foundation,
12 * in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
13 * distribution. VirtualBox OSE is distributed in the hope that it will
14 * be useful, but WITHOUT ANY WARRANTY of any kind.
15 *
16 * If you received this file as part of a commercial VirtualBox
17 * distribution, then only the terms of your commercial VirtualBox
18 * license agreement apply instead of the previous paragraph.
19 */
20
21#ifndef __VBox_log_h__
22#define __VBox_log_h__
23
24/*
25 * Set the default loggroup.
26 */
27#ifndef LOG_GROUP
28# define LOG_GROUP LOG_GROUP_DEFAULT
29#endif
30
31#include <iprt/log.h>
32
33
34/** @defgroup grp_rt_vbox_log VirtualBox Logging
35 * @ingroup grp_rt_vbox
36 * @{
37 */
38
39/** PC port for debug output */
40#define RTLOG_DEBUG_PORT 0x504
41
42/**
43 * VirtualBox Logging Groups.
44 * (Remember to update LOGGROUP_NAMES!)
45 *
46 * @remark It should be pretty obvious, but just to have
47 * mentioned it, the values are sorted alphabetically (using the
48 * english alphabet) except for _DEFAULT which is always first.
49 *
50 * If anyone might be wondering what the alphabet looks like:
51 * A B C D E F G H I J K L M N O P Q R S T U V W X Y Z _
52 */
53typedef enum LOGGROUP
54{
55 /** The default VBox group. */
56 LOG_GROUP_DEFAULT = RTLOGGROUP_FIRST_USER,
57 /** CFGM group. */
58 LOG_GROUP_CFGM,
59 /** CPUM group. */
60 LOG_GROUP_CPUM,
61 /** CSAM group. */
62 LOG_GROUP_CSAM,
63 /** Debug Console group. */
64 LOG_GROUP_DBGC,
65 /** DBGF group. */
66 LOG_GROUP_DBGF,
67 /** DBGF info group. */
68 LOG_GROUP_DBGF_INFO,
69 /** The debugger gui. */
70 LOG_GROUP_DBGG,
71 /** Generic Device group. */
72 LOG_GROUP_DEV,
73 /** ACPI Device group. */
74 LOG_GROUP_DEV_ACPI,
75 /** APIC Device group. */
76 LOG_GROUP_DEV_APIC,
77 /** Audio Device group. */
78 LOG_GROUP_DEV_AUDIO,
79 /** DMA Controller group. */
80 LOG_GROUP_DEV_DMA,
81 /** Floppy Controller Device group. */
82 LOG_GROUP_DEV_FDC,
83 /** IDE Device group. */
84 LOG_GROUP_DEV_IDE,
85 /** KeyBoard Controller Device group. */
86 LOG_GROUP_DEV_KBD,
87 /** NE2000 Device group. */
88 LOG_GROUP_DEV_NE2000,
89 /** PC Device group. */
90 LOG_GROUP_DEV_PC,
91 /** PC Architecture Device group. */
92 LOG_GROUP_DEV_PC_ARCH,
93 /** PC BIOS Device group. */
94 LOG_GROUP_DEV_PC_BIOS,
95 /** PCI Device group. */
96 LOG_GROUP_DEV_PCI,
97 /** PCNet Device group. */
98 LOG_GROUP_DEV_PCNET,
99 /** PIC Device group. */
100 LOG_GROUP_DEV_PIC,
101 /** PIT Device group. */
102 LOG_GROUP_DEV_PIT,
103 /** RTC Device group. */
104 LOG_GROUP_DEV_RTC,
105 /** Serial Device group */
106 LOG_GROUP_DEV_SERIAL,
107 /** USB Device group. */
108 LOG_GROUP_DEV_USB,
109 /** VGA Device group. */
110 LOG_GROUP_DEV_VGA,
111 /** VMM Device group. */
112 LOG_GROUP_DEV_VMM,
113 /** VMM Device group for backdoor logging. */
114 LOG_GROUP_DEV_VMM_BACKDOOR,
115 /** VMM Device group for logging guest backdoor logging to stderr. */
116 LOG_GROUP_DEV_VMM_STDERR,
117 /** Disassembler group. */
118 LOG_GROUP_DIS,
119 /** Generic driver group. */
120 LOG_GROUP_DRV,
121 /** ACPI driver group */
122 LOG_GROUP_DRV_ACPI,
123 /** Block driver group. */
124 LOG_GROUP_DRV_BLOCK,
125 /** Floppy media driver group. */
126 LOG_GROUP_DRV_FLOPPY,
127 /** Host Base block driver group. */
128 LOG_GROUP_DRV_HOST_BASE,
129 /** Host DVD block driver group. */
130 LOG_GROUP_DRV_HOST_DVD,
131 /** Host floppy block driver group. */
132 LOG_GROUP_DRV_HOST_FLOPPY,
133 /** The internal networking transport driver group. */
134 LOG_GROUP_DRV_INTNET,
135 /** iSCSI Initiator driver group. */
136 LOG_GROUP_DRV_ISCSI,
137 /** iSCSI TCP transport driver group. */
138 LOG_GROUP_DRV_ISCSI_TRANSPORT_TCP,
139 /** ISO (CD/DVD) media driver group. */
140 LOG_GROUP_DRV_ISO,
141 /** Keyboard Queue driver group. */
142 LOG_GROUP_DRV_KBD_QUEUE,
143 /** Mouse Queue driver group. */
144 LOG_GROUP_DRV_MOUSE_QUEUE,
145 /** NAT network transport driver group */
146 LOG_GROUP_DRV_NAT,
147 /** Raw image driver group */
148 LOG_GROUP_DRV_RAW_IMAGE,
149 /** TUN network transport driver group */
150 LOG_GROUP_DRV_TUN,
151 /** USB Proxy driver group. */
152 LOG_GROUP_DRV_USBPROXY,
153 /** VBoxHDD media driver group. */
154 LOG_GROUP_DRV_VBOXHDD,
155 /** Virtual Switch transport driver group */
156 LOG_GROUP_DRV_VSWITCH,
157 /** VUSB driver group */
158 LOG_GROUP_DRV_VUSB,
159 /** EM group. */
160 LOG_GROUP_EM,
161 /** GUI group. */
162 LOG_GROUP_GUI,
163 /** HGCM group */
164 LOG_GROUP_HGCM,
165 /** HWACCM group. */
166 LOG_GROUP_HWACCM,
167 /** IOM group. */
168 LOG_GROUP_IOM,
169 /** XPCOM IPC group. */
170 LOG_GROUP_IPC,
171 /** Main group. */
172 LOG_GROUP_MAIN,
173 /** MM group. */
174 LOG_GROUP_MM,
175 /** MM group. */
176 LOG_GROUP_MM_HEAP,
177 /** MM group. */
178 LOG_GROUP_MM_HYPER,
179 /** MM Hypervisor Heap group. */
180 LOG_GROUP_MM_HYPER_HEAP,
181 /** MM Physical/Ram group. */
182 LOG_GROUP_MM_PHYS,
183 /** MM Page pool group. */
184 LOG_GROUP_MM_POOL,
185 /** PATM group. */
186 LOG_GROUP_PATM,
187 /** PDM group. */
188 LOG_GROUP_PDM,
189 /** PDM Device group. */
190 LOG_GROUP_PDM_DEVICE,
191 /** PDM Driver group. */
192 LOG_GROUP_PDM_DRIVER,
193 /** PDM Loader group. */
194 LOG_GROUP_PDM_LDR,
195 /** PDM Loader group. */
196 LOG_GROUP_PDM_QUEUE,
197 /** PGM group. */
198 LOG_GROUP_PGM,
199 /** PGMCACHE group. */
200 LOG_GROUP_PGMCACHE,
201 /** PGM physical group. */
202 LOG_GROUP_PGM_PHYS,
203 /** PGM physical access group. */
204 LOG_GROUP_PGM_PHYS_ACCESS,
205 /** PGM shadow page pool group. */
206 LOG_GROUP_PGM_POOL,
207 /** REM group. */
208 LOG_GROUP_REM,
209 /** REM disassembly handler group. */
210 LOG_GROUP_REM_DISAS,
211 /** REM access handler group. */
212 LOG_GROUP_REM_HANDLER,
213 /** REM I/O port access group. */
214 LOG_GROUP_REM_IOPORT,
215 /** REM MMIO access group. */
216 LOG_GROUP_REM_MMIO,
217 /** REM Printf. */
218 LOG_GROUP_REM_PRINTF,
219 /** REM running group. */
220 LOG_GROUP_REM_RUN,
221 /** RT group. */
222 LOG_GROUP_RT,
223 /** RT group. */
224 LOG_GROUP_RT_THREAD,
225 /** SELM group. */
226 LOG_GROUP_SELM,
227 /** Shared folders host service group. */
228 LOG_GROUP_SHARED_FOLDERS,
229 /** The internal networking service group. */
230 LOG_GROUP_SRV_INTNET,
231 /** SSM group. */
232 LOG_GROUP_SSM,
233 /** STAM group. */
234 LOG_GROUP_STAM,
235 /** SUP group. */
236 LOG_GROUP_SUP,
237 /** TM group. */
238 LOG_GROUP_TM,
239 /** TRPM group. */
240 LOG_GROUP_TRPM,
241 /** VM group. */
242 LOG_GROUP_VM,
243 /** VMM group. */
244 LOG_GROUP_VMM,
245 /** VRDP group */
246 LOG_GROUP_VRDP
247 /* !!!ALPHABETICALLY!!! */
248} VBOX_LOGGROUP;
249
250
251/** @def VBOX_LOGGROUP_NAMES
252 * VirtualBox Logging group names.
253 *
254 * Must correspond 100% to LOGGROUP!
255 * Don't forget commas!
256 *
257 * @remark It should be pretty obvious, but just to have
258 * mentioned it, the values are sorted alphabetically (using the
259 * english alphabet) except for _DEFAULT which is always first.
260 *
261 * If anyone might be wondering what the alphabet looks like:
262 * a b c d e f g h i j k l m n o p q r s t u v w x y z
263 */
264#define VBOX_LOGGROUP_NAMES \
265{ \
266 RT_LOGGROUP_NAMES, \
267 "DEFAULT", \
268 "CFGM", \
269 "CPUM", \
270 "CSAM", \
271 "DBGC", \
272 "DBGF", \
273 "DBGF_INFO", \
274 "DBGG", \
275 "DEV", \
276 "DEV_ACPI", \
277 "DEV_APIC", \
278 "DEV_AUDIO", \
279 "DEV_DMA", \
280 "DEV_FDC", \
281 "DEV_IDE", \
282 "DEV_KBD", \
283 "DEV_NE2000", \
284 "DEV_PC", \
285 "DEV_PC_ARCH", \
286 "DEV_PC_BIOS", \
287 "DEV_PCI", \
288 "DEV_PCNET", \
289 "DEV_PIC", \
290 "DEV_PIT", \
291 "DEV_RTC", \
292 "DEV_SERIAL", \
293 "DEV_USB", \
294 "DEV_VGA", \
295 "DEV_VMM", \
296 "DEV_VMM_BACKDOOR", \
297 "DEV_VMM_STDERR",\
298 "DIS", \
299 "DRV", \
300 "DRV_ACPI", \
301 "DRV_BLOCK", \
302 "DRV_FLOPPY", \
303 "DRV_HOST_BASE", \
304 "DRV_HOST_DVD", \
305 "DRV_HOST_FLOPPY", \
306 "DRV_INTNET", \
307 "DRV_ISCSI", \
308 "DRV_ISCSI_TRANSPORT_TCP", \
309 "DRV_ISO", \
310 "DRV_KBD_QUEUE", \
311 "DRV_MOUSE_QUEUE", \
312 "DRV_NAT", \
313 "DRV_RAW_IMAGE", \
314 "DRV_TUN", \
315 "DRV_USBPROXY", \
316 "DRV_VBOXHDD", \
317 "DRV_VSWITCH", \
318 "DRV_VUSB", \
319 "EM", \
320 "GUI", \
321 "HGCM", \
322 "HWACCM", \
323 "IOM", \
324 "IPC", \
325 "MAIN", \
326 "MM", \
327 "MM_HEAP", \
328 "MM_HYPER", \
329 "MM_HYPER_HEAP",\
330 "MM_PHYS", \
331 "MM_POOL", \
332 "PATM", \
333 "PDM", \
334 "PDM_DEVICE", \
335 "PDM_DRIVER", \
336 "PDM_LDR", \
337 "PDM_QUEUE", \
338 "PGM", \
339 "PGMCACHE", \
340 "PGM_PHYS", \
341 "PGM_PHYS_ACCESS",\
342 "PGM_POOL", \
343 "REM", \
344 "REM_DISAS", \
345 "REM_HANDLER", \
346 "REM_IOPORT", \
347 "REM_MMIO", \
348 "REM_PRINTF", \
349 "REM_RUN", \
350 "RT", \
351 "RT_THREAD", \
352 "SELM", \
353 "SHARED_FOLDERS",\
354 "SRV_INTNET", \
355 "SSM", \
356 "STAM", \
357 "SUP", \
358 "TM", \
359 "TRPM", \
360 "VM", \
361 "VMM", \
362 "VRDP", \
363}
364
365
366__BEGIN_DECLS
367
368/**
369 * Prints a formatted string to the backdoor port.
370 *
371 * @returns Number of bytes written.
372 * @param pszFormat Format string.
373 * @param ... Optional arguments specified in the format string.
374 */
375RTDECL(size_t) RTLogBackdoorPrintf(const char *pszFormat, ...);
376
377/**
378 * Prints a formatted string to the backdoor port.
379 *
380 * @returns Number of bytes written.
381 * @param pszFormat Format string.
382 * @param args Optional arguments specified in the format string.
383 */
384RTDECL(size_t) RTLogBackdoorPrintfV(const char *pszFormat, va_list args);
385
386__END_DECLS
387
388/** @} */
389#endif
390
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