XenevaOS
Loading...
Searching...
No Matches
Public Attributes | List of all members
drm_object_properties Struct Reference

#include <drm_mode_object.h>

Collaboration diagram for drm_object_properties:
Collaboration graph
[legend]

Public Attributes

int count
 
struct drm_property * properties [DRM_OBJECT_MAX_PROPERTY]
 
uint64_t values [DRM_OBJECT_MAX_PROPERTY]
 

Detailed Description

struct drm_object_properties - property tracking for &drm_mode_object

Member Data Documentation

◆ count

int drm_object_properties::count

@count: number of valid properties, must be less than or equal to DRM_OBJECT_MAX_PROPERTY.

◆ properties

struct drm_property* drm_object_properties::properties[DRM_OBJECT_MAX_PROPERTY]

@properties: Array of pointers to &drm_property.

NOTE: if we ever start dynamically destroying properties (ie. not at drm_mode_config_cleanup() time), then we'd have to do a better job of detaching property from mode objects to avoid dangling property pointers:

◆ values

uint64_t drm_object_properties::values[DRM_OBJECT_MAX_PROPERTY]

@values: Array to store the property values, matching @properties. Do not read/write values directly, but use drm_object_property_get_value() and drm_object_property_set_value().

Note that atomic drivers do not store mutable properties in this array, but only the decoded values in the corresponding state structure. The decoding is done using the &drm_crtc.atomic_get_property and &drm_crtc.atomic_set_property hooks for &struct drm_crtc. For &struct drm_plane the hooks are &drm_plane_funcs.atomic_get_property and &drm_plane_funcs.atomic_set_property. And for &struct drm_connector the hooks are &drm_connector_funcs.atomic_get_property and &drm_connector_funcs.atomic_set_property .

Hence atomic drivers should not use drm_object_property_set_value() and drm_object_property_get_value() on mutable objects, i.e. those without the DRM_MODE_PROP_IMMUTABLE flag set.

For atomic drivers the default value of properties is stored in this array, so drm_object_property_get_default_value can be used to retrieve it.


The documentation for this struct was generated from the following file: