8#ifndef _LIBQBOX_COMPONENTS_USB_STORAGE_H
9#define _LIBQBOX_COMPONENTS_USB_STORAGE_H
11#include <module_factory_registery.h>
18 std::string blkdev_id;
19 cci::cci_param<std::string> blkdev_str;
22 usb_storage(
const sc_core::sc_module_name& name, sc_core::sc_object*
o, sc_core::sc_object*
t)
28 , blkdev_id(std::string(name()) +
"-id")
29 , blkdev_str(
"blkdev_str",
"",
"blkdev string for QEMU (do not specify ID)")
31 if (!blkdev_str.get_value().empty()) {
32 std::stringstream
opts;
33 opts << blkdev_str.get_value();
34 opts <<
",id=" << blkdev_id;
39 set_dev_props = [
this]() ->
void { m_dev.set_prop_parse(
"drive", blkdev_id.c_str()); };
41 SCP_FATAL(()) <<
"usb storage needs a blkdev_str CCI Parameter!";
43 xhci->add_device(*
this);
47extern "C" void module_register();
This class encapsulates a libqemu-cxx qemu::LibQemu instance. It handles QEMU parameters and instance...
Definition qemu-instance.h:86
void add_arg(const char *arg)
Add a command line argument to the qemu instance.
Definition qemu-instance.h:327
Definition qemu_xhci.h:20
This class wraps the qemu's XHCI USB controller: eXtensible Host Controller Interface.
Definition qemu_xhci.h:17
Definition usb_storage.h:16