xref: /OK3568_Linux_fs/kernel/Documentation/userspace-api/media/dvb/audio-fopen.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2*4882a593Smuzhiyun.. c:namespace:: DTV.audio
3*4882a593Smuzhiyun
4*4882a593Smuzhiyun.. _audio_fopen:
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun=======================
7*4882a593SmuzhiyunDigital TV audio open()
8*4882a593Smuzhiyun=======================
9*4882a593Smuzhiyun
10*4882a593SmuzhiyunName
11*4882a593Smuzhiyun----
12*4882a593Smuzhiyun
13*4882a593SmuzhiyunDigital TV audio 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 audio 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 audio device (e.g.
65*4882a593Smuzhiyun/dev/dvb/adapter0/audio0) for subsequent use. When an open() call has
66*4882a593Smuzhiyunsucceeded, the device will be ready for use. The significance of
67*4882a593Smuzhiyunblocking or non-blocking mode is described in the documentation for
68*4882a593Smuzhiyunfunctions where there is a difference. It does not affect the semantics
69*4882a593Smuzhiyunof the open() call itself. A device opened in blocking mode can later be
70*4882a593Smuzhiyunput into non-blocking mode (and vice versa) using the F_SETFL command
71*4882a593Smuzhiyunof the fcntl system call. This is a standard system call, documented in
72*4882a593Smuzhiyunthe Linux manual page for fcntl. Only one user can open the Audio Device
73*4882a593Smuzhiyunin O_RDWR mode. All other attempts to open the device in this mode will
74*4882a593Smuzhiyunfail, and an error code will be returned. If the Audio Device is opened
75*4882a593Smuzhiyunin O_RDONLY mode, the only ioctl call that can be used is
76*4882a593SmuzhiyunAUDIO_GET_STATUS. All other call will return with an error code.
77*4882a593Smuzhiyun
78*4882a593SmuzhiyunReturn Value
79*4882a593Smuzhiyun------------
80*4882a593Smuzhiyun
81*4882a593Smuzhiyun.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
82*4882a593Smuzhiyun
83*4882a593Smuzhiyun.. flat-table::
84*4882a593Smuzhiyun    :header-rows:  0
85*4882a593Smuzhiyun    :stub-columns: 0
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun    -  .. row 1
88*4882a593Smuzhiyun
89*4882a593Smuzhiyun       -  ``ENODEV``
90*4882a593Smuzhiyun
91*4882a593Smuzhiyun       -  Device driver not loaded/available.
92*4882a593Smuzhiyun
93*4882a593Smuzhiyun    -  .. row 2
94*4882a593Smuzhiyun
95*4882a593Smuzhiyun       -  ``EBUSY``
96*4882a593Smuzhiyun
97*4882a593Smuzhiyun       -  Device or resource busy.
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun    -  .. row 3
100*4882a593Smuzhiyun
101*4882a593Smuzhiyun       -  ``EINVAL``
102*4882a593Smuzhiyun
103*4882a593Smuzhiyun       -  Invalid argument.
104