diff mbox

net: Include iov.h in checksum.h

Message ID 52F485C5.1020107@msgid.tls.msk.ru
State New
Headers show

Commit Message

Michael Tokarev Feb. 7, 2014, 7:05 a.m. UTC
06.02.2014 19:30, Alexander Graf wrote:
> The checksum calculation header exports a function that refers to struct
> iov which is defined in iov.h. Include the header so that the compiler
> knows what this struct is about.

Alternatively (and I sometimes prefer it this way), one can just
declare `struct iovec;' instead of including whole header, because
we don't actually use any definitions from there, and users of
checksum.h wont be including extra dependencies which they don't
use...  Like this:

--- cut ---
Subject: net: declare struct iovec in checksum.h to fix compiler warning
From: Michael Tokarev <mjt@tls.msk.ru>

The checksum calculation header exports a function that refers to
struct iov defined in iov.h.  Without including the former, build
fails like this:

  In file included from hw/net/fsl_etsec/rings.c:24:0:
  include/net/checksum.h:51:31: error: ‘struct iovec’ declared inside parameter list [-Werror]
  include/net/checksum.h:51:31: error: its scope is only this definition or declaration, which is probably not what you want [-Werror]

Mention struct iovec there.

Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>

BTW, this is a -trivial matherial ;)

/mjt

Comments

Alexander Graf Feb. 7, 2014, 7:54 a.m. UTC | #1
> Am 07.02.2014 um 08:05 schrieb Michael Tokarev <mjt@tls.msk.ru>:
> 
> 06.02.2014 19:30, Alexander Graf wrote:
>> The checksum calculation header exports a function that refers to struct
>> iov which is defined in iov.h. Include the header so that the compiler
>> knows what this struct is about.
> 
> Alternatively (and I sometimes prefer it this way), one can just
> declare `struct iovec;' instead of including whole header, because
> we don't actually use any definitions from there, and users of
> checksum.h wont be including extra dependencies which they don't
> use...  Like this:

Either way works for me :)

Alex

> 
> --- cut ---
> Subject: net: declare struct iovec in checksum.h to fix compiler warning
> From: Michael Tokarev <mjt@tls.msk.ru>
> 
> The checksum calculation header exports a function that refers to
> struct iov defined in iov.h.  Without including the former, build
> fails like this:
> 
>  In file included from hw/net/fsl_etsec/rings.c:24:0:
>  include/net/checksum.h:51:31: error: ‘struct iovec’ declared inside parameter list [-Werror]
>  include/net/checksum.h:51:31: error: its scope is only this definition or declaration, which is probably not what you want [-Werror]
> 
> Mention struct iovec there.
> 
> Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
> 
> diff --git a/include/net/checksum.h b/include/net/checksum.h
> index 80203fb..2d7a363 100644
> --- a/include/net/checksum.h
> +++ b/include/net/checksum.h
> @@ -19,6 +19,7 @@
> #define QEMU_NET_CHECKSUM_H
> 
> #include <stdint.h>
> +struct iovec;
> 
> uint32_t net_checksum_add_cont(int len, uint8_t *buf, int seq);
> uint16_t net_checksum_finish(uint32_t sum);
> --- cut ---
> BTW, this is a -trivial matherial ;)
> 
> /mjt
Stefan Hajnoczi Feb. 10, 2014, 10:20 a.m. UTC | #2
On Fri, Feb 07, 2014 at 08:54:00AM +0100, Alexander Graf wrote:
> 
> 
> > Am 07.02.2014 um 08:05 schrieb Michael Tokarev <mjt@tls.msk.ru>:
> > 
> > 06.02.2014 19:30, Alexander Graf wrote:
> >> The checksum calculation header exports a function that refers to struct
> >> iov which is defined in iov.h. Include the header so that the compiler
> >> knows what this struct is about.
> > 
> > Alternatively (and I sometimes prefer it this way), one can just
> > declare `struct iovec;' instead of including whole header, because
> > we don't actually use any definitions from there, and users of
> > checksum.h wont be including extra dependencies which they don't
> > use...  Like this:
> 
> Either way works for me :)

Yes, please take one of them via -trivial.

Stefan
Michael Tokarev Feb. 11, 2014, 10:30 a.m. UTC | #3
10.02.2014 14:20, Stefan Hajnoczi пишет:
> On Fri, Feb 07, 2014 at 08:54:00AM +0100, Alexander Graf wrote:
>>
>>
>>> Am 07.02.2014 um 08:05 schrieb Michael Tokarev <mjt@tls.msk.ru>:
>>>
>>> 06.02.2014 19:30, Alexander Graf wrote:
>>>> The checksum calculation header exports a function that refers to struct
>>>> iov which is defined in iov.h. Include the header so that the compiler
>>>> knows what this struct is about.
>>>
>>> Alternatively (and I sometimes prefer it this way), one can just
>>> declare `struct iovec;' instead of including whole header, because
>>> we don't actually use any definitions from there, and users of
>>> checksum.h wont be including extra dependencies which they don't
>>> use...  Like this:
>>
>> Either way works for me :)
> 
> Yes, please take one of them via -trivial.

I've applied my version to -trivial.

Thanks,

/mjt
diff mbox

Patch

diff --git a/include/net/checksum.h b/include/net/checksum.h
index 80203fb..2d7a363 100644
--- a/include/net/checksum.h
+++ b/include/net/checksum.h
@@ -19,6 +19,7 @@ 
 #define QEMU_NET_CHECKSUM_H

 #include <stdint.h>
+struct iovec;

 uint32_t net_checksum_add_cont(int len, uint8_t *buf, int seq);
 uint16_t net_checksum_finish(uint32_t sum);
--- cut ---