Merge tag 'hwmon-for-linus-v4.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git...
[deliverable/linux.git] / Documentation / media / uapi / dvb / frontend_f_open.rst
CommitLineData
5377d91f
MH
1.. -*- coding: utf-8; mode: rst -*-
2
3.. _frontend_f_open:
4
5*******************
6DVB frontend open()
7*******************
8
15e7d615 9Name
586027ce 10====
5377d91f 11
586027ce 12fe-open - Open a frontend device
5377d91f 13
15e7d615
MCC
14
15Synopsis
5377d91f
MH
16========
17
18.. code-block:: c
19
20 #include <fcntl.h>
21
22
b7e67f6c 23.. cpp:function:: int open( const char *device_name, int flags )
5377d91f 24
586027ce 25
15e7d615 26Arguments
5377d91f
MH
27=========
28
29``device_name``
30 Device to be opened.
31
32``flags``
33 Open flags. Access can either be ``O_RDWR`` or ``O_RDONLY``.
34
35 Multiple opens are allowed with ``O_RDONLY``. In this mode, only
36 query and read ioctls are allowed.
37
38 Only one open is allowed in ``O_RDWR``. In this mode, all ioctls are
39 allowed.
40
41 When the ``O_NONBLOCK`` flag is given, the system calls may return
cdb4af0f 42 ``EAGAIN`` error code when no data is available or when the device
5377d91f
MH
43 driver is temporarily busy.
44
45 Other flags have no effect.
46
47
15e7d615 48Description
5377d91f
MH
49===========
50
51This system call opens a named frontend device
52(``/dev/dvb/adapter?/frontend?``) for subsequent use. Usually the first
53thing to do after a successful open is to find out the frontend type
7347081e 54with :ref:`FE_GET_INFO`.
5377d91f
MH
55
56The device can be opened in read-only mode, which only allows monitoring
57of device status and statistics, or read/write mode, which allows any
58kind of use (e.g. performing tuning operations.)
59
60In a system with multiple front-ends, it is usually the case that
61multiple devices cannot be open in read/write mode simultaneously. As
62long as a front-end device is opened in read/write mode, other open()
63calls in read/write mode will either fail or block, depending on whether
64non-blocking or blocking mode was specified. A front-end device opened
65in blocking mode can later be put into non-blocking mode (and vice
66versa) using the F_SETFL command of the fcntl system call. This is a
67standard system call, documented in the Linux manual page for fcntl.
68When an open() call has succeeded, the device will be ready for use in
69the specified mode. This implies that the corresponding hardware is
70powered up, and that other front-ends may have been powered down to make
71that possible.
72
73
15e7d615 74Return Value
5377d91f
MH
75============
76
760c7010
MCC
77On success :ref:`open() <frontend_f_open>` returns the new file descriptor.
78On error, -1 is returned, and the ``errno`` variable is set appropriately.
79
5377d91f
MH
80Possible error codes are:
81
82EACCES
83 The caller has no permission to access the device.
84
85EBUSY
86 The the device driver is already in use.
87
88ENXIO
89 No device corresponding to this device special file exists.
90
91ENOMEM
92 Not enough kernel memory was available to complete the request.
93
94EMFILE
95 The process already has the maximum number of files open.
96
97ENFILE
98 The limit on the total number of files open on the system has been
99 reached.
100
101ENODEV
102 The device got removed.
This page took 0.059752 seconds and 5 git commands to generate.