aboutsummaryrefslogtreecommitdiffstats
path: root/include/drm/drmP.h
diff options
context:
space:
mode:
authorJerome Glisse <glisse@freedesktop.org>2009-04-08 11:11:16 -0400
committerDave Airlie <airlied@redhat.com>2009-06-12 01:56:31 -0400
commit249d6048ca98b5452105b0824abac1275661b8e3 (patch)
tree5e8e89288ec6f6a278fcb819ea49d0d9984576fd /include/drm/drmP.h
parent715cbb05c935e8a4306a730d14a72d5af881523e (diff)
drm: Split out the mm declarations in a separate header. Add atomic operations.
this is a TTM preparation patch, it rearranges the mm and add operations needed to do mm operations in atomic context. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'include/drm/drmP.h')
-rw-r--r--include/drm/drmP.h37
1 files changed, 1 insertions, 36 deletions
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index 1cc51a0812fe..d4ddc22e46bb 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -86,6 +86,7 @@ struct drm_device;
86 86
87#include "drm_os_linux.h" 87#include "drm_os_linux.h"
88#include "drm_hashtab.h" 88#include "drm_hashtab.h"
89#include "drm_mm.h"
89 90
90#define DRM_UT_CORE 0x01 91#define DRM_UT_CORE 0x01
91#define DRM_UT_DRIVER 0x02 92#define DRM_UT_DRIVER 0x02
@@ -553,26 +554,6 @@ struct drm_sigdata {
553}; 554};
554 555
555 556
556/*
557 * Generic memory manager structs
558 */
559
560struct drm_mm_node {
561 struct list_head fl_entry;
562 struct list_head ml_entry;
563 int free;
564 unsigned long start;
565 unsigned long size;
566 struct drm_mm *mm;
567 void *private;
568};
569
570struct drm_mm {
571 struct list_head fl_entry;
572 struct list_head ml_entry;
573};
574
575
576/** 557/**
577 * Kernel side of a mapping 558 * Kernel side of a mapping
578 */ 559 */
@@ -1436,22 +1417,6 @@ extern char *drm_get_connector_status_name(enum drm_connector_status status);
1436extern int drm_sysfs_connector_add(struct drm_connector *connector); 1417extern int drm_sysfs_connector_add(struct drm_connector *connector);
1437extern void drm_sysfs_connector_remove(struct drm_connector *connector); 1418extern void drm_sysfs_connector_remove(struct drm_connector *connector);
1438 1419
1439/*
1440 * Basic memory manager support (drm_mm.c)
1441 */
1442extern struct drm_mm_node *drm_mm_get_block(struct drm_mm_node * parent,
1443 unsigned long size,
1444 unsigned alignment);
1445extern void drm_mm_put_block(struct drm_mm_node * cur);
1446extern struct drm_mm_node *drm_mm_search_free(const struct drm_mm *mm, unsigned long size,
1447 unsigned alignment, int best_match);
1448extern int drm_mm_init(struct drm_mm *mm, unsigned long start, unsigned long size);
1449extern void drm_mm_takedown(struct drm_mm *mm);
1450extern int drm_mm_clean(struct drm_mm *mm);
1451extern unsigned long drm_mm_tail_space(struct drm_mm *mm);
1452extern int drm_mm_remove_space_from_tail(struct drm_mm *mm, unsigned long size);
1453extern int drm_mm_add_space_to_tail(struct drm_mm *mm, unsigned long size);
1454
1455/* Graphics Execution Manager library functions (drm_gem.c) */ 1420/* Graphics Execution Manager library functions (drm_gem.c) */
1456int drm_gem_init(struct drm_device *dev); 1421int drm_gem_init(struct drm_device *dev);
1457void drm_gem_destroy(struct drm_device *dev); 1422void drm_gem_destroy(struct drm_device *dev);