Giter Site home page Giter Site logo

mirror / vbox Goto Github PK

View Code? Open in Web Editor NEW
173.0 17.0 66.0 278.85 MB

VirtualBox Git mirror

Home Page: http://www.virtualbox.org/svn/vbox/trunk

License: Other

Emacs Lisp 0.01% Visual Basic 0.03% C 67.29% C++ 25.29% Objective-C 1.71% Perl 0.09% Assembly 1.36% AutoIt 0.01% ApacheConf 0.01% Makefile 0.09% Shell 0.45% Python 2.85% GAP 0.11% R 0.01% Logos 0.01% PHP 0.02% HTML 0.11% D 0.48% Java 0.08% Bison 0.01%

vbox's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vbox's Issues

How to get a notification when the keyboard is released

I set the host key to the windows key, and it is also used in my window manager. I need to know the keyboard grabbed or not before pressing hotkey combination on the host machine:
If the keyboard is grabbed, the hotkey combination won't work, knowing that will save me of key presses that doesn't mean for the virtual machine.
Thank you!

JIT optimization of guest code (aka virtualization-based optimizations)

One of the topics I studied the most is virtualization-based optimizations (the use of optimizing virtual machines). Java has already done this with their Java Virtual Machine, and Google Chrome has already done this with their V8 JavaScript Virtual Machine, so I believe that VirtualBox should do this with their x86-64 virtual machine as well.

DynamoRIO once attempted to make a JIT optimizer for native machine code. It looks like VirtualBox works by rewriting privileged instructions in the guest code into calls to the hypervisor. It also looks like VirtualBox uses basic block transformation techniques that are similar to the ones used by DynamoRIO. We can add a basic block optimizer that performs JIT optimizations to the guest code, such as hot branches inlining and register allocation.

warn if you are about to run out of disk space

when you do daily snapshot, all of a sudden your virtualbox stops working.

And by then, you will no longer able to delete older snapshots.

Unless you can free other things from your C-Drive, you are stuck.

==> virtualbox, please regularly check available disk space proactively and do a pop-up every couple of hours with a warning to delete older versions of the snapshot

(apparently the snapshots have significantly different sizes, so best to say which ones are particularly big)

usbfilter ignore --product flag

Hi!

I noticed that when I create filter using usbfilter command the --product flag is ignored.

For example, this command:

VBoxManage.exe usbfilter add 0 --target "otus-astra-docker_default_1624884966310_75575" --name "Aktiv Rutoken ECP [0100]" --product "Rutoken ECP" --revision "0100" --productid "0030" --vendorid "0a89" --manufacturer "Aktiv"

creates this filter:

Index:                       0
Active:                      yes
Name:                        Any Rutoken ECP
VendorId:                    0a89
ProductId:                   0030
Revision:                    0100
Manufacturer:                Aktiv
Product:
Remote:
Serial Number:

I thik that the cause of this because you are forgot to set product field here.

switch (cmd.mAction)
{
case USBFilterCmd::Add:
{
if (cmd.mGlobal)
{
ComPtr<IHostUSBDeviceFilter> flt;
CHECK_ERROR_BREAK(host, CreateUSBDeviceFilter(f.mName.raw(),
flt.asOutParam()));
if (!f.mActive.isNull())
CHECK_ERROR_BREAK(flt, COMSETTER(Active)(f.mActive));
if (!f.mVendorId.isEmpty())
CHECK_ERROR_BREAK(flt, COMSETTER(VendorId)(f.mVendorId.raw()));
if (!f.mProductId.isEmpty())
CHECK_ERROR_BREAK(flt, COMSETTER(ProductId)(f.mProductId.raw()));
if (!f.mRevision.isEmpty())
CHECK_ERROR_BREAK(flt, COMSETTER(Revision)(f.mRevision.raw()));
if (!f.mManufacturer.isEmpty())
CHECK_ERROR_BREAK(flt, COMSETTER(Manufacturer)(f.mManufacturer.raw()));
if (!f.mSerialNumber.isEmpty())
CHECK_ERROR_BREAK(flt, COMSETTER(SerialNumber)(f.mSerialNumber.raw()));
if (!f.mMaskedInterfaces.isNull())
CHECK_ERROR_BREAK(flt, COMSETTER(MaskedInterfaces)(f.mMaskedInterfaces));
if (f.mAction != USBDeviceFilterAction_Null)
CHECK_ERROR_BREAK(flt, COMSETTER(Action)(f.mAction));
CHECK_ERROR_BREAK(host, InsertUSBDeviceFilter(cmd.mIndex, flt));
}
else
{
ComPtr<IUSBDeviceFilter> flt;
CHECK_ERROR_BREAK(flts, CreateDeviceFilter(f.mName.raw(),
flt.asOutParam()));
if (!f.mActive.isNull())
CHECK_ERROR_BREAK(flt, COMSETTER(Active)(f.mActive));
if (!f.mVendorId.isEmpty())
CHECK_ERROR_BREAK(flt, COMSETTER(VendorId)(f.mVendorId.raw()));
if (!f.mProductId.isEmpty())
CHECK_ERROR_BREAK(flt, COMSETTER(ProductId)(f.mProductId.raw()));
if (!f.mRevision.isEmpty())
CHECK_ERROR_BREAK(flt, COMSETTER(Revision)(f.mRevision.raw()));
if (!f.mManufacturer.isEmpty())
CHECK_ERROR_BREAK(flt, COMSETTER(Manufacturer)(f.mManufacturer.raw()));
if (!f.mRemote.isEmpty())
CHECK_ERROR_BREAK(flt, COMSETTER(Remote)(f.mRemote.raw()));
if (!f.mSerialNumber.isEmpty())
CHECK_ERROR_BREAK(flt, COMSETTER(SerialNumber)(f.mSerialNumber.raw()));
if (!f.mMaskedInterfaces.isNull())
CHECK_ERROR_BREAK(flt, COMSETTER(MaskedInterfaces)(f.mMaskedInterfaces));
CHECK_ERROR_BREAK(flts, InsertDeviceFilter(cmd.mIndex, flt));
}
break;
}
case USBFilterCmd::Modify:
{
if (cmd.mGlobal)
{
SafeIfaceArray <IHostUSBDeviceFilter> coll;
CHECK_ERROR_BREAK(host, COMGETTER(USBDeviceFilters)(ComSafeArrayAsOutParam(coll)));
ComPtr<IHostUSBDeviceFilter> flt = coll[cmd.mIndex];
if (!f.mName.isEmpty())
CHECK_ERROR_BREAK(flt, COMSETTER(Name)(f.mName.raw()));
if (!f.mActive.isNull())
CHECK_ERROR_BREAK(flt, COMSETTER(Active)(f.mActive));
if (!f.mVendorId.isEmpty())
CHECK_ERROR_BREAK(flt, COMSETTER(VendorId)(f.mVendorId.raw()));
if (!f.mProductId.isEmpty())
CHECK_ERROR_BREAK(flt, COMSETTER(ProductId)(f.mProductId.raw()));
if (!f.mRevision.isEmpty())
CHECK_ERROR_BREAK(flt, COMSETTER(Revision)(f.mRevision.raw()));
if (!f.mManufacturer.isEmpty())
CHECK_ERROR_BREAK(flt, COMSETTER(Manufacturer)(f.mManufacturer.raw()));
if (!f.mSerialNumber.isEmpty())
CHECK_ERROR_BREAK(flt, COMSETTER(SerialNumber)(f.mSerialNumber.raw()));
if (!f.mMaskedInterfaces.isNull())
CHECK_ERROR_BREAK(flt, COMSETTER(MaskedInterfaces)(f.mMaskedInterfaces));
if (f.mAction != USBDeviceFilterAction_Null)
CHECK_ERROR_BREAK(flt, COMSETTER(Action)(f.mAction));
}
else
{
SafeIfaceArray <IUSBDeviceFilter> coll;
CHECK_ERROR_BREAK(flts, COMGETTER(DeviceFilters)(ComSafeArrayAsOutParam(coll)));
ComPtr<IUSBDeviceFilter> flt = coll[cmd.mIndex];
if (!f.mName.isEmpty())
CHECK_ERROR_BREAK(flt, COMSETTER(Name)(f.mName.raw()));
if (!f.mActive.isNull())
CHECK_ERROR_BREAK(flt, COMSETTER(Active)(f.mActive));
if (!f.mVendorId.isEmpty())
CHECK_ERROR_BREAK(flt, COMSETTER(VendorId)(f.mVendorId.raw()));
if (!f.mProductId.isEmpty())
CHECK_ERROR_BREAK(flt, COMSETTER(ProductId)(f.mProductId.raw()));
if (!f.mRevision.isEmpty())
CHECK_ERROR_BREAK(flt, COMSETTER(Revision)(f.mRevision.raw()));
if (!f.mManufacturer.isEmpty())
CHECK_ERROR_BREAK(flt, COMSETTER(Manufacturer)(f.mManufacturer.raw()));
if (!f.mRemote.isEmpty())
CHECK_ERROR_BREAK(flt, COMSETTER(Remote)(f.mRemote.raw()));
if (!f.mSerialNumber.isEmpty())
CHECK_ERROR_BREAK(flt, COMSETTER(SerialNumber)(f.mSerialNumber.raw()));
if (!f.mMaskedInterfaces.isNull())
CHECK_ERROR_BREAK(flt, COMSETTER(MaskedInterfaces)(f.mMaskedInterfaces));
}
break;

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.