Abstract cursor plane initialization

To allow driver-specific plane z-ordering, at least.

This provides the same functionality as:
https://gerrit.chromium.org/gerrit/#/c/25276/

Change-Id: I89ccd656028c490f64138c5fc1741996e73e3987
diff --git a/src/drmmode_driver.h b/src/drmmode_driver.h
index dfb5daf..3414fa2 100644
--- a/src/drmmode_driver.h
+++ b/src/drmmode_driver.h
@@ -45,6 +45,17 @@
 	 * waited for during DRM_IOCTL_MODE_PAGE_FLIP.
 	 */
 	int use_page_flip_events;
+
+	/* (Optional) Initialize the given plane for use as a hardware cursor.
+	 *
+	 * This function should do any initialization necessary, for example setting the
+	 * z-order on the plane to appear above all other layers.
+	 *
+	 * @param drm_fd   The DRM device file
+	 * @param plane_id The plane to initialize
+	 * @return 0 on success, non-zero on failure
+	 */
+	int (*init_plane_for_cursor)(int drm_fd, uint32_t plane_id);
 };
 
 struct drmmode_interface *drmmode_interface_get_implementation(int drm_fd);