1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2.. c:namespace:: DTV.ca
3
4.. _ca_fopen:
5
6====================
7Digital TV CA open()
8====================
9
10Name
11----
12
13Digital TV CA open()
14
15Synopsis
16--------
17
18.. c:function:: int open(const char *name, int flags)
19
20Arguments
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
46Description
47-----------
48
49This system call opens a named ca device (e.g. ``/dev/dvb/adapter?/ca?``)
50for subsequent use.
51
52When an ``open()`` call has succeeded, the device will be ready for use. The
53significance of blocking or non-blocking mode is described in the
54documentation for functions where there is a difference. It does not
55affect the semantics of the ``open()`` call itself. A device opened in
56blocking mode can later be put into non-blocking mode (and vice versa)
57using the ``F_SETFL`` command of the ``fcntl`` system call. This is a
58standard system call, documented in the Linux manual page for fcntl.
59Only one user can open the CA Device in ``O_RDWR`` mode. All other
60attempts to open the device in this mode will fail, and an error code
61will be returned.
62
63Return Value
64------------
65
66On success 0 is returned.
67
68On error -1 is returned, and the ``errno`` variable is set
69appropriately.
70
71Generic error codes are described at the
72:ref:`Generic Error Codes <gen-errors>` chapter.
73