124 cci::cci_param<bool> p_enabled;
127 std::string _qemu_opts;
129 std::string _display_device_id;
130 std::vector<std::string> spoofed_options = {
":",
"head=",
"display=" };
145 , p_enabled(std::
string(
"enable"),
false,
"Default state")
147 cci::cci_param<std::string>
params_input(std::string(
"params"),
"",
"Qemu VNC configuration");
149 if (p_enabled.get_value()) {
154 SCP_INFO(())(
"Qemu parameter: {}", _qemu_opts);
158 bool is_enabled()
const {
return p_enabled.get_value(); }
160 std::string_view get_qemu_opts()
const {
return std::string_view(_qemu_opts); }
163 void build_qemu_vnc_arguments(
const std::string&
user_options)
176 _qemu_opts.append(get_display_opt(
',')).
append(get_head_opt(
','));
180 _qemu_opts.append(
option +
',');
185 _qemu_opts.append(get_display_device_opt());
188 bool spoofed_opt(
const std::string_view&
option)
190 for (
const std::string& spoofed_opt : spoofed_options) {
191 if (
option.find(spoofed_opt) == 0) {
192 SCP_WARN(())(
"Option {} provided by the user will be ignored.", spoofed_opt);
201 std::string
head_opt =
"head=" + std::to_string(_display_index);
210 std::string
display_opt =
":" + std::to_string(_display_index);
217 std::string get_display_device_opt(
char append_suffix =
'\0')
230 sc_core::sc_vector<VncConfiguration> vnc;
239 bool is_vnc_enabled()
249 void fill_vnc_options(std::vector<std::string>&
vnc_options)
265 display(
const sc_core::sc_module_name& name, sc_core::sc_object*
gpu);
283 void before_end_of_elaboration()
override;
285 void end_of_elaboration()
override;
287 void start_of_simulation()
override;
291 bool is_instantiated()
const;
292 bool is_realized()
const;
294 const std::vector<qemu::SDL2Console>* get_sdl2_consoles()
const;
Qemu Display abstraction as a SystemC module.
Definition display.h:31
VncConfiguration(const sc_core::sc_module_name &n, ssize_t display_index, const std::string &display_device_id)
Construct a new VNC VncConfiguration.
Definition display.h:141