wayland-drm: static inline wayland_drm_buffer_get
[mesa.git] / src / egl / wayland / wayland-drm / wayland-drm.c
index 2e256aea6d5d453396afa1f55c0eb12fbedc38b7..81f6f52852760bc053b0b9131a33345cdeb9bb36 100644 (file)
 
 #define MIN(x,y) (((x)<(y))?(x):(y))
 
-struct wl_drm {
-       struct wl_display *display;
-       struct wl_global *wl_drm_global;
-
-       void *user_data;
-       char *device_name;
-        uint32_t flags;
-
-       struct wayland_drm_callbacks *callbacks;
-
-        struct wl_buffer_interface buffer_interface;
-};
-
 static void
 destroy_buffer(struct wl_resource *resource)
 {
        struct wl_drm_buffer *buffer = wl_resource_get_user_data(resource);
        struct wl_drm *drm = buffer->drm;
 
-       drm->callbacks->release_buffer(drm->user_data, buffer);
+       drm->callbacks.release_buffer(drm->user_data, buffer);
        free(buffer);
 }
 
@@ -97,7 +84,7 @@ create_buffer(struct wl_client *client, struct wl_resource *resource,
        buffer->offset[2] = offset2;
        buffer->stride[2] = stride2;
 
-        drm->callbacks->reference_buffer(drm->user_data, name, fd, buffer);
+        drm->callbacks.reference_buffer(drm->user_data, name, fd, buffer);
        if (buffer->driver_buffer == NULL) {
                wl_resource_post_error(resource,
                                       WL_DRM_ERROR_INVALID_NAME,
@@ -189,7 +176,7 @@ drm_authenticate(struct wl_client *client,
 {
        struct wl_drm *drm = wl_resource_get_user_data(resource);
 
-       if (drm->callbacks->authenticate(drm->user_data, id) < 0)
+       if (drm->callbacks.authenticate(drm->user_data, id) < 0)
                wl_resource_post_error(resource,
                                       WL_DRM_ERROR_AUTHENTICATE_FAIL,
                                       "authenicate failed");
@@ -244,22 +231,9 @@ bind_drm(struct wl_client *client, void *data, uint32_t version, uint32_t id)
            wl_resource_post_event(resource, WL_DRM_CAPABILITIES, capabilities);
 }
 
-struct wl_drm_buffer *
-wayland_drm_buffer_get(struct wl_drm *drm, struct wl_resource *resource)
-{
-       if (resource == NULL)
-               return NULL;
-
-        if (wl_resource_instance_of(resource, &wl_buffer_interface,
-                                    &drm->buffer_interface))
-               return wl_resource_get_user_data(resource);
-        else
-               return NULL;
-}
-
 struct wl_drm *
 wayland_drm_init(struct wl_display *display, char *device_name,
-                 struct wayland_drm_callbacks *callbacks, void *user_data,
+                 const struct wayland_drm_callbacks *callbacks, void *user_data,
                  uint32_t flags)
 {
        struct wl_drm *drm;
@@ -270,7 +244,7 @@ wayland_drm_init(struct wl_display *display, char *device_name,
 
        drm->display = display;
        drm->device_name = strdup(device_name);
-       drm->callbacks = callbacks;
+       drm->callbacks = *callbacks;
        drm->user_data = user_data;
         drm->flags = flags;