ALSA: emu10k1: added EMU10K1 version of DECLARE_BITMAP macro for UAPI
authorMikko Rapeli <mikko.rapeli@iki.fi>
Thu, 15 Oct 2015 05:55:55 +0000 (07:55 +0200)
committerTakashi Iwai <tiwai@suse.de>
Thu, 15 Oct 2015 08:02:26 +0000 (10:02 +0200)
Fixes userspace compilation error:

error: expected specifier-qualifier-list before ‘DECLARE_BITMAP’
  DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */

DECLARE_BITMAP macro is not meant for userspace headers and thus
added here as private copy for emu10k.h.

Fix was suggested by Arnd Bergmann <arnd@arndb.de> in message
<2168807.4Yxh5gl11Q@wuerfel> and Takashi Iwai <tiwai@suse.de>
in message <s5h1thx88tk.wl-tiwai@suse.de> on lkml.

Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
include/uapi/sound/emu10k1.h

index ec1535b..5175e16 100644 (file)
 
 #define EMU10K1_FX8010_PCM_COUNT               8
 
+/*
+ * Following definition is copied from linux/types.h to support compiling
+ * this header file in userspace since they are not generally available for
+ * uapi headers.
+ */
+#define __EMU10K1_DECLARE_BITMAP(name,bits) \
+       unsigned long name[(bits) / (sizeof(unsigned long) * 8)]
+
 /* instruction set */
 #define iMAC0   0x00   /* R = A + (X * Y >> 31)   ; saturation */
 #define iMAC1   0x01   /* R = A + (-X * Y >> 31)  ; saturation */
@@ -300,7 +308,7 @@ struct snd_emu10k1_fx8010_control_old_gpr {
 struct snd_emu10k1_fx8010_code {
        char name[128];
 
-       DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */
+       __EMU10K1_DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */
        __u32 __user *gpr_map;          /* initializers */
 
        unsigned int gpr_add_control_count; /* count of GPR controls to add/replace */
@@ -313,11 +321,11 @@ struct snd_emu10k1_fx8010_code {
        unsigned int gpr_list_control_total; /* total count of GPR controls */
        struct snd_emu10k1_fx8010_control_gpr __user *gpr_list_controls; /* listed GPR controls */
 
-       DECLARE_BITMAP(tram_valid, 0x100); /* bitmask of valid initializers */
+       __EMU10K1_DECLARE_BITMAP(tram_valid, 0x100); /* bitmask of valid initializers */
        __u32 __user *tram_data_map;      /* data initializers */
        __u32 __user *tram_addr_map;      /* map initializers */
 
-       DECLARE_BITMAP(code_valid, 1024); /* bitmask of valid instructions */
+       __EMU10K1_DECLARE_BITMAP(code_valid, 1024); /* bitmask of valid instructions */
        __u32 __user *code;               /* one instruction - 64 bits */
 };