Patchwork Cocoa: Avoid missing prototype warnings for qemu_main

login
register
mail settings
Submitter Andreas Färber
Date Sept. 11, 2010, 9:55 a.m.
Message ID <1284198955-11234-1-git-send-email-andreas.faerber@web.de>
Download mbox | patch
Permalink /patch/64506/
State New
Headers show

Comments

Andreas Färber - Sept. 11, 2010, 9:55 a.m.
In vl.c main is redefined to qemu_main but no prototype is available.
Move it into qemu-common.h since it is needed in ui/cocoa.m, too.
Adjust the call sites to the signature used in vl.c.

Signed-off-by: Andreas Färber <andreas.faerber@web.de>
---
 qemu-common.h |    4 ++++
 ui/cocoa.m    |    5 ++---
 2 files changed, 6 insertions(+), 3 deletions(-)
Stefan Weil - Sept. 11, 2010, 1:26 p.m.
Am 11.09.2010 11:55, schrieb Andreas Färber:
> In vl.c main is redefined to qemu_main but no prototype is available.
> Move it into qemu-common.h since it is needed in ui/cocoa.m, too.
> Adjust the call sites to the signature used in vl.c.
>
> Signed-off-by: Andreas Färber<andreas.faerber@web.de>
> ---
>   qemu-common.h |    4 ++++
>   ui/cocoa.m    |    5 ++---
>   2 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/qemu-common.h b/qemu-common.h
> index dfd3dc0..f8ce3ce 100644
> --- a/qemu-common.h
> +++ b/qemu-common.h
> @@ -13,6 +13,10 @@
>
>   #define QEMU_BUILD_BUG_ON(x) typedef char __build_bug_on__##__LINE__[(x)?-1:1];
>
> +#ifdef CONFIG_COCOA
> +int qemu_main(int argc, char** argv, char** envp);
> +#endif
> +
>    

Is this conditional compilation needed here, or
could qemu_main be declared unconditionally?

>   typedef struct QEMUTimer QEMUTimer;
>   typedef struct QEMUFile QEMUFile;
>   typedef struct QEMUBH QEMUBH;
> diff --git a/ui/cocoa.m b/ui/cocoa.m
> index 56c789a..d7deb0e 100644
> --- a/ui/cocoa.m
> +++ b/ui/cocoa.m
> @@ -61,7 +61,6 @@ typedef struct {
>       int bitsPerPixel;
>   } QEMUScreen;
>
> -int qemu_main(int argc, char **argv); // main defined in qemu/vl.c
>   NSWindow *normalWindow;
>   id cocoaView;
>   static DisplayChangeListener *dcl;
> @@ -794,7 +793,7 @@ static int cocoa_keycode_to_qemu(int keycode)
>       COCOA_DEBUG("QemuCocoaAppController: startEmulationWithArgc\n");
>
>       int status;
> -    status = qemu_main(argc, argv);
> +    status = qemu_main(argc, argv, NULL);
>       exit(status);
>   }
>
> @@ -868,7 +867,7 @@ int main (int argc, const char * argv[]) {
>           if (!strcmp(argv[i], "-vnc") ||
>               !strcmp(argv[i], "-nographic") ||
>               !strcmp(argv[i], "-curses")) {
> -                return qemu_main(gArgc, gArgv);
> +                return qemu_main(gArgc, gArgv, NULL);
>           }
>       }
>
>
Andreas Färber - Sept. 11, 2010, 2:20 p.m.
Am 11.09.2010 um 15:26 schrieb Stefan Weil:

> Am 11.09.2010 11:55, schrieb Andreas Färber:
>> In vl.c main is redefined to qemu_main but no prototype is available.
>> Move it into qemu-common.h since it is needed in ui/cocoa.m, too.
>> Adjust the call sites to the signature used in vl.c.
>>
>> Signed-off-by: Andreas Färber<andreas.faerber@web.de>

>> diff --git a/qemu-common.h b/qemu-common.h
>> index dfd3dc0..f8ce3ce 100644
>> --- a/qemu-common.h
>> +++ b/qemu-common.h
>> @@ -13,6 +13,10 @@
>>
>>  #define QEMU_BUILD_BUG_ON(x) typedef char  
>> __build_bug_on__##__LINE__[(x)?-1:1];
>>
>> +#ifdef CONFIG_COCOA
>> +int qemu_main(int argc, char** argv, char** envp);
>> +#endif
>> +
>>
>
> Is this conditional compilation needed here, or
> could qemu_main be declared unconditionally?

There's another (identical) declaration for SDL, but SDL on Solaris  
does not take that code path, so I couldn't test.

The tricky thing is that when CONFIG_SDL and (main or __APPLE__) is  
defined, a new main() function is provided that already uses  
qemu_main(), likely before qemu-common.h is included.

Anyway, generalizing it should be done in a follow-on patch imo, so  
that the SDL part can be reverted independently.

Andreas
Andreas Färber - Sept. 19, 2010, 9:36 a.m.
Am 11.09.2010 um 11:55 schrieb Andreas Färber:

> In vl.c main is redefined to qemu_main but no prototype is available.
> Move it into qemu-common.h since it is needed in ui/cocoa.m, too.
> Adjust the call sites to the signature used in vl.c.
>
> Signed-off-by: Andreas Färber <andreas.faerber@web.de>

Ping? Should I issue a pull request for this?
Or might console.h be a better place for the prototype to live than  
qemu-common.h?
Or does SDL need to be refactored at the same time? In that case I  
would need suggestions and (Win32?) testers.

Regards,
Andreas

> ---
> qemu-common.h |    4 ++++
> ui/cocoa.m    |    5 ++---
> 2 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/qemu-common.h b/qemu-common.h
> index dfd3dc0..f8ce3ce 100644
> --- a/qemu-common.h
> +++ b/qemu-common.h
> @@ -13,6 +13,10 @@
>
> #define QEMU_BUILD_BUG_ON(x) typedef char  
> __build_bug_on__##__LINE__[(x)?-1:1];
>
> +#ifdef CONFIG_COCOA
> +int qemu_main(int argc, char** argv, char** envp);
> +#endif
> +
> typedef struct QEMUTimer QEMUTimer;
> typedef struct QEMUFile QEMUFile;
> typedef struct QEMUBH QEMUBH;
> diff --git a/ui/cocoa.m b/ui/cocoa.m
> index 56c789a..d7deb0e 100644
> --- a/ui/cocoa.m
> +++ b/ui/cocoa.m
> @@ -61,7 +61,6 @@ typedef struct {
>     int bitsPerPixel;
> } QEMUScreen;
>
> -int qemu_main(int argc, char **argv); // main defined in qemu/vl.c
> NSWindow *normalWindow;
> id cocoaView;
> static DisplayChangeListener *dcl;
> @@ -794,7 +793,7 @@ static int cocoa_keycode_to_qemu(int keycode)
>     COCOA_DEBUG("QemuCocoaAppController: startEmulationWithArgc\n");
>
>     int status;
> -    status = qemu_main(argc, argv);
> +    status = qemu_main(argc, argv, NULL);
>     exit(status);
> }
>
> @@ -868,7 +867,7 @@ int main (int argc, const char * argv[]) {
>         if (!strcmp(argv[i], "-vnc") ||
>             !strcmp(argv[i], "-nographic") ||
>             !strcmp(argv[i], "-curses")) {
> -                return qemu_main(gArgc, gArgv);
> +                return qemu_main(gArgc, gArgv, NULL);
>         }
>     }
>
> -- 
> 1.7.0.4
>
>

Patch

diff --git a/qemu-common.h b/qemu-common.h
index dfd3dc0..f8ce3ce 100644
--- a/qemu-common.h
+++ b/qemu-common.h
@@ -13,6 +13,10 @@ 
 
 #define QEMU_BUILD_BUG_ON(x) typedef char __build_bug_on__##__LINE__[(x)?-1:1];
 
+#ifdef CONFIG_COCOA
+int qemu_main(int argc, char** argv, char** envp);
+#endif
+
 typedef struct QEMUTimer QEMUTimer;
 typedef struct QEMUFile QEMUFile;
 typedef struct QEMUBH QEMUBH;
diff --git a/ui/cocoa.m b/ui/cocoa.m
index 56c789a..d7deb0e 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -61,7 +61,6 @@  typedef struct {
     int bitsPerPixel;
 } QEMUScreen;
 
-int qemu_main(int argc, char **argv); // main defined in qemu/vl.c
 NSWindow *normalWindow;
 id cocoaView;
 static DisplayChangeListener *dcl;
@@ -794,7 +793,7 @@  static int cocoa_keycode_to_qemu(int keycode)
     COCOA_DEBUG("QemuCocoaAppController: startEmulationWithArgc\n");
 
     int status;
-    status = qemu_main(argc, argv);
+    status = qemu_main(argc, argv, NULL);
     exit(status);
 }
 
@@ -868,7 +867,7 @@  int main (int argc, const char * argv[]) {
         if (!strcmp(argv[i], "-vnc") ||
             !strcmp(argv[i], "-nographic") ||
             !strcmp(argv[i], "-curses")) {
-                return qemu_main(gArgc, gArgv);
+                return qemu_main(gArgc, gArgv, NULL);
         }
     }