| <?xml version='1.0'?> <!--*-nxml-*--> | |
| <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | |
| "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | |
| <!-- | |
| Written 2012 by David Herrmann <dh.herrmann@googlemail.com> | |
| Dedicated to the Public Domain | |
| --> | |
| <refentry id="drmModeGetResources"> | |
| <refentryinfo> | |
| <title>Direct Rendering Manager</title> | |
| <productname>libdrm</productname> | |
| <date>September 2012</date> | |
| <authorgroup> | |
| <author> | |
| <contrib>Developer</contrib> | |
| <firstname>David</firstname> | |
| <surname>Herrmann</surname> | |
| <email>dh.herrmann@googlemail.com</email> | |
| </author> | |
| </authorgroup> | |
| </refentryinfo> | |
| <refmeta> | |
| <refentrytitle>drmModeGetResources</refentrytitle> | |
| <manvolnum>3</manvolnum> | |
| </refmeta> | |
| <refnamediv> | |
| <refname>drmModeGetResources</refname> | |
| <refpurpose>retrieve current display configuration information</refpurpose> | |
| </refnamediv> | |
| <refsynopsisdiv> | |
| <funcsynopsis> | |
| <funcsynopsisinfo>#include <xf86drm.h></funcsynopsisinfo> | |
| <funcsynopsisinfo>#include <xf86drmMode.h></funcsynopsisinfo> | |
| <funcprototype> | |
| <funcdef>drmModeResPtr <function>drmModeGetResources</function></funcdef> | |
| <paramdef>int <parameter>fd</parameter></paramdef> | |
| </funcprototype> | |
| </funcsynopsis> | |
| </refsynopsisdiv> | |
| <refsect1> | |
| <title>Description</title> | |
| <para><function>drmModeGetResources</function> allocates, populates, and | |
| returns a <structname>drmModeRes</structname> structure containing | |
| information about the current display configuration. The structure | |
| contains the following fields: | |
| <programlisting> | |
| typedef struct _drmModeRes { | |
| int count_fbs; | |
| uint32_t *fbs; | |
| int count_crtcs; | |
| uint32_t *crtcs; | |
| int count_connectors; | |
| uint32_t *connectors; | |
| int count_encoders; | |
| uint32_t *encoders; | |
| uint32_t min_width, max_width; | |
| uint32_t min_height, max_height; | |
| } drmModeRes, *drmModeResPtr; | |
| </programlisting> | |
| </para> | |
| <para>The <structfield>count_fbs</structfield> and | |
| <structfield>fbs</structfield> fields indicate the number of currently | |
| allocated framebuffer objects (i.e., objects that can be attached to | |
| a given CRTC or sprite for display).</para> | |
| <para>The <structfield>count_crtcs</structfield> and | |
| <structfield>crtcs</structfield> fields list the available CRTCs in | |
| the configuration. A CRTC is simply an object that can scan out a | |
| framebuffer to a display sink, and contains mode timing and relative | |
| position information. CRTCs drive encoders, which are responsible for | |
| converting the pixel stream into a specific display protocol (e.g., | |
| MIPI or HDMI).</para> | |
| <para>The <structfield>count_connectors</structfield> and | |
| <structfield>connectors</structfield> fields list the available | |
| physical connectors on the system. Note that some of these may not be | |
| exposed from the chassis (e.g., LVDS or eDP). Connectors are attached | |
| to encoders and contain information about the attached display sink | |
| (e.g., width and height in mm, subpixel ordering, and various other | |
| properties).</para> | |
| <para>The <structfield>count_encoders</structfield> and | |
| <structfield>encoders</structfield> fields list the available encoders | |
| on the device. Each encoder may be associated with a CRTC, and may be | |
| used to drive a particular encoder.</para> | |
| <para>The <structfield>min*</structfield> and | |
| <structfield>max*</structfield> fields indicate the maximum size of a | |
| framebuffer for this device (i.e., the scanout size limit).</para> | |
| </refsect1> | |
| <refsect1> | |
| <title>Return Value</title> | |
| <para><function>drmModeGetResources</function> returns a drmModeRes | |
| structure pointer on success, <literal>NULL</literal> on failure. The | |
| returned structure must be freed with | |
| <citerefentry><refentrytitle>drmModeFreeResources</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para> | |
| </refsect1> | |
| <refsect1> | |
| <title>Reporting Bugs</title> | |
| <para>Bugs in this function should be reported to | |
| https://bugs.freedesktop.org/enter_bug.cgi?product=DRI&component=libdrm | |
| under the "DRI" product, component "libdrm"</para> | |
| </refsect1> | |
| <refsect1> | |
| <title>See Also</title> | |
| <para> | |
| <citerefentry><refentrytitle>drm</refentrytitle><manvolnum>7</manvolnum></citerefentry>, | |
| <citerefentry><refentrytitle>drm-kms</refentrytitle><manvolnum>7</manvolnum></citerefentry>, | |
| <citerefentry><refentrytitle>drmModeGetFB</refentrytitle><manvolnum>3</manvolnum></citerefentry>, | |
| <citerefentry><refentrytitle>drmModeAddFB</refentrytitle><manvolnum>3</manvolnum></citerefentry>, | |
| <citerefentry><refentrytitle>drmModeAddFB2</refentrytitle><manvolnum>3</manvolnum></citerefentry>, | |
| <citerefentry><refentrytitle>drmModeRmFB</refentrytitle><manvolnum>3</manvolnum></citerefentry>, | |
| <citerefentry><refentrytitle>drmModeDirtyFB</refentrytitle><manvolnum>3</manvolnum></citerefentry>, | |
| <citerefentry><refentrytitle>drmModeGetCrtc</refentrytitle><manvolnum>3</manvolnum></citerefentry>, | |
| <citerefentry><refentrytitle>drmModeSetCrtc</refentrytitle><manvolnum>3</manvolnum></citerefentry>, | |
| <citerefentry><refentrytitle>drmModeGetEncoder</refentrytitle><manvolnum>3</manvolnum></citerefentry>, | |
| <citerefentry><refentrytitle>drmModeGetConnector</refentrytitle><manvolnum>3</manvolnum></citerefentry> | |
| </para> | |
| </refsect1> | |
| </refentry> |