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

#include <drm_file.h>

Collaboration diagram for drm_pending_event:
Collaboration graph
[legend]

Public Attributes

struct completion * completion
 
void(* completion_release )(struct completion *completion)
 
struct drm_event * event
 
struct dma_fence * fence
 
struct drm_file * file_priv
 
struct list_head link
 
struct list_head pending_link
 

Detailed Description

struct drm_pending_event - Event queued up for userspace to read

This represents a DRM event. Drivers can use this as a generic completion mechanism, which supports kernel-internal &struct completion, &struct dma_fence and also the DRM-specific &struct drm_event delivery mechanism.

Member Data Documentation

◆ completion

struct completion* drm_pending_event::completion

@completion:

Optional pointer to a kernel internal completion signalled when drm_send_event() is called, useful to internally synchronize with nonblocking operations.

◆ completion_release

void(* drm_pending_event::completion_release) (struct completion *completion)

@completion_release:

Optional callback currently only used by the atomic modeset helpers to clean up the reference count for the structure @completion is stored in.

◆ event

struct drm_event* drm_pending_event::event

@event:

Pointer to the actual event that should be sent to userspace to be read using drm_read(). Can be optional, since nowadays events are also used to signal kernel internal threads with @completion or DMA transactions using @fence.

◆ fence

struct dma_fence* drm_pending_event::fence

@fence:

Optional DMA fence to unblock other hardware transactions which depend upon the nonblocking DRM operation this event represents.

◆ file_priv

struct drm_file* drm_pending_event::file_priv

@file_priv:

&struct drm_file where @event should be delivered to. Only set when @event is set.

◆ link

struct list_head drm_pending_event::link

Double-linked list to keep track of this event. Can be used by the driver up to the point when it calls drm_send_event(), after that this list entry is owned by the core for its own book-keeping.

◆ pending_link

struct list_head drm_pending_event::pending_link

@pending_link:

Entry on &drm_file.pending_event_list, to keep track of all pending events for @file_priv, to allow correct unwinding of them when userspace closes the file before the event is delivered.


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