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