|
@@ -89,12 +89,21 @@ static int snd_timer_user_status_compat(struct file *file,
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+#ifdef CONFIG_X86_X32
|
|
|
+/* X32 ABI has the same struct as x86-64 */
|
|
|
+#define snd_timer_user_status_x32(file, s) \
|
|
|
+ snd_timer_user_status(file, s)
|
|
|
+#endif /* CONFIG_X86_X32 */
|
|
|
+
|
|
|
/*
|
|
|
*/
|
|
|
|
|
|
enum {
|
|
|
SNDRV_TIMER_IOCTL_INFO32 = _IOR('T', 0x11, struct snd_timer_info32),
|
|
|
SNDRV_TIMER_IOCTL_STATUS32 = _IOW('T', 0x14, struct snd_timer_status32),
|
|
|
+#ifdef CONFIG_X86_X32
|
|
|
+ SNDRV_TIMER_IOCTL_STATUS_X32 = _IOW('T', 0x14, struct snd_timer_status),
|
|
|
+#endif /* CONFIG_X86_X32 */
|
|
|
};
|
|
|
|
|
|
static long snd_timer_user_ioctl_compat(struct file *file, unsigned int cmd, unsigned long arg)
|
|
@@ -123,6 +132,10 @@ static long snd_timer_user_ioctl_compat(struct file *file, unsigned int cmd, uns
|
|
|
return snd_timer_user_info_compat(file, argp);
|
|
|
case SNDRV_TIMER_IOCTL_STATUS32:
|
|
|
return snd_timer_user_status_compat(file, argp);
|
|
|
+#ifdef CONFIG_X86_X32
|
|
|
+ case SNDRV_TIMER_IOCTL_STATUS_X32:
|
|
|
+ return snd_timer_user_status_x32(file, argp);
|
|
|
+#endif /* CONFIG_X86_X32 */
|
|
|
}
|
|
|
return -ENOIOCTLCMD;
|
|
|
}
|