+ instr_user_variable(0, "", variable, "VM", 0, InstrUserVariable::DECLARE, color, &user_vm_variables);
+}
+
+/** @brief Set the value of a variable of a vm */
+void set_vm_variable(const std::string& vm, const std::string& variable, double value, double time)
+{
+ instr_user_variable(time, vm, variable, "VM", value, InstrUserVariable::SET, "", &user_vm_variables);
+}
+
+/** @brief Add a value to a variable of a VM */
+void add_vm_variable(const std::string& vm, const std::string& variable, double value, double time)
+{
+ instr_user_variable(time, vm, variable, "VM", value, InstrUserVariable::ADD, "", &user_vm_variables);
+}
+
+/** @brief Subtract a value from a variable of a VM */
+void sub_vm_variable(const std::string& vm, const std::string& variable, double value, double time)
+{
+ instr_user_variable(time, vm, variable, "VM", value, InstrUserVariable::SUB, "", &user_vm_variables);
+}
+
+/** @brief Get VM variables that were already declared with #declare_vm_variable. */
+const std::set<std::string, std::less<>>& get_vm_variables()
+{
+ return user_vm_variables;