VirtualBox

source: vbox/trunk/src/VBox/Main/include/MachineDebuggerImpl.h@ 14949

Last change on this file since 14949 was 14949, checked in by vboxsync, 16 years ago

Appended vim modeline to set tabstop and expand tabs (in the way
suggested by our coding guidelines).

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.7 KB
Line 
1/* $Id: MachineDebuggerImpl.h 14949 2008-12-03 15:17:16Z vboxsync $ */
2
3/** @file
4 *
5 * VirtualBox COM class implementation
6 */
7
8/*
9 * Copyright (C) 2006-2008 Sun Microsystems, Inc.
10 *
11 * This file is part of VirtualBox Open Source Edition (OSE), as
12 * available from http://www.215389.xyz. This file is free software;
13 * you can redistribute it and/or modify it under the terms of the GNU
14 * General Public License (GPL) as published by the Free Software
15 * Foundation, in version 2 as it comes in the "COPYING" file of the
16 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
17 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
18 *
19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
20 * Clara, CA 95054 USA or visit http://www.sun.com if you need
21 * additional information or have any questions.
22 */
23
24#ifndef ____H_MACHINEDEBUGGER
25#define ____H_MACHINEDEBUGGER
26
27#include "VirtualBoxBase.h"
28
29class Console;
30
31class ATL_NO_VTABLE MachineDebugger :
32 public VirtualBoxBaseNEXT,
33 public VirtualBoxSupportErrorInfoImpl <MachineDebugger, IMachineDebugger>,
34 public VirtualBoxSupportTranslation <MachineDebugger>,
35 public IMachineDebugger
36{
37public:
38
39 VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT (MachineDebugger)
40
41 DECLARE_NOT_AGGREGATABLE (MachineDebugger)
42
43 DECLARE_PROTECT_FINAL_CONSTRUCT()
44
45 BEGIN_COM_MAP(MachineDebugger)
46 COM_INTERFACE_ENTRY (ISupportErrorInfo)
47 COM_INTERFACE_ENTRY (IMachineDebugger)
48 END_COM_MAP()
49
50 NS_DECL_ISUPPORTS
51
52 DECLARE_EMPTY_CTOR_DTOR (MachineDebugger)
53
54 HRESULT FinalConstruct();
55 void FinalRelease();
56
57 // public initializer/uninitializer for internal purposes only
58 HRESULT init (Console *aParent);
59 void uninit();
60
61 // IMachineDebugger properties
62 STDMETHOD(COMGETTER(Singlestep)) (BOOL *aEnabled);
63 STDMETHOD(COMSETTER(Singlestep)) (BOOL aEnable);
64 STDMETHOD(COMGETTER(RecompileUser)) (BOOL *aEnabled);
65 STDMETHOD(COMSETTER(RecompileUser)) (BOOL aEnable);
66 STDMETHOD(COMGETTER(RecompileSupervisor)) (BOOL *aEnabled);
67 STDMETHOD(COMSETTER(RecompileSupervisor)) (BOOL aEnable);
68 STDMETHOD(COMGETTER(PATMEnabled)) (BOOL *aEnabled);
69 STDMETHOD(COMSETTER(PATMEnabled)) (BOOL aEnable);
70 STDMETHOD(COMGETTER(CSAMEnabled)) (BOOL *aEnabled);
71 STDMETHOD(COMSETTER(CSAMEnabled)) (BOOL aEnable);
72 STDMETHOD(COMGETTER(LogEnabled)) (BOOL *aEnabled);
73 STDMETHOD(COMSETTER(LogEnabled)) (BOOL aEnable);
74 STDMETHOD(COMGETTER(HWVirtExEnabled)) (BOOL *aEnabled);
75 STDMETHOD(COMGETTER(HWVirtExNestedPagingEnabled)) (BOOL *aEnabled);
76 STDMETHOD(COMGETTER(HWVirtExVPIDEnabled)) (BOOL *aEnabled);
77 STDMETHOD(COMGETTER(PAEEnabled)) (BOOL *aEnabled);
78 STDMETHOD(COMGETTER(VirtualTimeRate)) (ULONG *aPct);
79 STDMETHOD(COMSETTER(VirtualTimeRate)) (ULONG aPct);
80 STDMETHOD(COMGETTER(VM)) (ULONG64 *aVm);
81 STDMETHOD(InjectNMI)();
82
83 // IMachineDebugger methods
84 STDMETHOD(ResetStats (INPTR BSTR aPattern));
85 STDMETHOD(DumpStats (INPTR BSTR aPattern));
86 STDMETHOD(GetStats (INPTR BSTR aPattern, BOOL aWithDescriptions, BSTR *aStats));
87
88
89 // "public-private methods"
90 void flushQueuedSettings();
91
92 // for VirtualBoxSupportErrorInfoImpl
93 static const wchar_t *getComponentName() { return L"MachineDebugger"; }
94
95private:
96 // private methods
97 bool queueSettings() const;
98
99 const ComObjPtr <Console, ComWeakRef> mParent;
100 // flags whether settings have been queued because
101 // they could not be sent to the VM (not up yet, etc.)
102 int mSinglestepQueued;
103 int mRecompileUserQueued;
104 int mRecompileSupervisorQueued;
105 int mPatmEnabledQueued;
106 int mCsamEnabledQueued;
107 int mLogEnabledQueued;
108 uint32_t mVirtualTimeRateQueued;
109 bool mFlushMode;
110};
111
112#endif /* ____H_MACHINEDEBUGGER */
113/* vi: set tabstop=4 shiftwidth=4 expandtab: */
Note: See TracBrowser for help on using the repository browser.

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