qemu fixes
PATCH 5/6 qemu fixes
Hi,
This is a series of four patches which improve support for qemu on NetBSD.
sys-queue.h defines _SYS_QUEUE_H_ which is also defined by the <sys/queue.h> system header. <sys/disk.h> uses SLIST_ENTRY on NetBSD, which doesn't exist in sys-queue.h. Therefore, include <sys/queue.h> before including sys-queue.h.
Signature · 12 lines
AMD Saxony, Dresden, Germany Operating System Research Center Legal Information: AMD Saxony Limited Liability Company & Co. KG Sitz (Geschäftsanschrift): Wilschdorfer Landstr. 101, 01109 Dresden, Deutschland Registergericht Dresden: HRA 4896 vertretungsberechtigter Komplementär: AMD Saxony LLC (Sitz Wilmington, Delaware, USA) Geschäftsführer der AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy
block.c +5 -1
@@ -21,6 +21,11 @@* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ +#include "config-host.h" +#ifdef _BSD/* include native header before sys-queue.h */ +#include <sys/queue.h> +#endif +#include "qemu-common.h" #include "console.h" #include "block_int.h"
@@ -29,7 +34,6 @@#include <sys/types.h> #include <sys/stat.h> #include <sys/ioctl.h> -#include <sys/queue.h> #include <sys/disk.h> #endif
Quoted 9 lines · Christoph Egger
Hi,
This is a series of four patches which improve support for qemu on NetBSD.
sys-queue.hdefines _SYS_QUEUE_H_ which is also defined by the <sys/queue.h> system header. <sys/disk.h> usesSLIST_ENTRYon NetBSD, which doesn't exist insys-queue.h. Therefore, include <sys/queue.h> before includingsys-queue.h.
Does this patch (which my mail client unfortunately refuses to cite...) take into account that we now have TAILQ_FOREACH_SAFE which NetBSD may lack?
Jan
Signature · 2 lines
Siemens AG, Corporate Technology, CT SE 2 ES-OS Corporate Competence Center Embedded Linux
Quoted 6 lines · On Friday 28 November 2008 12:34:54 Jan Kiszka wrote:
Quoted 5 lines · Christoph Egger
Hi,
This is a series of four patches which improve support for qemu on NetBSD.
Quoted 8 lines
Quoted 4 lines
sys-queue.hdefines _SYS_QUEUE_H_ which is also defined by the <sys/queue.h> system header. <sys/disk.h> usesSLIST_ENTRYon NetBSD, which doesn't exist insys-queue.h. Therefore, include <sys/queue.h> before includingsys-queue.h.Does this patch (which my mail client unfortunately refuses to cite...) take into account that we now have
TAILQ_FOREACH_SAFEwhich NetBSD may lack?
Yes, NetBSD has it:
#define TAILQ_FOREACH_SAFE(var, head, field, next) \
for ((var) = ((head)->tqh_first); \
(var) != NULL && ((next) = TAILQ_NEXT(var, field), 1); \
(var) = (next))Another option to this patch would be:
Renaming _SYS_QUEUE_H_ to QEMU_SYS_QUEUE_H_
at least allows to include both sys-queue.h and <sys/queue.h>.
If the macros are not compatible, gcc prints a warning about redefining them. Using the -Wredundant-decls warning flag, gcc always prints a warning when you try override or duplicate macro defines and function declarations.
Christoph
Signature · 12 lines
AMD Saxony, Dresden, Germany Operating System Research Center Legal Information: AMD Saxony Limited Liability Company & Co. KG Sitz (Geschäftsanschrift): Wilschdorfer Landstr. 101, 01109 Dresden, Deutschland Registergericht Dresden: HRA 4896 vertretungsberechtigter Komplementär: AMD Saxony LLC (Sitz Wilmington, Delaware, USA) Geschäftsführer der AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy
Quoted 24 lines · Christoph Egger
Quoted 6 lines · On Friday 28 November 2008 12:34:54 Jan Kiszka wrote:
Quoted 5 lines · Christoph Egger
Hi,
This is a series of four patches which improve support for qemu on NetBSD.
Quoted 7 lines
Quoted 4 lines
sys-queue.hdefines _SYS_QUEUE_H_ which is also defined by the <sys/queue.h> system header. <sys/disk.h> usesSLIST_ENTRYon NetBSD, which doesn't exist insys-queue.h. Therefore, include <sys/queue.h> before includingsys-queue.h.Does this patch (which my mail client unfortunately refuses to cite...) take into account that we now have
TAILQ_FOREACH_SAFEwhich NetBSD may lack?Yes, NetBSD has it:
#define TAILQ_FOREACH_SAFE(var, head, field, next) \ for ((var) = ((head)->tqh_first); \ (var) != NULL && ((next) = TAILQ_NEXT(var, field), 1); \ (var) = (next))Another option to this patch would be:
Quoted 7 lines
Renaming _SYS_QUEUE_H_ to
QEMU_SYS_QUEUE_H_
at least allows to include bothsys-queue.hand <sys/queue.h>.If the macros are not compatible, gcc prints a warning about redefining them. Using the -Wredundant-decls warning flag, gcc always prints a warning when you try override or duplicate macro defines and function declarations.
I don't think allowing inclusion of both headers in their current form is a good idea. But we may try harder to make the best out of the host's sys/queue.h and provide missing support in form of
#ifndef MACRO_XYZ
#define MACRO_XYZ ...
#endif
Jan
Signature · 2 lines
Siemens AG, Corporate Technology, CT SE 2 ES-OS Corporate Competence Center Embedded Linux
In message: <[email protected]>
Christoph Egger <[email protected]> writes:
: On Friday 28 November 2008 12:34:54 Jan Kiszka wrote:
: > Christoph Egger wrote:
: > > Hi,
: > >
: > > This is a series of four patches which improve support
: > > for qemu on NetBSD.
: > >
: > > sys-queue.h defines _SYS_QUEUE_H_ which is also defined by : > > the <sys/queue.h> system header. <sys/disk.h> uses SLIST_ENTRY : > > on NetBSD, which doesn't exist in sys-queue.h. Therefore, : > > include <sys/queue.h> before including sys-queue.h.
: >
: > Does this patch (which my mail client unfortunately refuses to cite...) : > take into account that we now have TAILQ_FOREACH_SAFE which NetBSD may : > lack?
:
: Yes, NetBSD has it:
:
: #define TAILQ_FOREACH_SAFE(var, head, field, next) \ : for ((var) = ((head)->tqh_first); \ : (var) != NULL && ((next) = TAILQ_NEXT(var, field), 1); \
: (var) = (next))
:
: Another option to this patch would be:
:
: Renaming _SYS_QUEUE_H_ to QEMU_SYS_QUEUE_H_
: at least allows to include both sys-queue.h and <sys/queue.h>.
That would be the better option, because _XXX is reserved for the compiler/library/toolchain, not for the application...
Warner
Blue Swirl
AppliedQuoted 7 lines · Christoph Egger
Hi,
This is a series of four patches which improve support for qemu on NetBSD.
Quoted 7 lines
sys-queue.hdefines _SYS_QUEUE_H_ which is also defined by
the <sys/queue.h> system header. <sys/disk.h> usesSLIST_ENTRYon NetBSD, which doesn't exist insys-queue.h. Therefore, include <sys/queue.h> before includingsys-queue.h.Signed-off-by Christoph Egger <[email protected]>
Thanks, applied.