1/****************************************************************************
2 ****************************************************************************
3 ***
4 ***   This header was automatically generated from a Linux kernel header
5 ***   of the same name, to make information necessary for userspace to
6 ***   call into the kernel available to libc.  It contains only constants,
7 ***   structures, and macros generated from the original header, and thus,
8 ***   contains no copyrightable information.
9 ***
10 ***   To edit the content of this header, modify the corresponding
11 ***   source file (e.g. under external/kernel-headers/original/) then
12 ***   run bionic/libc/kernel/tools/update_all.py
13 ***
14 ***   Any manual change here will be lost the next time this script will
15 ***   be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
19#ifndef _UAPI__SOUND_USB_STREAM_H
20#define _UAPI__SOUND_USB_STREAM_H
21#define USB_STREAM_INTERFACE_VERSION 2
22#define SNDRV_USB_STREAM_IOCTL_SET_PARAMS _IOW('H', 0x90, struct usb_stream_config)
23struct usb_stream_packet {
24  unsigned offset;
25  unsigned length;
26};
27struct usb_stream_config {
28  unsigned version;
29  unsigned sample_rate;
30  unsigned period_frames;
31  unsigned frame_size;
32};
33struct usb_stream {
34  struct usb_stream_config cfg;
35  unsigned read_size;
36  unsigned write_size;
37  int period_size;
38  unsigned state;
39  int idle_insize;
40  int idle_outsize;
41  int sync_packet;
42  unsigned insize_done;
43  unsigned periods_done;
44  unsigned periods_polled;
45  struct usb_stream_packet outpacket[2];
46  unsigned inpackets;
47  unsigned inpacket_head;
48  unsigned inpacket_split;
49  unsigned inpacket_split_at;
50  unsigned next_inpacket_split;
51  unsigned next_inpacket_split_at;
52  struct usb_stream_packet inpacket[0];
53};
54enum usb_stream_state {
55  usb_stream_invalid,
56  usb_stream_stopped,
57  usb_stream_sync0,
58  usb_stream_sync1,
59  usb_stream_ready,
60  usb_stream_running,
61  usb_stream_xrun,
62};
63#endif
64