1/*
2 *  testvmx.cpp
3 *  testkext
4 *
5 */
6
7#include "testvmx.h"
8
9#if !(defined(__i386__) || defined(__x86_64__))
10#error VMX only supported on i386/x86_64
11#endif
12
13#include <mach/boolean.h>
14#include <i386/vmx.h>
15
16
17#define super IOService
18OSDefineMetaClassAndStructors(testvmx, super);
19
20bool
21testvmx::start( IOService * provider )
22{
23    int ret;
24
25    IOLog("%s\n", __PRETTY_FUNCTION__);
26
27    if (!super::start(provider)) {
28        return false;
29    }
30
31    IOLog("Attempting host_vmxon\n");
32    ret = host_vmxon(FALSE);
33    IOLog("host_vmxon: %d\n", ret);
34
35    return true;
36}
37
38void
39testvmx::stop( IOService * provider )
40{
41    IOLog("%s\n", __PRETTY_FUNCTION__);
42
43    super::stop(provider);
44
45    IOLog("Attempting host_vmxoff\n");
46    host_vmxoff();
47    IOLog("host_vmxoff called\n");
48}
49