+struct sndrv_pcm_mmap_status32 {
+ s32 state;
+ s32 pad1;
+ u32 hw_ptr;
+ struct compat_timespec tstamp;
+ s32 suspended_state;
+} __attribute__((packed));
+
+struct sndrv_pcm_mmap_control32 {
+ u32 appl_ptr;
+ u32 avail_min;
+} __attribute__((packed));
+
+struct sndrv_pcm_sync_ptr32 {
+ u32 flags;
+ union {
+ struct sndrv_pcm_mmap_status32 status;
+ unsigned char reserved[64];
+ } s;
+ union {
+ struct sndrv_pcm_mmap_control32 control;
+ unsigned char reserved[64];
+ } c;
+} __attribute__((packed));
+
+#define CVT_sndrv_pcm_sync_ptr()\
+{\
+ COPY(flags);\
+ COPY(s.status.state);\
+ COPY(s.status.pad1);\
+ COPY(s.status.hw_ptr);\
+ COPY(s.status.tstamp.tv_sec);\
+ COPY(s.status.tstamp.tv_nsec);\
+ COPY(s.status.suspended_state);\
+ COPY(c.control.appl_ptr);\
+ COPY(c.control.avail_min);\
+}
+
+DEFINE_ALSA_IOCTL_BIG(pcm_sync_ptr);