On 3/15/19 7:46 AM, Ján Tomko wrote:
[ not sure how John Snow got on the CC list. Hi, John! ]
s/snapshot/conf/ in the summary
Sure. It's related to my work on snapshots, but independent enough (and doesn't even touch snapshot_conf).
On Fri, Mar 15, 2019 at 12:02:26AM -0500, Eric Blake wrote:
Right now, snapshot_conf.h is rather large - it deals with three separate types: virDomainSnapshotDef (the snapshot definition as it maps to XML), virDomainSnapshotObj (an object containing a def and the relationship to other snapshots), and virDomainSnapshotObjList (a list of snapshot objects), where two of the three types are currently public rather than opaque. What's more, the types are circular: a snapshot def includes a virDomainPtr, which contains a snapshot list, which includes a snapshot object, which includes a snapshot def.
In order to split the three objects into separate files, while still allowing each header to use sane typedefs to incomplete pointers, the obvious solution is to lift the typedefs into yet another header, with no other dependencies. Start the split by factoring out all struct typedefs from domain_conf.h (enum typedefs don't get used in function signatures, and function typedefs tend not to suffer from circular referencing, so those stay put). The only other excpetion is
exception
I can't type late at night :)
# include "internal.h" +# include "virconftypes.h"
The files in src conf do not use the vir prefix. How about "conf_types.h"?
Naming is hard. I can live with that.
# include "capabilities.h" # include "virstorageencryption.h" # include "cpu_conf.h" diff --git a/src/conf/virconftypes.h b/src/conf/virconftypes.h new file mode 100644 index 0000000000..0e0dc3da03 --- /dev/null +++ b/src/conf/virconftypes.h @@ -0,0 +1,278 @@ +/* + * virconftypes.h: struct typedefs to avoid circular inclusion
+ * (derived from domain_conf.h)
I don't think this line is necessary
I don't mind dropping it; but it does explain the long copyright list:
+ * + * Copyright (C) 2006-2019 Red Hat, Inc. + * Copyright (C) 2006-2008 Daniel P. Berrange + * Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
Possibly inaccurate, but better than omitting it.
Yeah, but when splitting files, it's easier to bulk copy the previous attributions than to figure out what can be culled.
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Jano
-- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org