diff mbox

hw/arm/spitz: Avoid clash with Windows header symbol MOD_SHIFT

Message ID 1392925525-14574-1-git-send-email-peter.maydell@linaro.org
State New
Headers show

Commit Message

Peter Maydell Feb. 20, 2014, 7:45 p.m. UTC
The Windows headers provided by MinGW define MOD_SHIFT. Avoid
it by using SPITZ_MOD_* for our constants here.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
The other approach would be just to #undef MOD_SHIFT, (and
looking back through the archives I see Stefan posted a patch
to do just that last year) but I think it's cleaner to do this.

I replaced a few of the /* apostrophe */ keysym names with
the symbols just to keep us under the 80 column limit...
---
 hw/arm/spitz.c | 108 +++++++++++++++++++++++++++++++--------------------------
 1 file changed, 58 insertions(+), 50 deletions(-)

Comments

Stefan Weil Feb. 20, 2014, 9:26 p.m. UTC | #1
Am 20.02.2014 20:45, schrieb Peter Maydell:
> The Windows headers provided by MinGW define MOD_SHIFT. Avoid
> it by using SPITZ_MOD_* for our constants here.
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> The other approach would be just to #undef MOD_SHIFT, (and
> looking back through the archives I see Stefan posted a patch
> to do just that last year) but I think it's cleaner to do this.
> 
> I replaced a few of the /* apostrophe */ keysym names with
> the symbols just to keep us under the 80 column limit...
> ---
>  hw/arm/spitz.c | 108 +++++++++++++++++++++++++++++++--------------------------
>  1 file changed, 58 insertions(+), 50 deletions(-)


That old patch is still in my local queue :-)

There was a suggestion to remove some dependencies on windows.h (which
causes the trouble here). I recently started doing this, and that
approach fixes the warning, too. Maybe I can send a patch next weekend.

Regards
Stefan
Peter Maydell Feb. 20, 2014, 10:22 p.m. UTC | #2
On 20 February 2014 21:26, Stefan Weil <sw@weilnetz.de> wrote:
> There was a suggestion to remove some dependencies on windows.h (which
> causes the trouble here). I recently started doing this, and that
> approach fixes the warning, too. Maybe I can send a patch next weekend.

That would probably be the nicest approach, yes. I won't apply
this to the target-arm queue just yet.

I'm wondering if we might be able to get to the point of enabling
-Werror for Windows and MacOSX builds. Do you think that would
be a useful thing to do? (Obviously for git builds only, same as Linux.)

(For MacOSX there are some deprecation warnings in the audio
code I need to fix first but we otherwise compile pretty much
warning free on 10.8. I'd be reliant on reports from other people
for warnings on 10.9 and on earlier-than-10.8, though.)

thanks
-- PMM
Stefan Weil Feb. 21, 2014, 5:37 a.m. UTC | #3
Am 20.02.2014 23:22, schrieb Peter Maydell:
> On 20 February 2014 21:26, Stefan Weil <sw@weilnetz.de> wrote:
>> There was a suggestion to remove some dependencies on windows.h (which
>> causes the trouble here). I recently started doing this, and that
>> approach fixes the warning, too. Maybe I can send a patch next weekend.
> 
> That would probably be the nicest approach, yes. I won't apply
> this to the target-arm queue just yet.
> 
> I'm wondering if we might be able to get to the point of enabling
> -Werror for Windows and MacOSX builds. Do you think that would
> be a useful thing to do? (Obviously for git builds only, same as Linux.)

Yes, I think so. With MinGW-w64 this is quite realistic, even when I add
-Wextra (which I also use for my Linux builds). Some less important
warnings must be suppressed then, of course.

> (For MacOSX there are some deprecation warnings in the audio
> code I need to fix first but we otherwise compile pretty much
> warning free on 10.8. I'd be reliant on reports from other people
> for warnings on 10.9 and on earlier-than-10.8, though.)

10.9 also shows the audio deprecation warnings, but that's all as far as
I remember.

Stefan
Peter Maydell May 9, 2014, 12:56 p.m. UTC | #4
On 20 February 2014 19:45, Peter Maydell <peter.maydell@linaro.org> wrote:
> The Windows headers provided by MinGW define MOD_SHIFT. Avoid
> it by using SPITZ_MOD_* for our constants here.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> The other approach would be just to #undef MOD_SHIFT, (and
> looking back through the archives I see Stefan posted a patch
> to do just that last year) but I think it's cleaner to do this.
>
> I replaced a few of the /* apostrophe */ keysym names with
> the symbols just to keep us under the 80 column limit...
> ---
>  hw/arm/spitz.c | 108 +++++++++++++++++++++++++++++++--------------------------
>  1 file changed, 58 insertions(+), 50 deletions(-)

I see the patchset to try to reduce the scope where windows.h
is pulled in got a bit bogged down in review. Stefan, are you
still planning to move forward with that, or should we maybe
just apply this patch fror now? I think this is the only w32
build warning currently...

thanks
-- PMM
Peter Maydell June 16, 2014, 9:13 a.m. UTC | #5
On 9 May 2014 13:56, Peter Maydell <peter.maydell@linaro.org> wrote:
> On 20 February 2014 19:45, Peter Maydell <peter.maydell@linaro.org> wrote:
>> The Windows headers provided by MinGW define MOD_SHIFT. Avoid
>> it by using SPITZ_MOD_* for our constants here.
>>
>> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
>> ---
>> The other approach would be just to #undef MOD_SHIFT, (and
>> looking back through the archives I see Stefan posted a patch
>> to do just that last year) but I think it's cleaner to do this.
>>
>> I replaced a few of the /* apostrophe */ keysym names with
>> the symbols just to keep us under the 80 column limit...
>> ---
>>  hw/arm/spitz.c | 108 +++++++++++++++++++++++++++++++--------------------------
>>  1 file changed, 58 insertions(+), 50 deletions(-)
>
> I see the patchset to try to reduce the scope where windows.h
> is pulled in got a bit bogged down in review. Stefan, are you
> still planning to move forward with that, or should we maybe
> just apply this patch fror now? I think this is the only w32
> build warning currently...

I'm going to put this patch into target-arm.next, because
I'm bored with seeing those MOD_SHIFT warnings go by...

thanks
-- PMM
diff mbox

Patch

diff --git a/hw/arm/spitz.c b/hw/arm/spitz.c
index 2decff1..232a587 100644
--- a/hw/arm/spitz.c
+++ b/hw/arm/spitz.c
@@ -285,9 +285,9 @@  static void spitz_keyboard_keydown(SpitzKeyboardState *s, int keycode)
     spitz_keyboard_sense_update(s);
 }
 
-#define MOD_SHIFT   (1 << 7)
-#define MOD_CTRL    (1 << 8)
-#define MOD_FN      (1 << 9)
+#define SPITZ_MOD_SHIFT   (1 << 7)
+#define SPITZ_MOD_CTRL    (1 << 8)
+#define SPITZ_MOD_FN      (1 << 9)
 
 #define QUEUE_KEY(c)	s->fifo[(s->fifopos + s->fifolen ++) & 0xf] = c
 
@@ -324,21 +324,26 @@  static void spitz_keyboard_handler(void *opaque, int keycode)
     }
 
     code = s->pre_map[mapcode = ((s->modifiers & 3) ?
-            (keycode | MOD_SHIFT) :
-            (keycode & ~MOD_SHIFT))];
+            (keycode | SPITZ_MOD_SHIFT) :
+            (keycode & ~SPITZ_MOD_SHIFT))];
 
     if (code != mapcode) {
 #if 0
-        if ((code & MOD_SHIFT) && !(s->modifiers & 1))
+        if ((code & SPITZ_MOD_SHIFT) && !(s->modifiers & 1)) {
             QUEUE_KEY(0x2a | (keycode & 0x80));
-        if ((code & MOD_CTRL ) && !(s->modifiers & 4))
+        }
+        if ((code & SPITZ_MOD_CTRL) && !(s->modifiers & 4)) {
             QUEUE_KEY(0x1d | (keycode & 0x80));
-        if ((code & MOD_FN   ) && !(s->modifiers & 8))
+        }
+        if ((code & SPITZ_MOD_FN) && !(s->modifiers & 8)) {
             QUEUE_KEY(0x38 | (keycode & 0x80));
-        if ((code & MOD_FN   ) && (s->modifiers & 1))
+        }
+        if ((code & SPITZ_MOD_FN) && (s->modifiers & 1)) {
             QUEUE_KEY(0x2a | (~keycode & 0x80));
-        if ((code & MOD_FN   ) && (s->modifiers & 2))
+        }
+        if ((code & SPITZ_MOD_FN) && (s->modifiers & 2)) {
             QUEUE_KEY(0x36 | (~keycode & 0x80));
+        }
 #else
         if (keycode & 0x80) {
             if ((s->imodifiers & 1   ) && !(s->modifiers & 1))
@@ -353,24 +358,27 @@  static void spitz_keyboard_handler(void *opaque, int keycode)
                 QUEUE_KEY(0x36);
             s->imodifiers = 0;
         } else {
-            if ((code & MOD_SHIFT) && !((s->modifiers | s->imodifiers) & 1)) {
+            if ((code & SPITZ_MOD_SHIFT) &&
+                !((s->modifiers | s->imodifiers) & 1)) {
                 QUEUE_KEY(0x2a);
                 s->imodifiers |= 1;
             }
-            if ((code & MOD_CTRL ) && !((s->modifiers | s->imodifiers) & 4)) {
+            if ((code & SPITZ_MOD_CTRL) &&
+                !((s->modifiers | s->imodifiers) & 4)) {
                 QUEUE_KEY(0x1d);
                 s->imodifiers |= 4;
             }
-            if ((code & MOD_FN   ) && !((s->modifiers | s->imodifiers) & 8)) {
+            if ((code & SPITZ_MOD_FN) &&
+                !((s->modifiers | s->imodifiers) & 8)) {
                 QUEUE_KEY(0x38);
                 s->imodifiers |= 8;
             }
-            if ((code & MOD_FN   ) && (s->modifiers & 1) &&
+            if ((code & SPITZ_MOD_FN) && (s->modifiers & 1) &&
                             !(s->imodifiers & 0x10)) {
                 QUEUE_KEY(0x2a | 0x80);
                 s->imodifiers |= 0x10;
             }
-            if ((code & MOD_FN   ) && (s->modifiers & 2) &&
+            if ((code & SPITZ_MOD_FN) && (s->modifiers & 2) &&
                             !(s->imodifiers & 0x20)) {
                 QUEUE_KEY(0x36 | 0x80);
                 s->imodifiers |= 0x20;
@@ -402,38 +410,38 @@  static void spitz_keyboard_pre_map(SpitzKeyboardState *s)
     int i;
     for (i = 0; i < 0x100; i ++)
         s->pre_map[i] = i;
-    s->pre_map[0x02 | MOD_SHIFT	] = 0x02 | MOD_SHIFT;	/* exclam */
-    s->pre_map[0x28 | MOD_SHIFT	] = 0x03 | MOD_SHIFT;	/* quotedbl */
-    s->pre_map[0x04 | MOD_SHIFT	] = 0x04 | MOD_SHIFT;	/* numbersign */
-    s->pre_map[0x05 | MOD_SHIFT	] = 0x05 | MOD_SHIFT;	/* dollar */
-    s->pre_map[0x06 | MOD_SHIFT	] = 0x06 | MOD_SHIFT;	/* percent */
-    s->pre_map[0x08 | MOD_SHIFT	] = 0x07 | MOD_SHIFT;	/* ampersand */
-    s->pre_map[0x28		] = 0x08 | MOD_SHIFT;	/* apostrophe */
-    s->pre_map[0x0a | MOD_SHIFT	] = 0x09 | MOD_SHIFT;	/* parenleft */
-    s->pre_map[0x0b | MOD_SHIFT	] = 0x0a | MOD_SHIFT;	/* parenright */
-    s->pre_map[0x29 | MOD_SHIFT	] = 0x0b | MOD_SHIFT;	/* asciitilde */
-    s->pre_map[0x03 | MOD_SHIFT	] = 0x0c | MOD_SHIFT;	/* at */
-    s->pre_map[0xd3		] = 0x0e | MOD_FN;	/* Delete */
-    s->pre_map[0x3a		] = 0x0f | MOD_FN;	/* Caps_Lock */
-    s->pre_map[0x07 | MOD_SHIFT	] = 0x11 | MOD_FN;	/* asciicircum */
-    s->pre_map[0x0d		] = 0x12 | MOD_FN;	/* equal */
-    s->pre_map[0x0d | MOD_SHIFT	] = 0x13 | MOD_FN;	/* plus */
-    s->pre_map[0x1a		] = 0x14 | MOD_FN;	/* bracketleft */
-    s->pre_map[0x1b		] = 0x15 | MOD_FN;	/* bracketright */
-    s->pre_map[0x1a | MOD_SHIFT	] = 0x16 | MOD_FN;	/* braceleft */
-    s->pre_map[0x1b | MOD_SHIFT	] = 0x17 | MOD_FN;	/* braceright */
-    s->pre_map[0x27		] = 0x22 | MOD_FN;	/* semicolon */
-    s->pre_map[0x27 | MOD_SHIFT	] = 0x23 | MOD_FN;	/* colon */
-    s->pre_map[0x09 | MOD_SHIFT	] = 0x24 | MOD_FN;	/* asterisk */
-    s->pre_map[0x2b		] = 0x25 | MOD_FN;	/* backslash */
-    s->pre_map[0x2b | MOD_SHIFT	] = 0x26 | MOD_FN;	/* bar */
-    s->pre_map[0x0c | MOD_SHIFT	] = 0x30 | MOD_FN;	/* underscore */
-    s->pre_map[0x33 | MOD_SHIFT	] = 0x33 | MOD_FN;	/* less */
-    s->pre_map[0x35		] = 0x33 | MOD_SHIFT;	/* slash */
-    s->pre_map[0x34 | MOD_SHIFT	] = 0x34 | MOD_FN;	/* greater */
-    s->pre_map[0x35 | MOD_SHIFT	] = 0x34 | MOD_SHIFT;	/* question */
-    s->pre_map[0x49		] = 0x48 | MOD_FN;	/* Page_Up */
-    s->pre_map[0x51		] = 0x50 | MOD_FN;	/* Page_Down */
+    s->pre_map[0x02 | SPITZ_MOD_SHIFT] = 0x02 | SPITZ_MOD_SHIFT; /* exclam */
+    s->pre_map[0x28 | SPITZ_MOD_SHIFT] = 0x03 | SPITZ_MOD_SHIFT; /* quotedbl */
+    s->pre_map[0x04 | SPITZ_MOD_SHIFT] = 0x04 | SPITZ_MOD_SHIFT; /* # */
+    s->pre_map[0x05 | SPITZ_MOD_SHIFT] = 0x05 | SPITZ_MOD_SHIFT; /* dollar */
+    s->pre_map[0x06 | SPITZ_MOD_SHIFT] = 0x06 | SPITZ_MOD_SHIFT; /* percent */
+    s->pre_map[0x08 | SPITZ_MOD_SHIFT] = 0x07 | SPITZ_MOD_SHIFT; /* ampersand */
+    s->pre_map[0x28]                   = 0x08 | SPITZ_MOD_SHIFT; /* ' */
+    s->pre_map[0x0a | SPITZ_MOD_SHIFT] = 0x09 | SPITZ_MOD_SHIFT; /* ( */
+    s->pre_map[0x0b | SPITZ_MOD_SHIFT] = 0x0a | SPITZ_MOD_SHIFT; /* ) */
+    s->pre_map[0x29 | SPITZ_MOD_SHIFT] = 0x0b | SPITZ_MOD_SHIFT; /* tilde */
+    s->pre_map[0x03 | SPITZ_MOD_SHIFT] = 0x0c | SPITZ_MOD_SHIFT; /* at */
+    s->pre_map[0xd3]                   = 0x0e | SPITZ_MOD_FN;    /* Delete */
+    s->pre_map[0x3a]                   = 0x0f | SPITZ_MOD_FN;    /* Caps_Lock */
+    s->pre_map[0x07 | SPITZ_MOD_SHIFT] = 0x11 | SPITZ_MOD_FN;    /* ^ */
+    s->pre_map[0x0d]                   = 0x12 | SPITZ_MOD_FN;    /* equal */
+    s->pre_map[0x0d | SPITZ_MOD_SHIFT] = 0x13 | SPITZ_MOD_FN;    /* plus */
+    s->pre_map[0x1a]                   = 0x14 | SPITZ_MOD_FN;    /* [ */
+    s->pre_map[0x1b]                   = 0x15 | SPITZ_MOD_FN;    /* ] */
+    s->pre_map[0x1a | SPITZ_MOD_SHIFT] = 0x16 | SPITZ_MOD_FN;    /* { */
+    s->pre_map[0x1b | SPITZ_MOD_SHIFT] = 0x17 | SPITZ_MOD_FN;    /* } */
+    s->pre_map[0x27]                   = 0x22 | SPITZ_MOD_FN;    /* semicolon */
+    s->pre_map[0x27 | SPITZ_MOD_SHIFT] = 0x23 | SPITZ_MOD_FN;    /* colon */
+    s->pre_map[0x09 | SPITZ_MOD_SHIFT] = 0x24 | SPITZ_MOD_FN;    /* asterisk */
+    s->pre_map[0x2b]                   = 0x25 | SPITZ_MOD_FN;    /* backslash */
+    s->pre_map[0x2b | SPITZ_MOD_SHIFT] = 0x26 | SPITZ_MOD_FN;    /* bar */
+    s->pre_map[0x0c | SPITZ_MOD_SHIFT] = 0x30 | SPITZ_MOD_FN;    /* _ */
+    s->pre_map[0x33 | SPITZ_MOD_SHIFT] = 0x33 | SPITZ_MOD_FN;    /* less */
+    s->pre_map[0x35]                   = 0x33 | SPITZ_MOD_SHIFT; /* slash */
+    s->pre_map[0x34 | SPITZ_MOD_SHIFT] = 0x34 | SPITZ_MOD_FN;    /* greater */
+    s->pre_map[0x35 | SPITZ_MOD_SHIFT] = 0x34 | SPITZ_MOD_SHIFT; /* question */
+    s->pre_map[0x49]                   = 0x48 | SPITZ_MOD_FN;    /* Page_Up */
+    s->pre_map[0x51]                   = 0x50 | SPITZ_MOD_FN;    /* Page_Down */
 
     s->modifiers = 0;
     s->imodifiers = 0;
@@ -441,9 +449,9 @@  static void spitz_keyboard_pre_map(SpitzKeyboardState *s)
     s->fifolen = 0;
 }
 
-#undef MOD_SHIFT
-#undef MOD_CTRL
-#undef MOD_FN
+#undef SPITZ_MOD_SHIFT
+#undef SPITZ_MOD_CTRL
+#undef SPITZ_MOD_FN
 
 static int spitz_keyboard_post_load(void *opaque, int version_id)
 {