From 03c47f1420bf17a1e0f2b86be500656ae5a4c95b Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 25 Sep 2007 16:16:14 +1000 Subject: drm: use fence_class as name instead of class --- libdrm/xf86mm.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'libdrm/xf86mm.h') diff --git a/libdrm/xf86mm.h b/libdrm/xf86mm.h index d86644ca..cacd13af 100644 --- a/libdrm/xf86mm.h +++ b/libdrm/xf86mm.h @@ -96,10 +96,11 @@ typedef struct _drmMMListHead typedef struct _drmFence { unsigned handle; - int class; + int fence_class; unsigned type; unsigned flags; unsigned signaled; + uint32_t sequence; unsigned pad[4]; /* for future expansion */ } drmFence; @@ -148,7 +149,7 @@ typedef struct _drmBOList { * Fence functions. */ -extern int drmFenceCreate(int fd, unsigned flags, int class, +extern int drmFenceCreate(int fd, unsigned flags, int fence_class, unsigned type, drmFence *fence); extern int drmFenceDestroy(int fd, const drmFence *fence); extern int drmFenceReference(int fd, unsigned handle, drmFence *fence); @@ -160,7 +161,7 @@ extern int drmFenceWait(int fd, unsigned flags, drmFence *fence, unsigned flush_type); extern int drmFenceEmit(int fd, unsigned flags, drmFence *fence, unsigned emit_type); -extern int drmFenceBuffers(int fd, unsigned flags, drmFence *fence); +extern int drmFenceBuffers(int fd, unsigned flags, uint32_t fence_class, drmFence *fence); /* @@ -188,7 +189,7 @@ extern int drmBOUnReference(int fd, drmBO *buf); extern int drmBOMap(int fd, drmBO *buf, unsigned mapFlags, unsigned mapHint, void **address); extern int drmBOUnmap(int fd, drmBO *buf); -extern int drmBOValidate(int fd, drmBO *buf, uint64_t flags, +extern int drmBOValidate(int fd, drmBO *buf, uint32_t fence_class, uint64_t flags, uint64_t mask, unsigned hint); extern int drmBOFence(int fd, drmBO *buf, unsigned flags, unsigned fenceHandle); -- cgit v1.2.3 From dccefba71a65566e7e1628b3be67621866000411 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= Date: Tue, 9 Oct 2007 21:09:30 -0400 Subject: Take bo type argument out of the ioctl interface. The buffer object type is still tracked internally, but it is no longer part of the user space visible ioctl interface. If the bo create ioctl specifies a non-NULL buffer address we assume drm_bo_type_user, otherwise drm_bo_type_dc. Kernel side allocations call drm_buffer_object_create() directly and can still specify drm_bo_type_kernel. Not 100% this makes sense either, but with this patch, the buffer type is no longer exported and we can clean up the internals later on. --- libdrm/xf86mm.h | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'libdrm/xf86mm.h') diff --git a/libdrm/xf86mm.h b/libdrm/xf86mm.h index cacd13af..0dac7eff 100644 --- a/libdrm/xf86mm.h +++ b/libdrm/xf86mm.h @@ -106,7 +106,6 @@ typedef struct _drmFence typedef struct _drmBO { - drm_bo_type_t type; unsigned handle; uint64_t mapHandle; uint64_t flags; @@ -179,10 +178,9 @@ extern int drmBOCreateList(int numTarget, drmBOList *list); * Buffer object functions. */ -extern int drmBOCreate(int fd, unsigned long start, unsigned long size, - unsigned pageAlignment,void *user_buffer, - drm_bo_type_t type, uint64_t mask, - unsigned hint, drmBO *buf); +extern int drmBOCreate(int fd, unsigned long size, + unsigned pageAlignment, void *user_buffer, + uint64_t mask, unsigned hint, drmBO *buf); extern int drmBODestroy(int fd, drmBO *buf); extern int drmBOReference(int fd, unsigned handle, drmBO *buf); extern int drmBOUnReference(int fd, drmBO *buf); -- cgit v1.2.3 From a69c85fec8ed323bffb1324ea08157b3897e97db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= Date: Tue, 9 Oct 2007 21:09:31 -0400 Subject: Drop destroy ioctls for fences and buffer objects. We now always create a drm_ref_object for user objects and this is then the only things that holds a reference to the user object. This way unreference on will destroy the user object when the last drm_ref_object goes way. --- libdrm/xf86mm.h | 2 -- 1 file changed, 2 deletions(-) (limited to 'libdrm/xf86mm.h') diff --git a/libdrm/xf86mm.h b/libdrm/xf86mm.h index 0dac7eff..d99e61e7 100644 --- a/libdrm/xf86mm.h +++ b/libdrm/xf86mm.h @@ -150,7 +150,6 @@ typedef struct _drmBOList { extern int drmFenceCreate(int fd, unsigned flags, int fence_class, unsigned type, drmFence *fence); -extern int drmFenceDestroy(int fd, const drmFence *fence); extern int drmFenceReference(int fd, unsigned handle, drmFence *fence); extern int drmFenceUnreference(int fd, const drmFence *fence); extern int drmFenceFlush(int fd, drmFence *fence, unsigned flush_type); @@ -181,7 +180,6 @@ extern int drmBOCreateList(int numTarget, drmBOList *list); extern int drmBOCreate(int fd, unsigned long size, unsigned pageAlignment, void *user_buffer, uint64_t mask, unsigned hint, drmBO *buf); -extern int drmBODestroy(int fd, drmBO *buf); extern int drmBOReference(int fd, unsigned handle, drmBO *buf); extern int drmBOUnReference(int fd, drmBO *buf); extern int drmBOMap(int fd, drmBO *buf, unsigned mapFlags, unsigned mapHint, -- cgit v1.2.3 From efc4fd7c4dabed384fa1ab67e744d38025aff47d Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 16 Oct 2007 22:08:55 +1100 Subject: drm: rename drmBOUnReference to drmBOUnreference for consistency --- libdrm/xf86mm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libdrm/xf86mm.h') diff --git a/libdrm/xf86mm.h b/libdrm/xf86mm.h index d99e61e7..5f5f6f9f 100644 --- a/libdrm/xf86mm.h +++ b/libdrm/xf86mm.h @@ -181,7 +181,7 @@ extern int drmBOCreate(int fd, unsigned long size, unsigned pageAlignment, void *user_buffer, uint64_t mask, unsigned hint, drmBO *buf); extern int drmBOReference(int fd, unsigned handle, drmBO *buf); -extern int drmBOUnReference(int fd, drmBO *buf); +extern int drmBOUnreference(int fd, drmBO *buf); extern int drmBOMap(int fd, drmBO *buf, unsigned mapFlags, unsigned mapHint, void **address); extern int drmBOUnmap(int fd, drmBO *buf); -- cgit v1.2.3 From 3f1aa1550353e828814169915c9a74c67d2e81cd Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 16 Oct 2007 22:28:00 +1100 Subject: drm: drop drm bo list handling code --- libdrm/xf86mm.h | 34 ---------------------------------- 1 file changed, 34 deletions(-) (limited to 'libdrm/xf86mm.h') diff --git a/libdrm/xf86mm.h b/libdrm/xf86mm.h index 5f5f6f9f..f817d81a 100644 --- a/libdrm/xf86mm.h +++ b/libdrm/xf86mm.h @@ -126,24 +126,6 @@ typedef struct _drmBO unsigned pad[8]; /* for future expansion */ } drmBO; -typedef struct _drmBONode -{ - drmMMListHead head; - drmBO *buf; - struct drm_bo_op_arg bo_arg; - unsigned long arg0; - unsigned long arg1; -} drmBONode; - -typedef struct _drmBOList { - unsigned numTarget; - unsigned numCurrent; - unsigned numOnList; - drmMMListHead list; - drmMMListHead free; -} drmBOList; - - /* * Fence functions. */ @@ -162,17 +144,6 @@ extern int drmFenceEmit(int fd, unsigned flags, drmFence *fence, extern int drmFenceBuffers(int fd, unsigned flags, uint32_t fence_class, drmFence *fence); -/* - * Buffer object list functions. - */ - -extern void drmBOFreeList(drmBOList *list); -extern int drmBOResetList(drmBOList *list); -extern void *drmBOListIterator(drmBOList *list); -extern void *drmBOListNext(drmBOList *list, void *iterator); -extern drmBO *drmBOListBuf(void *iterator); -extern int drmBOCreateList(int numTarget, drmBOList *list); - /* * Buffer object functions. */ @@ -192,11 +163,6 @@ extern int drmBOFence(int fd, drmBO *buf, unsigned flags, unsigned fenceHandle); extern int drmBOInfo(int fd, drmBO *buf); extern int drmBOBusy(int fd, drmBO *buf, int *busy); -extern int drmAddValidateItem(drmBOList *list, drmBO *buf, unsigned flags, - unsigned mask, - int *newItem); -extern int drmBOValidateList(int fd, drmBOList *list); -extern int drmBOFenceList(int fd, drmBOList *list, unsigned fenceHandle); extern int drmBOWaitIdle(int fd, drmBO *buf, unsigned hint); int drmBOSetPin(int fd, drmBO *buf, int pin); -- cgit v1.2.3