1e2be04c7SGreg Kroah-Hartman /* SPDX-License-Identifier: LGPL-2.1+ WITH Linux-syscall-note */ 2c57fd021SDavid Howells /* 3c57fd021SDavid Howells * dmx.h 4c57fd021SDavid Howells * 5c57fd021SDavid Howells * Copyright (C) 2000 Marcus Metzler <[email protected]> 6c57fd021SDavid Howells * & Ralph Metzler <[email protected]> 7c57fd021SDavid Howells * for convergence integrated media GmbH 8c57fd021SDavid Howells */ 9c57fd021SDavid Howells 10c57fd021SDavid Howells #ifndef _UAPI_DVBDMX_H_ 11c57fd021SDavid Howells #define _UAPI_DVBDMX_H_ 12c57fd021SDavid Howells 13c57fd021SDavid Howells #include <linux/types.h> 14c57fd021SDavid Howells #ifndef __KERNEL__ 15c57fd021SDavid Howells #include <time.h> 16c57fd021SDavid Howells #endif 17c57fd021SDavid Howells 18c57fd021SDavid Howells 19c57fd021SDavid Howells #define DMX_FILTER_SIZE 16 20c57fd021SDavid Howells 21bb98e6d2SMauro Carvalho Chehab /** 22bb98e6d2SMauro Carvalho Chehab * enum dmx_output - Output for the demux. 23bb98e6d2SMauro Carvalho Chehab * 24bb98e6d2SMauro Carvalho Chehab * @DMX_OUT_DECODER: 25bb98e6d2SMauro Carvalho Chehab * Streaming directly to decoder. 26bb98e6d2SMauro Carvalho Chehab * @DMX_OUT_TAP: 27bb98e6d2SMauro Carvalho Chehab * Output going to a memory buffer (to be retrieved via the read command). 28bb98e6d2SMauro Carvalho Chehab * Delivers the stream output to the demux device on which the ioctl 29bb98e6d2SMauro Carvalho Chehab * is called. 30bb98e6d2SMauro Carvalho Chehab * @DMX_OUT_TS_TAP: 31bb98e6d2SMauro Carvalho Chehab * Output multiplexed into a new TS (to be retrieved by reading from the 32bb98e6d2SMauro Carvalho Chehab * logical DVR device). Routes output to the logical DVR device 33bb98e6d2SMauro Carvalho Chehab * ``/dev/dvb/adapter?/dvr?``, which delivers a TS multiplexed from all 34bb98e6d2SMauro Carvalho Chehab * filters for which @DMX_OUT_TS_TAP was specified. 35bb98e6d2SMauro Carvalho Chehab * @DMX_OUT_TSDEMUX_TAP: 36bb98e6d2SMauro Carvalho Chehab * Like @DMX_OUT_TS_TAP but retrieved from the DMX device. 37bb98e6d2SMauro Carvalho Chehab */ 38bb98e6d2SMauro Carvalho Chehab enum dmx_output { 39bb98e6d2SMauro Carvalho Chehab DMX_OUT_DECODER, 40bb98e6d2SMauro Carvalho Chehab DMX_OUT_TAP, 41bb98e6d2SMauro Carvalho Chehab DMX_OUT_TS_TAP, 42bb98e6d2SMauro Carvalho Chehab DMX_OUT_TSDEMUX_TAP 433256b36eSMauro Carvalho Chehab }; 44c57fd021SDavid Howells 45c57fd021SDavid Howells 46bb98e6d2SMauro Carvalho Chehab /** 47bb98e6d2SMauro Carvalho Chehab * enum dmx_input - Input from the demux. 48bb98e6d2SMauro Carvalho Chehab * 49bb98e6d2SMauro Carvalho Chehab * @DMX_IN_FRONTEND: Input from a front-end device. 50bb98e6d2SMauro Carvalho Chehab * @DMX_IN_DVR: Input from the logical DVR device. 51bb98e6d2SMauro Carvalho Chehab */ 52bb98e6d2SMauro Carvalho Chehab enum dmx_input { 53bb98e6d2SMauro Carvalho Chehab DMX_IN_FRONTEND, 54bb98e6d2SMauro Carvalho Chehab DMX_IN_DVR 55bb98e6d2SMauro Carvalho Chehab }; 56bb98e6d2SMauro Carvalho Chehab 57bb98e6d2SMauro Carvalho Chehab /** 58bb98e6d2SMauro Carvalho Chehab * enum dmx_ts_pes - type of the PES filter. 59bb98e6d2SMauro Carvalho Chehab * 60bb98e6d2SMauro Carvalho Chehab * @DMX_PES_AUDIO0: first audio PID. Also referred as @DMX_PES_AUDIO. 61bb98e6d2SMauro Carvalho Chehab * @DMX_PES_VIDEO0: first video PID. Also referred as @DMX_PES_VIDEO. 62bb98e6d2SMauro Carvalho Chehab * @DMX_PES_TELETEXT0: first teletext PID. Also referred as @DMX_PES_TELETEXT. 63bb98e6d2SMauro Carvalho Chehab * @DMX_PES_SUBTITLE0: first subtitle PID. Also referred as @DMX_PES_SUBTITLE. 64bb98e6d2SMauro Carvalho Chehab * @DMX_PES_PCR0: first Program Clock Reference PID. 65bb98e6d2SMauro Carvalho Chehab * Also referred as @DMX_PES_PCR. 66bb98e6d2SMauro Carvalho Chehab * 67bb98e6d2SMauro Carvalho Chehab * @DMX_PES_AUDIO1: second audio PID. 68bb98e6d2SMauro Carvalho Chehab * @DMX_PES_VIDEO1: second video PID. 69bb98e6d2SMauro Carvalho Chehab * @DMX_PES_TELETEXT1: second teletext PID. 70bb98e6d2SMauro Carvalho Chehab * @DMX_PES_SUBTITLE1: second subtitle PID. 71bb98e6d2SMauro Carvalho Chehab * @DMX_PES_PCR1: second Program Clock Reference PID. 72bb98e6d2SMauro Carvalho Chehab * 73bb98e6d2SMauro Carvalho Chehab * @DMX_PES_AUDIO2: third audio PID. 74bb98e6d2SMauro Carvalho Chehab * @DMX_PES_VIDEO2: third video PID. 75bb98e6d2SMauro Carvalho Chehab * @DMX_PES_TELETEXT2: third teletext PID. 76bb98e6d2SMauro Carvalho Chehab * @DMX_PES_SUBTITLE2: third subtitle PID. 77bb98e6d2SMauro Carvalho Chehab * @DMX_PES_PCR2: third Program Clock Reference PID. 78bb98e6d2SMauro Carvalho Chehab * 79bb98e6d2SMauro Carvalho Chehab * @DMX_PES_AUDIO3: fourth audio PID. 80bb98e6d2SMauro Carvalho Chehab * @DMX_PES_VIDEO3: fourth video PID. 81bb98e6d2SMauro Carvalho Chehab * @DMX_PES_TELETEXT3: fourth teletext PID. 82bb98e6d2SMauro Carvalho Chehab * @DMX_PES_SUBTITLE3: fourth subtitle PID. 83bb98e6d2SMauro Carvalho Chehab * @DMX_PES_PCR3: fourth Program Clock Reference PID. 84bb98e6d2SMauro Carvalho Chehab * 85bb98e6d2SMauro Carvalho Chehab * @DMX_PES_OTHER: any other PID. 86bb98e6d2SMauro Carvalho Chehab */ 87bb98e6d2SMauro Carvalho Chehab 88bb98e6d2SMauro Carvalho Chehab enum dmx_ts_pes { 89c57fd021SDavid Howells DMX_PES_AUDIO0, 90c57fd021SDavid Howells DMX_PES_VIDEO0, 91c57fd021SDavid Howells DMX_PES_TELETEXT0, 92c57fd021SDavid Howells DMX_PES_SUBTITLE0, 93c57fd021SDavid Howells DMX_PES_PCR0, 94c57fd021SDavid Howells 95c57fd021SDavid Howells DMX_PES_AUDIO1, 96c57fd021SDavid Howells DMX_PES_VIDEO1, 97c57fd021SDavid Howells DMX_PES_TELETEXT1, 98c57fd021SDavid Howells DMX_PES_SUBTITLE1, 99c57fd021SDavid Howells DMX_PES_PCR1, 100c57fd021SDavid Howells 101c57fd021SDavid Howells DMX_PES_AUDIO2, 102c57fd021SDavid Howells DMX_PES_VIDEO2, 103c57fd021SDavid Howells DMX_PES_TELETEXT2, 104c57fd021SDavid Howells DMX_PES_SUBTITLE2, 105c57fd021SDavid Howells DMX_PES_PCR2, 106c57fd021SDavid Howells 107c57fd021SDavid Howells DMX_PES_AUDIO3, 108c57fd021SDavid Howells DMX_PES_VIDEO3, 109c57fd021SDavid Howells DMX_PES_TELETEXT3, 110c57fd021SDavid Howells DMX_PES_SUBTITLE3, 111c57fd021SDavid Howells DMX_PES_PCR3, 112c57fd021SDavid Howells 113c57fd021SDavid Howells DMX_PES_OTHER 1143256b36eSMauro Carvalho Chehab }; 115c57fd021SDavid Howells 116c57fd021SDavid Howells #define DMX_PES_AUDIO DMX_PES_AUDIO0 117c57fd021SDavid Howells #define DMX_PES_VIDEO DMX_PES_VIDEO0 118c57fd021SDavid Howells #define DMX_PES_TELETEXT DMX_PES_TELETEXT0 119c57fd021SDavid Howells #define DMX_PES_SUBTITLE DMX_PES_SUBTITLE0 120c57fd021SDavid Howells #define DMX_PES_PCR DMX_PES_PCR0 121c57fd021SDavid Howells 122c57fd021SDavid Howells 123bb98e6d2SMauro Carvalho Chehab 124bb98e6d2SMauro Carvalho Chehab /** 125bb98e6d2SMauro Carvalho Chehab * struct dmx_filter - Specifies a section header filter. 126bb98e6d2SMauro Carvalho Chehab * 127bb98e6d2SMauro Carvalho Chehab * @filter: bit array with bits to be matched at the section header. 128bb98e6d2SMauro Carvalho Chehab * @mask: bits that are valid at the filter bit array. 129bb98e6d2SMauro Carvalho Chehab * @mode: mode of match: if bit is zero, it will match if equal (positive 130bb98e6d2SMauro Carvalho Chehab * match); if bit is one, it will match if the bit is negated. 131bb98e6d2SMauro Carvalho Chehab * 132bb98e6d2SMauro Carvalho Chehab * Note: All arrays in this struct have a size of DMX_FILTER_SIZE (16 bytes). 133bb98e6d2SMauro Carvalho Chehab */ 134bb98e6d2SMauro Carvalho Chehab struct dmx_filter { 135c57fd021SDavid Howells __u8 filter[DMX_FILTER_SIZE]; 136c57fd021SDavid Howells __u8 mask[DMX_FILTER_SIZE]; 137c57fd021SDavid Howells __u8 mode[DMX_FILTER_SIZE]; 1383256b36eSMauro Carvalho Chehab }; 139c57fd021SDavid Howells 140bb98e6d2SMauro Carvalho Chehab /** 141bb98e6d2SMauro Carvalho Chehab * struct dmx_sct_filter_params - Specifies a section filter. 142bb98e6d2SMauro Carvalho Chehab * 143bb98e6d2SMauro Carvalho Chehab * @pid: PID to be filtered. 144bb98e6d2SMauro Carvalho Chehab * @filter: section header filter, as defined by &struct dmx_filter. 145bb98e6d2SMauro Carvalho Chehab * @timeout: maximum time to filter, in milliseconds. 146bb98e6d2SMauro Carvalho Chehab * @flags: extra flags for the section filter. 147bb98e6d2SMauro Carvalho Chehab * 148bb98e6d2SMauro Carvalho Chehab * Carries the configuration for a MPEG-TS section filter. 149bb98e6d2SMauro Carvalho Chehab * 150bb98e6d2SMauro Carvalho Chehab * The @flags can be: 151bb98e6d2SMauro Carvalho Chehab * 152bb98e6d2SMauro Carvalho Chehab * - %DMX_CHECK_CRC - only deliver sections where the CRC check succeeded; 153bb98e6d2SMauro Carvalho Chehab * - %DMX_ONESHOT - disable the section filter after one section 154bb98e6d2SMauro Carvalho Chehab * has been delivered; 155bb98e6d2SMauro Carvalho Chehab * - %DMX_IMMEDIATE_START - Start filter immediately without requiring a 156bb98e6d2SMauro Carvalho Chehab * :ref:`DMX_START`. 157bb98e6d2SMauro Carvalho Chehab */ 158bb98e6d2SMauro Carvalho Chehab struct dmx_sct_filter_params { 159c57fd021SDavid Howells __u16 pid; 1603256b36eSMauro Carvalho Chehab struct dmx_filter filter; 161c57fd021SDavid Howells __u32 timeout; 162c57fd021SDavid Howells __u32 flags; 163c57fd021SDavid Howells #define DMX_CHECK_CRC 1 164c57fd021SDavid Howells #define DMX_ONESHOT 2 165c57fd021SDavid Howells #define DMX_IMMEDIATE_START 4 166c57fd021SDavid Howells }; 167c57fd021SDavid Howells 168bb98e6d2SMauro Carvalho Chehab /** 169bb98e6d2SMauro Carvalho Chehab * struct dmx_pes_filter_params - Specifies Packetized Elementary Stream (PES) 170bb98e6d2SMauro Carvalho Chehab * filter parameters. 171bb98e6d2SMauro Carvalho Chehab * 172bb98e6d2SMauro Carvalho Chehab * @pid: PID to be filtered. 173bb98e6d2SMauro Carvalho Chehab * @input: Demux input, as specified by &enum dmx_input. 174bb98e6d2SMauro Carvalho Chehab * @output: Demux output, as specified by &enum dmx_output. 175bb98e6d2SMauro Carvalho Chehab * @pes_type: Type of the pes filter, as specified by &enum dmx_pes_type. 176bb98e6d2SMauro Carvalho Chehab * @flags: Demux PES flags. 177bb98e6d2SMauro Carvalho Chehab */ 178e4faa09bSMauro Carvalho Chehab struct dmx_pes_filter_params { 179c57fd021SDavid Howells __u16 pid; 1803256b36eSMauro Carvalho Chehab enum dmx_input input; 1813256b36eSMauro Carvalho Chehab enum dmx_output output; 1823256b36eSMauro Carvalho Chehab enum dmx_ts_pes pes_type; 183c57fd021SDavid Howells __u32 flags; 184c57fd021SDavid Howells }; 185c57fd021SDavid Howells 186bb98e6d2SMauro Carvalho Chehab /** 187bb98e6d2SMauro Carvalho Chehab * struct dmx_stc - Stores System Time Counter (STC) information. 188bb98e6d2SMauro Carvalho Chehab * 189bb98e6d2SMauro Carvalho Chehab * @num: input data: number of the STC, from 0 to N. 190bb98e6d2SMauro Carvalho Chehab * @base: output: divisor for STC to get 90 kHz clock. 191bb98e6d2SMauro Carvalho Chehab * @stc: output: stc in @base * 90 kHz units. 192bb98e6d2SMauro Carvalho Chehab */ 193c57fd021SDavid Howells struct dmx_stc { 194bb98e6d2SMauro Carvalho Chehab unsigned int num; 195bb98e6d2SMauro Carvalho Chehab unsigned int base; 196bb98e6d2SMauro Carvalho Chehab __u64 stc; 197c57fd021SDavid Howells }; 198c57fd021SDavid Howells 19957868accSSatendra Singh Thakur /** 200*9c171cdfSMauro Carvalho Chehab * enum dmx_buffer_flags - DMX memory-mapped buffer flags 201*9c171cdfSMauro Carvalho Chehab * 202*9c171cdfSMauro Carvalho Chehab * @DMX_BUFFER_FLAG_HAD_CRC32_DISCARD: 203*9c171cdfSMauro Carvalho Chehab * Indicates that the Kernel discarded one or more frames due to wrong 204*9c171cdfSMauro Carvalho Chehab * CRC32 checksum. 205*9c171cdfSMauro Carvalho Chehab * @DMX_BUFFER_FLAG_TEI: 206*9c171cdfSMauro Carvalho Chehab * Indicates that the Kernel has detected a Transport Error indicator 207*9c171cdfSMauro Carvalho Chehab * (TEI) on a filtered pid. 208*9c171cdfSMauro Carvalho Chehab * @DMX_BUFFER_PKT_COUNTER_MISMATCH: 209*9c171cdfSMauro Carvalho Chehab * Indicates that the Kernel has detected a packet counter mismatch 210*9c171cdfSMauro Carvalho Chehab * on a filtered pid. 211*9c171cdfSMauro Carvalho Chehab * @DMX_BUFFER_FLAG_DISCONTINUITY_DETECTED: 212*9c171cdfSMauro Carvalho Chehab * Indicates that the Kernel has detected one or more frame discontinuity. 213*9c171cdfSMauro Carvalho Chehab * @DMX_BUFFER_FLAG_DISCONTINUITY_INDICATOR: 214*9c171cdfSMauro Carvalho Chehab * Received at least one packet with a frame discontinuity indicator. 215*9c171cdfSMauro Carvalho Chehab */ 216*9c171cdfSMauro Carvalho Chehab 217*9c171cdfSMauro Carvalho Chehab enum dmx_buffer_flags { 218*9c171cdfSMauro Carvalho Chehab DMX_BUFFER_FLAG_HAD_CRC32_DISCARD = 1 << 0, 219*9c171cdfSMauro Carvalho Chehab DMX_BUFFER_FLAG_TEI = 1 << 1, 220*9c171cdfSMauro Carvalho Chehab DMX_BUFFER_PKT_COUNTER_MISMATCH = 1 << 2, 221*9c171cdfSMauro Carvalho Chehab DMX_BUFFER_FLAG_DISCONTINUITY_DETECTED = 1 << 3, 222*9c171cdfSMauro Carvalho Chehab DMX_BUFFER_FLAG_DISCONTINUITY_INDICATOR = 1 << 4, 223*9c171cdfSMauro Carvalho Chehab }; 224*9c171cdfSMauro Carvalho Chehab 225*9c171cdfSMauro Carvalho Chehab /** 22657868accSSatendra Singh Thakur * struct dmx_buffer - dmx buffer info 22757868accSSatendra Singh Thakur * 22857868accSSatendra Singh Thakur * @index: id number of the buffer 22957868accSSatendra Singh Thakur * @bytesused: number of bytes occupied by data in the buffer (payload); 23057868accSSatendra Singh Thakur * @offset: for buffers with memory == DMX_MEMORY_MMAP; 23157868accSSatendra Singh Thakur * offset from the start of the device memory for this plane, 23257868accSSatendra Singh Thakur * (or a "cookie" that should be passed to mmap() as offset) 23357868accSSatendra Singh Thakur * @length: size in bytes of the buffer 234*9c171cdfSMauro Carvalho Chehab * @flags: bit array of buffer flags as defined by &enum dmx_buffer_flags. 235*9c171cdfSMauro Carvalho Chehab * Filled only at &DMX_DQBUF. 236*9c171cdfSMauro Carvalho Chehab * @count: monotonic counter for filled buffers. Helps to identify 237*9c171cdfSMauro Carvalho Chehab * data stream loses. Filled only at &DMX_DQBUF. 23857868accSSatendra Singh Thakur * 23957868accSSatendra Singh Thakur * Contains data exchanged by application and driver using one of the streaming 24057868accSSatendra Singh Thakur * I/O methods. 241*9c171cdfSMauro Carvalho Chehab * 242*9c171cdfSMauro Carvalho Chehab * Please notice that, for &DMX_QBUF, only @index should be filled. 243*9c171cdfSMauro Carvalho Chehab * On &DMX_DQBUF calls, all fields will be filled by the Kernel. 24457868accSSatendra Singh Thakur */ 24557868accSSatendra Singh Thakur struct dmx_buffer { 24657868accSSatendra Singh Thakur __u32 index; 24757868accSSatendra Singh Thakur __u32 bytesused; 24857868accSSatendra Singh Thakur __u32 offset; 24957868accSSatendra Singh Thakur __u32 length; 250*9c171cdfSMauro Carvalho Chehab __u32 flags; 251*9c171cdfSMauro Carvalho Chehab __u32 count; 25257868accSSatendra Singh Thakur }; 25357868accSSatendra Singh Thakur 25457868accSSatendra Singh Thakur /** 25557868accSSatendra Singh Thakur * struct dmx_requestbuffers - request dmx buffer information 25657868accSSatendra Singh Thakur * 25757868accSSatendra Singh Thakur * @count: number of requested buffers, 25857868accSSatendra Singh Thakur * @size: size in bytes of the requested buffer 25957868accSSatendra Singh Thakur * 26057868accSSatendra Singh Thakur * Contains data used for requesting a dmx buffer. 26157868accSSatendra Singh Thakur * All reserved fields must be set to zero. 26257868accSSatendra Singh Thakur */ 26357868accSSatendra Singh Thakur struct dmx_requestbuffers { 26457868accSSatendra Singh Thakur __u32 count; 26557868accSSatendra Singh Thakur __u32 size; 26657868accSSatendra Singh Thakur }; 26757868accSSatendra Singh Thakur 26857868accSSatendra Singh Thakur /** 26957868accSSatendra Singh Thakur * struct dmx_exportbuffer - export of dmx buffer as DMABUF file descriptor 27057868accSSatendra Singh Thakur * 27157868accSSatendra Singh Thakur * @index: id number of the buffer 27257868accSSatendra Singh Thakur * @flags: flags for newly created file, currently only O_CLOEXEC is 27357868accSSatendra Singh Thakur * supported, refer to manual of open syscall for more details 27457868accSSatendra Singh Thakur * @fd: file descriptor associated with DMABUF (set by driver) 27557868accSSatendra Singh Thakur * 27657868accSSatendra Singh Thakur * Contains data used for exporting a dmx buffer as DMABUF file descriptor. 27757868accSSatendra Singh Thakur * The buffer is identified by a 'cookie' returned by DMX_QUERYBUF 27857868accSSatendra Singh Thakur * (identical to the cookie used to mmap() the buffer to userspace). All 27957868accSSatendra Singh Thakur * reserved fields must be set to zero. The field reserved0 is expected to 28057868accSSatendra Singh Thakur * become a structure 'type' allowing an alternative layout of the structure 28157868accSSatendra Singh Thakur * content. Therefore this field should not be used for any other extensions. 28257868accSSatendra Singh Thakur */ 28357868accSSatendra Singh Thakur struct dmx_exportbuffer { 28457868accSSatendra Singh Thakur __u32 index; 28557868accSSatendra Singh Thakur __u32 flags; 28657868accSSatendra Singh Thakur __s32 fd; 28757868accSSatendra Singh Thakur }; 28857868accSSatendra Singh Thakur 289c57fd021SDavid Howells #define DMX_START _IO('o', 41) 290c57fd021SDavid Howells #define DMX_STOP _IO('o', 42) 291c57fd021SDavid Howells #define DMX_SET_FILTER _IOW('o', 43, struct dmx_sct_filter_params) 292c57fd021SDavid Howells #define DMX_SET_PES_FILTER _IOW('o', 44, struct dmx_pes_filter_params) 293c57fd021SDavid Howells #define DMX_SET_BUFFER_SIZE _IO('o', 45) 294c57fd021SDavid Howells #define DMX_GET_PES_PIDS _IOR('o', 47, __u16[5]) 295c57fd021SDavid Howells #define DMX_GET_STC _IOWR('o', 50, struct dmx_stc) 296c57fd021SDavid Howells #define DMX_ADD_PID _IOW('o', 51, __u16) 297c57fd021SDavid Howells #define DMX_REMOVE_PID _IOW('o', 52, __u16) 298c57fd021SDavid Howells 2993256b36eSMauro Carvalho Chehab #if !defined(__KERNEL__) 3003256b36eSMauro Carvalho Chehab 3013256b36eSMauro Carvalho Chehab /* This is needed for legacy userspace support */ 3023256b36eSMauro Carvalho Chehab typedef enum dmx_output dmx_output_t; 3033256b36eSMauro Carvalho Chehab typedef enum dmx_input dmx_input_t; 3043256b36eSMauro Carvalho Chehab typedef enum dmx_ts_pes dmx_pes_type_t; 3053256b36eSMauro Carvalho Chehab typedef struct dmx_filter dmx_filter_t; 3063256b36eSMauro Carvalho Chehab 3073256b36eSMauro Carvalho Chehab #endif 3083256b36eSMauro Carvalho Chehab 30957868accSSatendra Singh Thakur #define DMX_REQBUFS _IOWR('o', 60, struct dmx_requestbuffers) 31057868accSSatendra Singh Thakur #define DMX_QUERYBUF _IOWR('o', 61, struct dmx_buffer) 31157868accSSatendra Singh Thakur #define DMX_EXPBUF _IOWR('o', 62, struct dmx_exportbuffer) 31257868accSSatendra Singh Thakur #define DMX_QBUF _IOWR('o', 63, struct dmx_buffer) 31357868accSSatendra Singh Thakur #define DMX_DQBUF _IOWR('o', 64, struct dmx_buffer) 31457868accSSatendra Singh Thakur 31557868accSSatendra Singh Thakur #endif /* _DVBDMX_H_ */ 316