diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-09-14 03:16:04 +0200 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-09-19 04:47:55 +0200 |
commit | 8e080c2e6cadada82a6b520e0c23a1cb974822d5 (patch) | |
tree | 991450ff1abba98e5313906478c33816a202ccab /Documentation/DocBook/v4l/func-open.xml | |
parent | V4L/DVB (12756): af9015: fix typo in register compare (diff) | |
download | linux-8e080c2e6cadada82a6b520e0c23a1cb974822d5.tar.xz linux-8e080c2e6cadada82a6b520e0c23a1cb974822d5.zip |
V4L/DVB (12761): DocBook: add media API specs
The V4L and DVB API's are there for a long time. however, up to now,
no efforts were done to merge them to kernel DocBook.
This patch adds the current versions of the specs as an unique compendium.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'Documentation/DocBook/v4l/func-open.xml')
-rw-r--r-- | Documentation/DocBook/v4l/func-open.xml | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/Documentation/DocBook/v4l/func-open.xml b/Documentation/DocBook/v4l/func-open.xml new file mode 100644 index 000000000000..7595d07a8c72 --- /dev/null +++ b/Documentation/DocBook/v4l/func-open.xml @@ -0,0 +1,121 @@ +<refentry id="func-open"> + <refmeta> + <refentrytitle>V4L2 open()</refentrytitle> + &manvol; + </refmeta> + + <refnamediv> + <refname>v4l2-open</refname> + <refpurpose>Open a V4L2 device</refpurpose> + </refnamediv> + + <refsynopsisdiv> + <funcsynopsis> + <funcsynopsisinfo>#include <fcntl.h></funcsynopsisinfo> + <funcprototype> + <funcdef>int <function>open</function></funcdef> + <paramdef>const char *<parameter>device_name</parameter></paramdef> + <paramdef>int <parameter>flags</parameter></paramdef> + </funcprototype> + </funcsynopsis> + </refsynopsisdiv> + + <refsect1> + <title>Arguments</title> + + <variablelist> + <varlistentry> + <term><parameter>device_name</parameter></term> + <listitem> + <para>Device to be opened.</para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>flags</parameter></term> + <listitem> + <para>Open flags. Access mode must be +<constant>O_RDWR</constant>. This is just a technicality, input devices +still support only reading and output devices only writing.</para> + <para>When the <constant>O_NONBLOCK</constant> flag is +given, the read() function and the &VIDIOC-DQBUF; ioctl will return +the &EAGAIN; when no data is available or no buffer is in the driver +outgoing queue, otherwise these functions block until data becomes +available. All V4L2 drivers exchanging data with applications must +support the <constant>O_NONBLOCK</constant> flag.</para> + <para>Other flags have no effect.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1> + <title>Description</title> + + <para>To open a V4L2 device applications call +<function>open()</function> with the desired device name. This +function has no side effects; all data format parameters, current +input or output, control values or other properties remain unchanged. +At the first <function>open()</function> call after loading the driver +they will be reset to default values, drivers are never in an +undefined state.</para> + </refsect1> + <refsect1> + <title>Return Value</title> + + <para>On success <function>open</function> returns the new file +descriptor. On error -1 is returned, and the <varname>errno</varname> +variable is set appropriately. Possible error codes are:</para> + + <variablelist> + <varlistentry> + <term><errorcode>EACCES</errorcode></term> + <listitem> + <para>The caller has no permission to access the +device.</para> + </listitem> + </varlistentry> + <varlistentry> + <term><errorcode>EBUSY</errorcode></term> + <listitem> + <para>The driver does not support multiple opens and the +device is already in use.</para> + </listitem> + </varlistentry> + <varlistentry> + <term><errorcode>ENXIO</errorcode></term> + <listitem> + <para>No device corresponding to this device special file +exists.</para> + </listitem> + </varlistentry> + <varlistentry> + <term><errorcode>ENOMEM</errorcode></term> + <listitem> + <para>Not enough kernel memory was available to complete the +request.</para> + </listitem> + </varlistentry> + <varlistentry> + <term><errorcode>EMFILE</errorcode></term> + <listitem> + <para>The process already has the maximum number of +files open.</para> + </listitem> + </varlistentry> + <varlistentry> + <term><errorcode>ENFILE</errorcode></term> + <listitem> + <para>The limit on the total number of files open on the +system has been reached.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> +</refentry> + +<!-- +Local Variables: +mode: sgml +sgml-parent-document: "v4l2.sgml" +indent-tabs-mode: nil +End: +--> |