From 40b85d992a0a8dcdbff5305e232fbcd26d873148 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Thu, 1 Jun 2017 20:29:10 -0400 Subject: Refactor udev and drm initialization --- include/backend/drm/backend.h | 5 +++-- include/backend/drm/udev.h | 24 ------------------------ include/backend/udev.h | 19 +++++++++++++++++++ include/wlr/backend/drm.h | 3 ++- include/wlr/backend/udev.h | 9 +++++++++ 5 files changed, 33 insertions(+), 27 deletions(-) delete mode 100644 include/backend/drm/udev.h create mode 100644 include/backend/udev.h create mode 100644 include/wlr/backend/udev.h (limited to 'include') diff --git a/include/backend/drm/backend.h b/include/backend/drm/backend.h index e603bccd..3f0bce73 100644 --- a/include/backend/drm/backend.h +++ b/include/backend/drm/backend.h @@ -13,7 +13,7 @@ #include #include "backend.h" -#include "udev.h" +#include "backend/udev.h" #include "event.h" #include "drm.h" @@ -26,13 +26,14 @@ struct wlr_backend_state { struct wl_listener device_paused; struct wl_listener device_resumed; + struct wl_listener drm_invalidated; uint32_t taken_crtcs; list_t *outputs; struct wlr_drm_renderer renderer; struct wlr_session *session; - struct wlr_udev udev; + struct wlr_udev *udev; }; #endif diff --git a/include/backend/drm/udev.h b/include/backend/drm/udev.h deleted file mode 100644 index 99c2c403..00000000 --- a/include/backend/drm/udev.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef UDEV_H -#define UDEV_H - -#include - -#include -#include - -struct wlr_udev { - struct udev *udev; - struct udev_monitor *mon; - char *drm_path; - - struct wl_event_source *event; -}; - -struct wlr_drm_backend; -bool wlr_udev_init(struct wl_display *display, struct wlr_udev *udev); -void wlr_udev_free(struct wlr_udev *udev); -int wlr_udev_find_gpu(struct wlr_udev *udev, struct wlr_session *session); - -void wlr_udev_event(struct wlr_drm_backend *backend); - -#endif diff --git a/include/backend/udev.h b/include/backend/udev.h new file mode 100644 index 00000000..c5064279 --- /dev/null +++ b/include/backend/udev.h @@ -0,0 +1,19 @@ +#ifndef _WLR_INTERNAL_UDEV_H +#define _WLR_INTERNAL_UDEV_H + +#include +#include +#include +#include + +struct wlr_udev { + struct udev *udev; + struct udev_monitor *mon; + char *drm_path; + struct wl_event_source *event; + struct wl_signal invalidate_drm; +}; + +int wlr_udev_find_gpu(struct wlr_udev *udev, struct wlr_session *session); + +#endif diff --git a/include/wlr/backend/drm.h b/include/wlr/backend/drm.h index 2863f926..a486757d 100644 --- a/include/wlr/backend/drm.h +++ b/include/wlr/backend/drm.h @@ -4,8 +4,9 @@ #include #include #include +#include struct wlr_backend *wlr_drm_backend_create(struct wl_display *display, - struct wlr_session *session); + struct wlr_session *session, struct wlr_udev *udev, int gpu_fd); #endif diff --git a/include/wlr/backend/udev.h b/include/wlr/backend/udev.h new file mode 100644 index 00000000..387a63e6 --- /dev/null +++ b/include/wlr/backend/udev.h @@ -0,0 +1,9 @@ +#ifndef _WLR_BACKEND_UDEV_H +#define _WLR_BACKEND_UDEV_H + +struct wlr_udev; + +struct wlr_udev *wlr_udev_create(struct wl_display *display); +void wlr_udev_destroy(struct wlr_udev *udev); + +#endif -- cgit v1.2.3