Index: ui/ozone/platform/drm/host/drm_display_host_manager.cc |
diff --git a/ui/ozone/platform/drm/host/drm_display_host_manager.cc b/ui/ozone/platform/drm/host/drm_display_host_manager.cc |
index 0305559fbe6dc5f2be5afa5377042504b7fa6f35..3d7b7b4f245c81d4646f4651f7f9699753fa66e9 100644 |
--- a/ui/ozone/platform/drm/host/drm_display_host_manager.cc |
+++ b/ui/ozone/platform/drm/host/drm_display_host_manager.cc |
@@ -155,6 +155,23 @@ DrmDisplayHostManager::DrmDisplayHostManager( |
} |
} |
+base::FileDescriptor DrmDisplayHostManager::DupVgemFd() { |
+ if (vgem_card_path_.empty()) |
+ return base::FileDescriptor(); |
+ |
+ int duped_handle = -1; |
+ { |
+ base::ThreadRestrictions::ScopedAllowIO allow_io; |
+ duped_handle = HANDLE_EINTR(dup(vgem_card_device_file_.get())); |
+ } |
+ if (duped_handle < 0) { |
+ PLOG(ERROR) << "dup() failed."; |
+ return base::FileDescriptor(); |
+ } |
+ |
+ return base::FileDescriptor(duped_handle, true); |
+} |
+ |
DrmDisplayHostManager::~DrmDisplayHostManager() { |
device_manager_->RemoveObserver(this); |
proxy_->UnregisterHandler(this); |