diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2012-05-22 10:59:14 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2013-01-09 14:32:47 +1000 |
commit | 827ac5471ac6b03d7a74e8fe0805787b0b3c8364 (patch) | |
tree | c493524ff33dedb9f6aa54b51832b4947921f75b /drm/nouveau_gem.h | |
download | nouveau-827ac5471ac6b03d7a74e8fe0805787b0b3c8364.tar.gz |
initial import of nouveau kernel module core, some simple tools, and drm
Ignore (or, if you're really keen, fix) any of the horrors that are part
of the emulate-linux-on-libpciaccess (lib/) layer. When I started down
this path I was only aiming to prototype the reworked driver core, and
never actually intended on going quite this far with things, but it turns
out that being able to develop and test the nouveau core from userspace
is *very* useful.
This tree is based on the code available as of Linux 3.8-rc2.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drm/nouveau_gem.h')
-rw-r--r-- | drm/nouveau_gem.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/drm/nouveau_gem.h b/drm/nouveau_gem.h new file mode 100644 index 000000000..5c1049236 --- /dev/null +++ b/drm/nouveau_gem.h @@ -0,0 +1,43 @@ +#ifndef __NOUVEAU_GEM_H__ +#define __NOUVEAU_GEM_H__ + +#include <drm/drmP.h> + +#include "nouveau_drm.h" +#include "nouveau_bo.h" + +#define nouveau_bo_tile_layout(nvbo) \ + ((nvbo)->tile_flags & NOUVEAU_GEM_TILE_LAYOUT_MASK) + +static inline struct nouveau_bo * +nouveau_gem_object(struct drm_gem_object *gem) +{ + return gem ? gem->driver_private : NULL; +} + +/* nouveau_gem.c */ +extern int nouveau_gem_new(struct drm_device *, int size, int align, + uint32_t domain, uint32_t tile_mode, + uint32_t tile_flags, struct nouveau_bo **); +extern int nouveau_gem_object_new(struct drm_gem_object *); +extern void nouveau_gem_object_del(struct drm_gem_object *); +extern int nouveau_gem_object_open(struct drm_gem_object *, struct drm_file *); +extern void nouveau_gem_object_close(struct drm_gem_object *, + struct drm_file *); +extern int nouveau_gem_ioctl_new(struct drm_device *, void *, + struct drm_file *); +extern int nouveau_gem_ioctl_pushbuf(struct drm_device *, void *, + struct drm_file *); +extern int nouveau_gem_ioctl_cpu_prep(struct drm_device *, void *, + struct drm_file *); +extern int nouveau_gem_ioctl_cpu_fini(struct drm_device *, void *, + struct drm_file *); +extern int nouveau_gem_ioctl_info(struct drm_device *, void *, + struct drm_file *); + +extern struct dma_buf *nouveau_gem_prime_export(struct drm_device *dev, + struct drm_gem_object *obj, int flags); +extern struct drm_gem_object *nouveau_gem_prime_import(struct drm_device *dev, + struct dma_buf *dma_buf); + +#endif |