On Tue, Oct 30, 2018 at 12:13:45PM +0100, Gerd Hoffmann wrote: > Indicates support state for somerhing (device, backend, subsystem, ...) > in qemu. Modeled roughly after the "S:" states we have in MAINTANERS. >
Personally, I would prefer to start with a very simple data model (e.g. a 'deprecated' boolean flag), instead of trying to model every possibility in the first version. With a detailed maintenance status flag, the meaning of the values would be confusing for somebody using a downstream distribution of QEMU. Would it reflect upstream maintenance status, or downstream vendor guarantees about support? Would downstream vendors be required to patch QEMU to update DeviceClass::supported on every device they ship? I think this would cause confusion and require extra work for every downstream vendor, and not solve any real world problems. A 'deprecated' flag could still require extra work, but only in a few specific cases: deprecated devices are the exception, not the rule, and downstream vendors would only need to touch device code if their deprecation status is different from upstream. > Signed-off-by: Gerd Hoffmann <kra...@redhat.com> > --- [...] > + > +## > +# @SupportState: > +# > +# Indicate Support level of qemu devices, backends, subsystems, ... If we're following that path, I would like to get each possible value for this enum to be clearly documented. Especially considering that this don't match the list on MAINTAINERS exactly. For example, I don't understand the difference between "obsolete" and "deprecated". > +# > +# Since: 3.2 > +## > +{ 'enum': 'SupportState', > + 'data': [ 'unknown', > + 'supported', > + 'maintained', > + 'odd-fixes', > + 'orphan', > + 'obsolete', > + 'deprecated' ] } > diff --git a/util/Makefile.objs b/util/Makefile.objs > index 0820923c18..6e5f8faf82 100644 > --- a/util/Makefile.objs > +++ b/util/Makefile.objs > @@ -50,5 +50,6 @@ util-obj-y += range.o > util-obj-y += stats64.o > util-obj-y += systemd.o > util-obj-y += iova-tree.o > +util-obj-y += support-state.o > util-obj-$(CONFIG_LINUX) += vfio-helpers.o > util-obj-$(CONFIG_OPENGL) += drm.o > -- > 2.9.3 > -- Eduardo