On 4/21/22 17:59, Peter Maydell wrote:
On Thu, 31 Mar 2022 at 13:19, Damien Hedde <damien.he...@greensocs.com> wrote:

This flag will be used in device_add to check if
the device needs special allowance from the machine
model.

It will replace the current check based only on the
device being a TYPE_SYB_BUS_DEVICE.

Signed-off-by: Damien Hedde <damien.he...@greensocs.com>
---

v2:
  + change the flag name and put it just below user_creatable
---
  include/hw/qdev-core.h | 9 +++++++++
  hw/core/qdev.c         | 1 +
  hw/core/sysbus.c       | 1 +
  3 files changed, 11 insertions(+)

diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h
index 92c3d65208..6a040fcd3b 100644
--- a/include/hw/qdev-core.h
+++ b/include/hw/qdev-core.h
@@ -122,6 +122,15 @@ struct DeviceClass {
       * TODO remove once we're there
       */
      bool user_creatable;
+    /*
+     * Some devices can be user created under certain conditions (eg:
+     * specific machine support for sysbus devices), but it is
+     * preferable to prevent global allowance for the reasons
+     * described above.
+     * This flag is an additional constraint over user_creatable:
+     * user_creatable still needs to be set to true.
+     */
+    bool user_creatable_requires_machine_allowance;

"allowance" doesn't have the meaning you seem to be trying to give it here.
(It means "the amount of something you're allowed to have", like
a baggage allowance, or "an amount of money you're given for something",
like a travel allowance.)


Do you mean "user creatable only if the machine permits it" ?
Yes.


More generally, the pluggable-sysbus stuff is an awful hack
that I wish we didn't have to have. I'm not sure I want to see
us expanding the use of it to other device types...

I not really trying to trigger code when adding devices. I'm just trying to use the related per-machine allow-list as a way to prevent the user to add such devices (specifically cpu group/cluster) on any random machine which would most probably not "work".

Thanks,
Damien

Reply via email to