xref: /OK3568_Linux_fs/kernel/Documentation/userspace-api/media/dvb/video-fopen.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2*4882a593Smuzhiyun.. c:namespace:: DTV.video
3*4882a593Smuzhiyun
4*4882a593Smuzhiyun.. _video_fopen:
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun================
7*4882a593Smuzhiyundvb video open()
8*4882a593Smuzhiyun================
9*4882a593Smuzhiyun
10*4882a593SmuzhiyunName
11*4882a593Smuzhiyun----
12*4882a593Smuzhiyun
13*4882a593Smuzhiyundvb video open()
14*4882a593Smuzhiyun
15*4882a593Smuzhiyun.. attention:: This ioctl is deprecated.
16*4882a593Smuzhiyun
17*4882a593SmuzhiyunSynopsis
18*4882a593Smuzhiyun--------
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun.. c:function:: int open(const char *deviceName, int flags)
21*4882a593Smuzhiyun
22*4882a593SmuzhiyunArguments
23*4882a593Smuzhiyun---------
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun.. flat-table::
26*4882a593Smuzhiyun    :header-rows:  0
27*4882a593Smuzhiyun    :stub-columns: 0
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun    -  .. row 1
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun       -  const char \*deviceName
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun       -  Name of specific video device.
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun    -  .. row 2
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun       -  int flags
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun       -  A bit-wise OR of the following flags:
40*4882a593Smuzhiyun
41*4882a593Smuzhiyun    -  .. row 3
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun       -
44*4882a593Smuzhiyun       -  O_RDONLY read-only access
45*4882a593Smuzhiyun
46*4882a593Smuzhiyun    -  .. row 4
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun       -
49*4882a593Smuzhiyun       -  O_RDWR read/write access
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun    -  .. row 5
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun       -
54*4882a593Smuzhiyun       -  O_NONBLOCK open in non-blocking mode
55*4882a593Smuzhiyun
56*4882a593Smuzhiyun    -  .. row 6
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun       -
59*4882a593Smuzhiyun       -  (blocking mode is the default)
60*4882a593Smuzhiyun
61*4882a593SmuzhiyunDescription
62*4882a593Smuzhiyun-----------
63*4882a593Smuzhiyun
64*4882a593SmuzhiyunThis system call opens a named video device (e.g.
65*4882a593Smuzhiyun/dev/dvb/adapter0/video0) for subsequent use.
66*4882a593Smuzhiyun
67*4882a593SmuzhiyunWhen an open() call has succeeded, the device will be ready for use. The
68*4882a593Smuzhiyunsignificance of blocking or non-blocking mode is described in the
69*4882a593Smuzhiyundocumentation for functions where there is a difference. It does not
70*4882a593Smuzhiyunaffect the semantics of the open() call itself. A device opened in
71*4882a593Smuzhiyunblocking mode can later be put into non-blocking mode (and vice versa)
72*4882a593Smuzhiyunusing the F_SETFL command of the fcntl system call. This is a standard
73*4882a593Smuzhiyunsystem call, documented in the Linux manual page for fcntl. Only one
74*4882a593Smuzhiyunuser can open the Video Device in O_RDWR mode. All other attempts to
75*4882a593Smuzhiyunopen the device in this mode will fail, and an error-code will be
76*4882a593Smuzhiyunreturned. If the Video Device is opened in O_RDONLY mode, the only
77*4882a593Smuzhiyunioctl call that can be used is VIDEO_GET_STATUS. All other call will
78*4882a593Smuzhiyunreturn an error code.
79*4882a593Smuzhiyun
80*4882a593SmuzhiyunReturn Value
81*4882a593Smuzhiyun------------
82*4882a593Smuzhiyun
83*4882a593Smuzhiyun.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun.. flat-table::
86*4882a593Smuzhiyun    :header-rows:  0
87*4882a593Smuzhiyun    :stub-columns: 0
88*4882a593Smuzhiyun
89*4882a593Smuzhiyun    -  .. row 1
90*4882a593Smuzhiyun
91*4882a593Smuzhiyun       -  ``ENODEV``
92*4882a593Smuzhiyun
93*4882a593Smuzhiyun       -  Device driver not loaded/available.
94*4882a593Smuzhiyun
95*4882a593Smuzhiyun    -  .. row 2
96*4882a593Smuzhiyun
97*4882a593Smuzhiyun       -  ``EINTERNAL``
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun       -  Internal error.
100*4882a593Smuzhiyun
101*4882a593Smuzhiyun    -  .. row 3
102*4882a593Smuzhiyun
103*4882a593Smuzhiyun       -  ``EBUSY``
104*4882a593Smuzhiyun
105*4882a593Smuzhiyun       -  Device or resource busy.
106*4882a593Smuzhiyun
107*4882a593Smuzhiyun    -  .. row 4
108*4882a593Smuzhiyun
109*4882a593Smuzhiyun       -  ``EINVAL``
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun       -  Invalid argument.
112