VBoxManage.h revision 53900c8a9b69ab11bcb532f0fbfbbcd3ed244ec1
236b2935f217749893b7034e59da3e3568928acevboxsync/** @file
236b2935f217749893b7034e59da3e3568928acevboxsync * VBox frontends: VBoxManage (command-line interface):
236b2935f217749893b7034e59da3e3568928acevboxsync * VBoxManage header.
236b2935f217749893b7034e59da3e3568928acevboxsync */
236b2935f217749893b7034e59da3e3568928acevboxsync
236b2935f217749893b7034e59da3e3568928acevboxsync/*
f84ab9e4599e758ec1f36479f871b3f5b7f271f2vboxsync * Copyright (C) 2006-2007 Sun Microsystems, Inc.
236b2935f217749893b7034e59da3e3568928acevboxsync *
236b2935f217749893b7034e59da3e3568928acevboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
236b2935f217749893b7034e59da3e3568928acevboxsync * available from http://www.virtualbox.org. This file is free software;
236b2935f217749893b7034e59da3e3568928acevboxsync * you can redistribute it and/or modify it under the terms of the GNU
236b2935f217749893b7034e59da3e3568928acevboxsync * General Public License (GPL) as published by the Free Software
236b2935f217749893b7034e59da3e3568928acevboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
236b2935f217749893b7034e59da3e3568928acevboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
236b2935f217749893b7034e59da3e3568928acevboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
236b2935f217749893b7034e59da3e3568928acevboxsync *
236b2935f217749893b7034e59da3e3568928acevboxsync * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
236b2935f217749893b7034e59da3e3568928acevboxsync * Clara, CA 95054 USA or visit http://www.sun.com if you need
236b2935f217749893b7034e59da3e3568928acevboxsync * additional information or have any questions.
236b2935f217749893b7034e59da3e3568928acevboxsync */
236b2935f217749893b7034e59da3e3568928acevboxsync
236b2935f217749893b7034e59da3e3568928acevboxsync#ifndef ___H_VBOXMANAGE
236b2935f217749893b7034e59da3e3568928acevboxsync#define ___H_VBOXMANAGE
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsync
236b2935f217749893b7034e59da3e3568928acevboxsync#include <iprt/types.h>
236b2935f217749893b7034e59da3e3568928acevboxsync#include <VBox/com/ptr.h>
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsync#include <VBox/com/VirtualBox.h>
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsync
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsync/** @name Syntax diagram category.
236b2935f217749893b7034e59da3e3568928acevboxsync * @{ */
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsync#define USAGE_DUMPOPTS 0
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsync#define USAGE_LIST RT_BIT_64(0)
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsync#define USAGE_SHOWVMINFO RT_BIT_64(1)
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsync#define USAGE_REGISTERVM RT_BIT_64(2)
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsync#define USAGE_UNREGISTERVM RT_BIT_64(3)
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsync#define USAGE_CREATEVM RT_BIT_64(4)
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsync#define USAGE_MODIFYVM RT_BIT_64(5)
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsync#define USAGE_STARTVM RT_BIT_64(6)
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsync#define USAGE_CONTROLVM RT_BIT_64(7)
236b2935f217749893b7034e59da3e3568928acevboxsync#define USAGE_DISCARDSTATE RT_BIT_64(8)
236b2935f217749893b7034e59da3e3568928acevboxsync#define USAGE_SNAPSHOT RT_BIT_64(9)
4ae0ac3d0dc641305a0b0197db43ee7c4b40f747vboxsync#define USAGE_REGISTERIMAGE RT_BIT_64(10)
236b2935f217749893b7034e59da3e3568928acevboxsync#define USAGE_UNREGISTERIMAGE RT_BIT_64(11)
236b2935f217749893b7034e59da3e3568928acevboxsync#define USAGE_SHOWVDIINFO RT_BIT_64(12)
236b2935f217749893b7034e59da3e3568928acevboxsync#define USAGE_CREATEVDI RT_BIT_64(13)
2ac3892cdc8b16a0dee55e8b4510b8ecea83c95fvboxsync#define USAGE_MODIFYVDI RT_BIT_64(14)
2ac3892cdc8b16a0dee55e8b4510b8ecea83c95fvboxsync#define USAGE_CLONEVDI RT_BIT_64(15)
2ac3892cdc8b16a0dee55e8b4510b8ecea83c95fvboxsync#define USAGE_ADDISCSIDISK RT_BIT_64(16)
2ac3892cdc8b16a0dee55e8b4510b8ecea83c95fvboxsync#define USAGE_CREATEHOSTIF RT_BIT_64(17)
2ac3892cdc8b16a0dee55e8b4510b8ecea83c95fvboxsync#define USAGE_REMOVEHOSTIF RT_BIT_64(18)
2ac3892cdc8b16a0dee55e8b4510b8ecea83c95fvboxsync#define USAGE_GETEXTRADATA RT_BIT_64(19)
2ac3892cdc8b16a0dee55e8b4510b8ecea83c95fvboxsync#define USAGE_SETEXTRADATA RT_BIT_64(20)
2ac3892cdc8b16a0dee55e8b4510b8ecea83c95fvboxsync#define USAGE_SETPROPERTY RT_BIT_64(21)
2ac3892cdc8b16a0dee55e8b4510b8ecea83c95fvboxsync#define USAGE_USBFILTER (RT_BIT_64(22) | RT_BIT_64(23) | RT_BIT_64(24))
2ac3892cdc8b16a0dee55e8b4510b8ecea83c95fvboxsync#define USAGE_USBFILTER_ADD RT_BIT_64(22)
2ac3892cdc8b16a0dee55e8b4510b8ecea83c95fvboxsync#define USAGE_USBFILTER_MODIFY RT_BIT_64(23)
2ac3892cdc8b16a0dee55e8b4510b8ecea83c95fvboxsync#define USAGE_USBFILTER_REMOVE RT_BIT_64(24)
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsync#define USAGE_SHAREDFOLDER (RT_BIT_64(25) | RT_BIT_64(26))
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsync#define USAGE_SHAREDFOLDER_ADD RT_BIT_64(25)
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsync#define USAGE_SHAREDFOLDER_REMOVE RT_BIT_64(26)
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsync#define USAGE_LOADSYMS RT_BIT_64(29)
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsync#define USAGE_UNLOADSYMS RT_BIT_64(30)
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsync#define USAGE_SETVDIUUID RT_BIT_64(31)
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsync#define USAGE_CONVERTDD RT_BIT_64(32)
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsync#define USAGE_LISTPARTITIONS RT_BIT_64(33)
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsync#define USAGE_CREATERAWVMDK RT_BIT_64(34)
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsync#define USAGE_VM_STATISTICS RT_BIT_64(35)
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsync#define USAGE_ADOPTSTATE RT_BIT_64(36)
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsync#define USAGE_MODINSTALL RT_BIT_64(37)
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsync#define USAGE_MODUNINSTALL RT_BIT_64(38)
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsync#define USAGE_RENAMEVMDK RT_BIT_64(39)
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsync#ifdef VBOX_WITH_GUEST_PROPS
f84ab9e4599e758ec1f36479f871b3f5b7f271f2vboxsync#define USAGE_GUESTPROPERTY RT_BIT_64(40)
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsync#endif /* VBOX_WITH_GUEST_PROPS defined */
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsync#define USAGE_CONVERTTORAW RT_BIT_64(41)
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsync#define USAGE_METRICS RT_BIT_64(42)
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsync#define USAGE_ALL (~(uint64_t)0)
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsync/** @} */
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsync
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsynctypedef uint64_t USAGECATEGORY;
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsync
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsync/** flag whether we're in internal mode */
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsyncextern bool g_fInternalMode;
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsync
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsync/** showVMInfo details */
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsynctypedef enum
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsync{
236b2935f217749893b7034e59da3e3568928acevboxsync VMINFO_NONE = 0,
236b2935f217749893b7034e59da3e3568928acevboxsync VMINFO_STANDARD = 1, /**< standard details */
236b2935f217749893b7034e59da3e3568928acevboxsync VMINFO_STATISTICS = 2, /**< guest statistics */
236b2935f217749893b7034e59da3e3568928acevboxsync VMINFO_FULL = 3, /**< both */
236b2935f217749893b7034e59da3e3568928acevboxsync VMINFO_MACHINEREADABLE = 4 /**< both, and make it machine readable */
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsync} VMINFO_DETAILS;
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsync
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsync/*
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsync * Prototypes
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsync */
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsyncint errorSyntax(USAGECATEGORY u64Cmd, const char *pszFormat, ...);
f84ab9e4599e758ec1f36479f871b3f5b7f271f2vboxsyncint errorArgument(const char *pszFormat, ...);
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsync
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsyncvoid printUsageInternal(USAGECATEGORY u64Cmd);
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsyncint handleInternalCommands(int argc, char *argv[],
157093a77f2752732368338110cb50fa6cd7717fvboxsync ComPtr <IVirtualBox> aVirtualBox, ComPtr<ISession> aSession);
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsyncextern void usageGuestProperty(void);
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsyncextern int handleGuestProperty(int argc, char *argv[],
5067a9619d7131c54d4ebb371d9dac91abdd34f6vboxsync ComPtr<IVirtualBox> aVirtualBox, ComPtr<ISession> aSession);
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsyncunsigned long VBoxSVNRev();
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsync
ce9f428fc2f581b4d8968d870967e259d9924d8dvboxsync#endif /* !___H_VBOXMANAGE */
6d0dfca130b3267e60e6dcb6f8cea0487534680avboxsync