#include <hv/kvm/accelerant.hpp>
#include <utils/unique_fd.hpp>

#include <sys/file.h>

namespace hv::kvm {

	util::Ref<Accelerant> Accelerant::create() {
		auto fd = util::UniqueFd{open("/dev/kvm", O_RDWR|O_CLOEXEC)};
		if(!fd)
			util::throwError(util::Error::systemError());

		return util::Ref<Accelerant>(new Accelerant(std::move(fd)));
	}

	Accelerant::Accelerant(util::UniqueFd&& fd)
		: deviceFd(std::move(fd)) {
	}
}
