Merge branch 'linus' into perf/kprobes
[linux-2.6-microblaze.git] / Documentation / userspace-api / media / dvb / ca-fopen.rst
1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2 .. c:namespace:: DTV.ca
3
4 .. _ca_fopen:
5
6 ====================
7 Digital TV CA open()
8 ====================
9
10 Name
11 ----
12
13 Digital TV CA open()
14
15 Synopsis
16 --------
17
18 .. c:function:: int open(const char *name, int flags)
19
20 Arguments
21 ---------
22
23 ``name``
24   Name of specific Digital TV CA device.
25
26 ``flags``
27   A bit-wise OR of the following flags:
28
29 .. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
30
31 .. flat-table::
32     :header-rows:  0
33     :stub-columns: 0
34     :widths: 1 16
35
36     -  - ``O_RDONLY``
37        - read-only access
38
39     -  - ``O_RDWR``
40        - read/write access
41
42     -  - ``O_NONBLOCK``
43        - open in non-blocking mode
44          (blocking mode is the default)
45
46 Description
47 -----------
48
49 This system call opens a named ca device (e.g. ``/dev/dvb/adapter?/ca?``)
50 for subsequent use.
51
52 When an ``open()`` call has succeeded, the device will be ready for use. The
53 significance of blocking or non-blocking mode is described in the
54 documentation for functions where there is a difference. It does not
55 affect the semantics of the ``open()`` call itself. A device opened in
56 blocking mode can later be put into non-blocking mode (and vice versa)
57 using the ``F_SETFL`` command of the ``fcntl`` system call. This is a
58 standard system call, documented in the Linux manual page for fcntl.
59 Only one user can open the CA Device in ``O_RDWR`` mode. All other
60 attempts to open the device in this mode will fail, and an error code
61 will be returned.
62
63 Return Value
64 ------------
65
66 On success 0 is returned.
67
68 On error -1 is returned, and the ``errno`` variable is set
69 appropriately.
70
71 Generic error codes are described at the
72 :ref:`Generic Error Codes <gen-errors>` chapter.