diff options
author | Drew DeVault <sir@cmpwn.com> | 2017-08-26 08:22:44 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-26 08:22:44 -0500 |
commit | 2f5ff450397714674aec9ffc09ba86989382fcfe (patch) | |
tree | e52174f40cec92e47546011d20300171424467a3 /include/wlr | |
parent | 48fa59c22e0b49bc347006738cc5dda9c6d13821 (diff) | |
parent | d16b2977f6b156e5b3a4ceb028cfbe70b9a350c1 (diff) |
Merge pull request #123 from ascent12/session-multi-gpu
Session Multi-GPU
Diffstat (limited to 'include/wlr')
-rw-r--r-- | include/wlr/backend/drm.h | 3 | ||||
-rw-r--r-- | include/wlr/backend/libinput.h | 3 | ||||
-rw-r--r-- | include/wlr/backend/multi.h | 4 | ||||
-rw-r--r-- | include/wlr/backend/session.h | 24 | ||||
-rw-r--r-- | include/wlr/backend/session/interface.h | 4 | ||||
-rw-r--r-- | include/wlr/backend/udev.h | 9 |
6 files changed, 26 insertions, 21 deletions
diff --git a/include/wlr/backend/drm.h b/include/wlr/backend/drm.h index fe1cc5a7..fa63df0a 100644 --- a/include/wlr/backend/drm.h +++ b/include/wlr/backend/drm.h @@ -4,10 +4,9 @@ #include <wayland-server.h> #include <wlr/backend/session.h> #include <wlr/backend.h> -#include <wlr/backend/udev.h> struct wlr_backend *wlr_drm_backend_create(struct wl_display *display, - struct wlr_session *session, struct wlr_udev *udev, int gpu_fd); + struct wlr_session *session, int gpu_fd); bool wlr_backend_is_drm(struct wlr_backend *backend); diff --git a/include/wlr/backend/libinput.h b/include/wlr/backend/libinput.h index b227a7ad..95b8829d 100644 --- a/include/wlr/backend/libinput.h +++ b/include/wlr/backend/libinput.h @@ -5,11 +5,10 @@ #include <wayland-server.h> #include <wlr/backend/session.h> #include <wlr/backend.h> -#include <wlr/backend/udev.h> #include <wlr/types/wlr_input_device.h> struct wlr_backend *wlr_libinput_backend_create(struct wl_display *display, - struct wlr_session *session, struct wlr_udev *udev); + struct wlr_session *session); struct libinput_device *wlr_libinput_get_device_handle(struct wlr_input_device *dev); bool wlr_backend_is_libinput(struct wlr_backend *backend); diff --git a/include/wlr/backend/multi.h b/include/wlr/backend/multi.h index e8e46bed..3fcaaf1e 100644 --- a/include/wlr/backend/multi.h +++ b/include/wlr/backend/multi.h @@ -2,11 +2,9 @@ #define _WLR_BACKEND_MULTI_H #include <wlr/backend.h> -#include <wlr/backend/udev.h> #include <wlr/backend/session.h> -struct wlr_backend *wlr_multi_backend_create(struct wlr_session *session, - struct wlr_udev *udev); +struct wlr_backend *wlr_multi_backend_create(struct wlr_session *session); void wlr_multi_backend_add(struct wlr_backend *multi, struct wlr_backend *backend); diff --git a/include/wlr/backend/session.h b/include/wlr/backend/session.h index 7961e620..04e701b0 100644 --- a/include/wlr/backend/session.h +++ b/include/wlr/backend/session.h @@ -3,10 +3,19 @@ #include <stdbool.h> #include <wayland-server.h> +#include <libudev.h> #include <sys/types.h> struct session_impl; +struct wlr_device { + int fd; + dev_t dev; + struct wl_signal signal; + + struct wl_list link; +}; + struct wlr_session { const struct session_impl *impl; /* @@ -16,9 +25,14 @@ struct wlr_session { struct wl_signal session_signal; bool active; - int drm_fd; unsigned vtnr; char seat[8]; + + struct udev *udev; + struct udev_monitor *mon; + struct wl_event_source *udev_event; + + struct wl_list devices; }; /* @@ -31,14 +45,14 @@ struct wlr_session { * * Returns NULL on error. */ -struct wlr_session *wlr_session_start(struct wl_display *disp); +struct wlr_session *wlr_session_create(struct wl_display *disp); /* * Closes a previously opened session and restores the virtual terminal. * You should call wlr_session_close_file on each files you opened * with wlr_session_open_file before you call this. */ -void wlr_session_finish(struct wlr_session *session); +void wlr_session_destroy(struct wlr_session *session); /* * Opens the file at path. @@ -57,9 +71,13 @@ int wlr_session_open_file(struct wlr_session *session, const char *path); */ void wlr_session_close_file(struct wlr_session *session, int fd); +void wlr_session_signal_add(struct wlr_session *session, int fd, + struct wl_listener *listener); /* * Changes the virtual terminal. */ bool wlr_session_change_vt(struct wlr_session *session, unsigned vt); +int wlr_session_find_gpu(struct wlr_session *session); + #endif diff --git a/include/wlr/backend/session/interface.h b/include/wlr/backend/session/interface.h index 16814446..1a029c54 100644 --- a/include/wlr/backend/session/interface.h +++ b/include/wlr/backend/session/interface.h @@ -4,8 +4,8 @@ #include <wlr/backend/session.h> struct session_impl { - struct wlr_session *(*start)(struct wl_display *disp); - void (*finish)(struct wlr_session *session); + struct wlr_session *(*create)(struct wl_display *disp); + void (*destroy)(struct wlr_session *session); int (*open)(struct wlr_session *session, const char *path); void (*close)(struct wlr_session *session, int fd); bool (*change_vt)(struct wlr_session *session, unsigned vt); diff --git a/include/wlr/backend/udev.h b/include/wlr/backend/udev.h deleted file mode 100644 index 387a63e6..00000000 --- a/include/wlr/backend/udev.h +++ /dev/null @@ -1,9 +0,0 @@ -#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 |