[PATCH-for-8.1] block/dmg: Declare a type definition for DMG uncompress function

Philippe Mathieu-Daudé posted 1 patch 1 year, 1 month ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20230320152610.32052-1-philmd@linaro.org
Maintainers: Stefan Hajnoczi <stefanha@redhat.com>, Kevin Wolf <kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>
block/dmg.h | 8 ++++----
block/dmg.c | 7 ++-----
2 files changed, 6 insertions(+), 9 deletions(-)
[PATCH-for-8.1] block/dmg: Declare a type definition for DMG uncompress function
Posted by Philippe Mathieu-Daudé 1 year, 1 month ago
Introduce the BdrvDmgUncompressFunc type defintion. To emphasis
dmg_uncompress_bz2 and dmg_uncompress_lzfse are pointer to functions,
declare them using this new typedef.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 block/dmg.h | 8 ++++----
 block/dmg.c | 7 ++-----
 2 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/block/dmg.h b/block/dmg.h
index e488601b62..dcd6165e63 100644
--- a/block/dmg.h
+++ b/block/dmg.h
@@ -51,10 +51,10 @@ typedef struct BDRVDMGState {
     z_stream zstream;
 } BDRVDMGState;
 
-extern int (*dmg_uncompress_bz2)(char *next_in, unsigned int avail_in,
-                                 char *next_out, unsigned int avail_out);
+typedef int BdrvDmgUncompressFunc(char *next_in, unsigned int avail_in,
+                                  char *next_out, unsigned int avail_out);
 
-extern int (*dmg_uncompress_lzfse)(char *next_in, unsigned int avail_in,
-                                   char *next_out, unsigned int avail_out);
+extern BdrvDmgUncompressFunc *dmg_uncompress_bz2;
+extern BdrvDmgUncompressFunc *dmg_uncompress_lzfse;
 
 #endif
diff --git a/block/dmg.c b/block/dmg.c
index e10b9a2ba5..2769900359 100644
--- a/block/dmg.c
+++ b/block/dmg.c
@@ -31,11 +31,8 @@
 #include "qemu/memalign.h"
 #include "dmg.h"
 
-int (*dmg_uncompress_bz2)(char *next_in, unsigned int avail_in,
-                          char *next_out, unsigned int avail_out);
-
-int (*dmg_uncompress_lzfse)(char *next_in, unsigned int avail_in,
-                            char *next_out, unsigned int avail_out);
+BdrvDmgUncompressFunc *dmg_uncompress_bz2;
+BdrvDmgUncompressFunc *dmg_uncompress_lzfse;
 
 enum {
     /* Limit chunk sizes to prevent unreasonable amounts of memory being used
-- 
2.38.1


Re: [PATCH-for-8.1] block/dmg: Declare a type definition for DMG uncompress function
Posted by Stefan Hajnoczi 1 year ago
On Mon, Mar 20, 2023 at 04:26:10PM +0100, Philippe Mathieu-Daudé wrote:
> Introduce the BdrvDmgUncompressFunc type defintion. To emphasis
> dmg_uncompress_bz2 and dmg_uncompress_lzfse are pointer to functions,
> declare them using this new typedef.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>  block/dmg.h | 8 ++++----
>  block/dmg.c | 7 ++-----
>  2 files changed, 6 insertions(+), 9 deletions(-)

Sorry for the delay, applied to my block-next tree:
https://gitlab.com/stefanha/qemu/commits/block-next

Stefan
Re: [PATCH-for-8.1] block/dmg: Declare a type definition for DMG uncompress function
Posted by Philippe Mathieu-Daudé 1 year, 1 month ago
On 20/3/23 16:26, Philippe Mathieu-Daudé wrote:
> Introduce the BdrvDmgUncompressFunc type defintion. To emphasis

Typo "definition".

> dmg_uncompress_bz2 and dmg_uncompress_lzfse are pointer to functions,
> declare them using this new typedef.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   block/dmg.h | 8 ++++----
>   block/dmg.c | 7 ++-----
>   2 files changed, 6 insertions(+), 9 deletions(-)


Re: [PATCH-for-8.1] block/dmg: Declare a type definition for DMG uncompress function
Posted by Philippe Mathieu-Daudé 1 year, 1 month ago
On 20/3/23 16:26, Philippe Mathieu-Daudé wrote:
> Introduce the BdrvDmgUncompressFunc type defintion. To emphasis
> dmg_uncompress_bz2 and dmg_uncompress_lzfse are pointer to functions,
> declare them using this new typedef.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   block/dmg.h | 8 ++++----
>   block/dmg.c | 7 ++-----
>   2 files changed, 6 insertions(+), 9 deletions(-)


> diff --git a/block/dmg.c b/block/dmg.c
> index e10b9a2ba5..2769900359 100644
> --- a/block/dmg.c
> +++ b/block/dmg.c
> @@ -31,11 +31,8 @@
>   #include "qemu/memalign.h"
>   #include "dmg.h"
>   
> -int (*dmg_uncompress_bz2)(char *next_in, unsigned int avail_in,
> -                          char *next_out, unsigned int avail_out);
> -
> -int (*dmg_uncompress_lzfse)(char *next_in, unsigned int avail_in,
> -                            char *next_out, unsigned int avail_out);
> +BdrvDmgUncompressFunc *dmg_uncompress_bz2;
> +BdrvDmgUncompressFunc *dmg_uncompress_lzfse;

Unrelated, but since DMG maintainers are Cc'ed, upstream lzfse warning:

In file included from ../../block/dmg-lzfse.c:26:
/opt/homebrew/Cellar/lzfse/1.0/include/lzfse.h:56:43: warning: this 
function declaration is not a prototype [-Wstrict-prototypes]
LZFSE_API size_t lzfse_encode_scratch_size();
                                           ^
                                            void

Unfortunately last upstream activity was 6 years ago...
https://github.com/lzfse/lzfse/pulls

Re: [PATCH-for-8.1] block/dmg: Declare a type definition for DMG uncompress function
Posted by Philippe Mathieu-Daudé 1 year, 1 month ago
On 20/3/23 16:56, Philippe Mathieu-Daudé wrote:
> On 20/3/23 16:26, Philippe Mathieu-Daudé wrote:
>> Introduce the BdrvDmgUncompressFunc type defintion. To emphasis
>> dmg_uncompress_bz2 and dmg_uncompress_lzfse are pointer to functions,
>> declare them using this new typedef.
>>
>> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
>> ---
>>   block/dmg.h | 8 ++++----
>>   block/dmg.c | 7 ++-----
>>   2 files changed, 6 insertions(+), 9 deletions(-)
> 
> 
>> diff --git a/block/dmg.c b/block/dmg.c
>> index e10b9a2ba5..2769900359 100644
>> --- a/block/dmg.c
>> +++ b/block/dmg.c
>> @@ -31,11 +31,8 @@
>>   #include "qemu/memalign.h"
>>   #include "dmg.h"
>> -int (*dmg_uncompress_bz2)(char *next_in, unsigned int avail_in,
>> -                          char *next_out, unsigned int avail_out);
>> -
>> -int (*dmg_uncompress_lzfse)(char *next_in, unsigned int avail_in,
>> -                            char *next_out, unsigned int avail_out);
>> +BdrvDmgUncompressFunc *dmg_uncompress_bz2;
>> +BdrvDmgUncompressFunc *dmg_uncompress_lzfse;
> 
> Unrelated, but since DMG maintainers are Cc'ed, upstream lzfse warning:
> 
> In file included from ../../block/dmg-lzfse.c:26:
> /opt/homebrew/Cellar/lzfse/1.0/include/lzfse.h:56:43: warning: this 
> function declaration is not a prototype [-Wstrict-prototypes]
> LZFSE_API size_t lzfse_encode_scratch_size();
>                                            ^
>                                             void

Reported in 2016:
https://github.com/lzfse/lzfse/issues/3#issuecomment-226574719

> Unfortunately last upstream activity was 6 years ago...
> https://github.com/lzfse/lzfse/pulls