When multiple QOM types are registered in the same file, it
is clearer and simpler to use the the DEFINE_TYPES() macro.
Add a rule to checkpatch.pl to suggest using DEFINE_TYPES()
instead of type_init() / type_register_static().
Suggested-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
scripts/checkpatch.pl | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index eeaec436eb..db8029635c 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -2877,6 +2877,12 @@ sub process {
if ($line =~ /^module_init\s*\(/) {
ERROR("please use block_init(), type_init() etc. instead of module_init()\n" . $herecurr);
}
+
+# recommend DEFINE_TYPES() over type_init()/type_register_static()
+ if ($line =~ /\b(type_init|type_register_static)\(/) {
+ WARN("consider using DEFINE_TYPES() in preference to type_init()\n" . $herecurr);
+ }
+
# check for various ops structs, ensure they are const.
my $struct_ops = qr{AIOCBInfo|
BdrvActionOps|
--
2.38.1
On 5/24/23 11:54, Philippe Mathieu-Daudé wrote:
> When multiple QOM types are registered in the same file, it
> is clearer and simpler to use the the DEFINE_TYPES() macro.
>
> Add a rule to checkpatch.pl to suggest using DEFINE_TYPES()
> instead of type_init() / type_register_static().
>
Nice!
> Suggested-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
> scripts/checkpatch.pl | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index eeaec436eb..db8029635c 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
> @@ -2877,6 +2877,12 @@ sub process {
> if ($line =~ /^module_init\s*\(/) {
> ERROR("please use block_init(), type_init() etc. instead of module_init()\n" . $herecurr);
> }
> +
> +# recommend DEFINE_TYPES() over type_init()/type_register_static()
> + if ($line =~ /\b(type_init|type_register_static)\(/) {
> + WARN("consider using DEFINE_TYPES() in preference to type_init()\n" . $herecurr);
> + }
> +
> # check for various ops structs, ensure they are const.
> my $struct_ops = qr{AIOCBInfo|
> BdrvActionOps|
On 5/24/23 07:54, Philippe Mathieu-Daudé wrote: > When multiple QOM types are registered in the same file, it > is clearer and simpler to use the the DEFINE_TYPES() macro. > > Add a rule to checkpatch.pl to suggest using DEFINE_TYPES() > instead of type_init() / type_register_static(). > > Suggested-by: Daniel Henrique Barboza<dbarboza@ventanamicro.com> > Signed-off-by: Philippe Mathieu-Daudé<philmd@linaro.org> > --- > scripts/checkpatch.pl | 6 ++++++ > 1 file changed, 6 insertions(+) Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
© 2016 - 2026 Red Hat, Inc.