OSDN Git Service

intel: Add a function for the new register read ioctl.
[android-x86/external-libdrm.git] / xf86drmMode.h
index 1b1e3e2..8e40034 100644 (file)
@@ -33,6 +33,9 @@
  *
  */
 
+#ifndef _XF86DRMMODE_H_
+#define _XF86DRMMODE_H_
+
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
 #endif
@@ -278,7 +281,31 @@ typedef struct _drmModeConnector {
        uint32_t *encoders; /**< List of encoder ids */
 } drmModeConnector, *drmModeConnectorPtr;
 
+typedef struct _drmModeObjectProperties {
+       uint32_t count_props;
+       uint32_t *props;
+       uint64_t *prop_values;
+} drmModeObjectProperties, *drmModeObjectPropertiesPtr;
+
+typedef struct _drmModePlane {
+       uint32_t count_formats;
+       uint32_t *formats;
+       uint32_t plane_id;
+
+       uint32_t crtc_id;
+       uint32_t fb_id;
+
+       uint32_t crtc_x, crtc_y;
+       uint32_t x, y;
 
+       uint32_t possible_crtcs;
+       uint32_t gamma_size;
+} drmModePlane, *drmModePlanePtr;
+
+typedef struct _drmModePlaneRes {
+       uint32_t count_planes;
+       uint32_t *planes;
+} drmModePlaneRes, *drmModePlaneResPtr;
 
 extern void drmModeFreeModeInfo( drmModeModeInfoPtr ptr );
 extern void drmModeFreeResources( drmModeResPtr ptr );
@@ -286,6 +313,8 @@ extern void drmModeFreeFB( drmModeFBPtr ptr );
 extern void drmModeFreeCrtc( drmModeCrtcPtr ptr );
 extern void drmModeFreeConnector( drmModeConnectorPtr ptr );
 extern void drmModeFreeEncoder( drmModeEncoderPtr ptr );
+extern void drmModeFreePlane( drmModePlanePtr ptr );
+extern void drmModeFreePlaneResources(drmModePlaneResPtr ptr);
 
 /**
  * Retrives all of the resources associated with a card.
@@ -307,6 +336,11 @@ extern drmModeFBPtr drmModeGetFB(int fd, uint32_t bufferId);
 extern int drmModeAddFB(int fd, uint32_t width, uint32_t height, uint8_t depth,
                        uint8_t bpp, uint32_t pitch, uint32_t bo_handle,
                        uint32_t *buf_id);
+/* ...with a specific pixel format */
+extern int drmModeAddFB2(int fd, uint32_t width, uint32_t height,
+                        uint32_t pixel_format, uint32_t bo_handles[4],
+                        uint32_t pitches[4], uint32_t offsets[4],
+                        uint32_t *buf_id, uint32_t flags);
 /**
  * Destroies the given framebuffer.
  */
@@ -391,6 +425,25 @@ extern int drmModeCrtcGetGamma(int fd, uint32_t crtc_id, uint32_t size,
 extern int drmModePageFlip(int fd, uint32_t crtc_id, uint32_t fb_id,
                           uint32_t flags, void *user_data);
 
+extern drmModePlaneResPtr drmModeGetPlaneResources(int fd);
+extern drmModePlanePtr drmModeGetPlane(int fd, uint32_t plane_id);
+extern int drmModeSetPlane(int fd, uint32_t plane_id, uint32_t crtc_id,
+                          uint32_t fb_id, uint32_t flags,
+                          uint32_t crtc_x, uint32_t crtc_y,
+                          uint32_t crtc_w, uint32_t crtc_h,
+                          uint32_t src_x, uint32_t src_y,
+                          uint32_t src_w, uint32_t src_h);
+
+extern drmModeObjectPropertiesPtr drmModeObjectGetProperties(int fd,
+                                                       uint32_t object_id,
+                                                       uint32_t object_type);
+extern void drmModeFreeObjectProperties(drmModeObjectPropertiesPtr ptr);
+extern int drmModeObjectSetProperty(int fd, uint32_t object_id,
+                                   uint32_t object_type, uint32_t property_id,
+                                   uint64_t value);
+
 #if defined(__cplusplus) || defined(c_plusplus)
 }
 #endif
+
+#endif