Merge branch 'pm-cpufreq'
[cascardo/linux.git] / Documentation / media / uapi / dvb / dmx-fopen.rst
1 .. -*- coding: utf-8; mode: rst -*-
2
3 .. _dmx_fopen:
4
5 ================
6 DVB demux open()
7 ================
8
9 Name
10 ----
11
12 DVB demux open()
13
14
15 Synopsis
16 --------
17
18 .. c:function:: int open(const char *deviceName, int flags)
19     :name: dvb-dmx-open
20
21 Arguments
22 ---------
23
24 ``name``
25   Name of specific DVB demux device.
26
27 ``flags``
28   A bit-wise OR of the following flags:
29
30 .. flat-table::
31     :header-rows:  0
32     :stub-columns: 0
33
34     -
35        - O_RDONLY
36        - read-only access
37
38     -
39        - O_RDWR
40        - read/write access
41
42     -
43        - O_NONBLOCK
44        - open in non-blocking mode
45          (blocking mode is the default)
46
47
48 Description
49 -----------
50
51 This system call, used with a device name of /dev/dvb/adapter0/demux0,
52 allocates a new filter and returns a handle which can be used for
53 subsequent control of that filter. This call has to be made for each
54 filter to be used, i.e. every returned file descriptor is a reference to
55 a single filter. /dev/dvb/adapter0/dvr0 is a logical device to be used
56 for retrieving Transport Streams for digital video recording. When
57 reading from this device a transport stream containing the packets from
58 all PES filters set in the corresponding demux device
59 (/dev/dvb/adapter0/demux0) having the output set to DMX_OUT_TS_TAP. A
60 recorded Transport Stream is replayed by writing to this device.
61
62 The significance of blocking or non-blocking mode is described in the
63 documentation for functions where there is a difference. It does not
64 affect the semantics of the open() call itself. A device opened in
65 blocking mode can later be put into non-blocking mode (and vice versa)
66 using the F_SETFL command of the fcntl system call.
67
68
69 Return Value
70 ------------
71
72 .. flat-table::
73     :header-rows:  0
74     :stub-columns: 0
75
76
77     -  .. row 1
78
79        -  ``ENODEV``
80
81        -  Device driver not loaded/available.
82
83     -  .. row 2
84
85        -  ``EINVAL``
86
87        -  Invalid argument.
88
89     -  .. row 3
90
91        -  ``EMFILE``
92
93        -  “Too many open files”, i.e. no more filters available.
94
95     -  .. row 4
96
97        -  ``ENOMEM``
98
99        -  The driver failed to allocate enough memory.