summaryrefslogtreecommitdiff
path: root/libdrm
diff options
context:
space:
mode:
authorDave Airlie <airlied@linux.ie>2007-04-12 08:45:40 +1000
committerDave Airlie <airlied@linux.ie>2007-04-12 08:45:40 +1000
commita81558d8b3ee17fbf46e32b10732e22fcd997858 (patch)
tree95ea4879c442e38a316d3aa92fd821b8e545d2cc /libdrm
parent9d7160c43a7475b9d2ab06c5c353acb9456efa12 (diff)
add getfb ioctl
Diffstat (limited to 'libdrm')
-rw-r--r--libdrm/xf86drmMode.c52
-rw-r--r--libdrm/xf86drmMode.h15
2 files changed, 21 insertions, 46 deletions
diff --git a/libdrm/xf86drmMode.c b/libdrm/xf86drmMode.c
index 04fb07dc..6070ec6f 100644
--- a/libdrm/xf86drmMode.c
+++ b/libdrm/xf86drmMode.c
@@ -215,51 +215,33 @@ int drmModeRmFB(int fd, uint32_t bufferId)
return ioctl(fd, DRM_IOCTL_MODE_RMFB, bufferId);
}
-#if 0
-int drmModeForceProbe(int fd, uint32_t outputId)
-{
- /* TODO impl/keep? */
-}
-
-drmModeFrameBufferPtr drmModeGetFrameBuffer(int fd, uint32_t buf)
+drmModeFrameBufferPtr drmModeGetFB(int fd, uint32_t buf)
{
-// struct drm_mode_fb_cmd info;
+ struct drm_mode_fb_cmd info;
drmModeFrameBufferPtr r;
- // if (ioctl(fd, DRM_IOCTL_MODE_GETFRAMEBUFFER, &info))
- return 0;
+ info.buffer_id = buf;
+
+ if (ioctl(fd, DRM_IOCTL_MODE_GETFB, &info))
+ return NULL;
if (!(r = drmMalloc(sizeof(*r))))
- return 0;
+ return NULL;
- /* TODO change to new code
- r->minWidth = info.minWidth;
- r->maxWidth = info.maxWidth;
- r->minHeight = info.minHeight;
- r->maxHeight = info.maxHeight;*/
+ r->buffer_id = info.buffer_id;
+ r->width = info.width;
+ r->height = info.height;
+ r->pitch = info.pitch;
+ r->bpp = info.bpp;
+ r->handle = info.handle;
+ r->depth = info.depth;
return r;
}
-
-uint32_t drmModeNewFrameBuffer(int fd, uint32_t width, uint32_t height,
- uint8_t bpp, uint32_t pitch, drmBO *bo)
-{
- drm_mode_fb_cmd_t f;
-
- f.handle = bo->handle;
- f.width = width;
- f.height = height;
- f.pitch = pitch;
-
- // if (ioctl(fd, DRM_IOCTL_MODE_NEWFRAMEBUFFER, &f))
- return 0;
-
- return f.bufferId;
-}
-
-int drmModeDesFrameBuffer(int fd, uint32_t bufferId)
+#if 0
+int drmModeForceProbe(int fd, uint32_t outputId)
{
- // return ioctl(fd, DRM_IOCTL_MODE_DESFRAMEBUFFER, bufferId);
+ /* TODO impl/keep? */
}
#endif
diff --git a/libdrm/xf86drmMode.h b/libdrm/xf86drmMode.h
index cdc82f7d..6a566c4d 100644
--- a/libdrm/xf86drmMode.h
+++ b/libdrm/xf86drmMode.h
@@ -76,14 +76,7 @@ typedef struct _drmModeRes {
} drmModeRes, *drmModeResPtr;
-typedef struct _drmModeFrameBuffer {
-
- uint32_t width;
- uint32_t height;
- uint32_t pitch;
- uint8_t bpp;
-
-} drmModeFrameBuffer, *drmModeFrameBufferPtr;
+typedef struct drm_mode_fb_cmd drmModeFrameBuffer, *drmModeFrameBufferPtr;
typedef struct _drmModeCrtc {
@@ -209,14 +202,14 @@ extern int drmModeForceProbe(int fd, uint32_t outputId);
/**
* Retrive information about framebuffer bufferId
*/
-extern drmModeFrameBufferPtr drmModeGetFB(int fd,
- uint32_t bufferId);
+extern drmModeFrameBufferPtr drmModeGetFB(int fd, uint32_t bufferId);
/**
* Creates a new framebuffer with an buffer object as its scanout buffer.
*/
extern int drmModeAddFB(int fd, uint32_t width, uint32_t height, uint8_t depth,
- uint8_t bpp, uint32_t pitch, drmBO *bo, uint32_t *buf_id);
+ uint8_t bpp, uint32_t pitch, drmBO *bo,
+ uint32_t *buf_id);
/**
* Destroies the given framebuffer.
*/