diff options
author | Dave Airlie <airlied@redhat.com> | 2008-02-20 13:27:10 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2008-02-22 13:49:51 +1000 |
commit | cdad850ebc3570e5ff5a0996f36832c965aa8a1d (patch) | |
tree | 4e084d4a2be9ba4c3ac90f708c32255b4f823f64 /libdrm | |
parent | 0d1cb1e8408d497fec66d9f31603f93800049c75 (diff) |
add ioctl to get back memory managed area sized - used for kernel inited areas
Diffstat (limited to 'libdrm')
-rw-r--r-- | libdrm/xf86drm.c | 15 | ||||
-rw-r--r-- | libdrm/xf86mm.h | 1 |
2 files changed, 16 insertions, 0 deletions
diff --git a/libdrm/xf86drm.c b/libdrm/xf86drm.c index 39a849c6..13e99555 100644 --- a/libdrm/xf86drm.c +++ b/libdrm/xf86drm.c @@ -2883,6 +2883,21 @@ int drmMMUnlock(int fd, unsigned memType, int unlockBM) return drmIoctlTimeout(fd, DRM_IOCTL_MM_UNLOCK, &arg); } +int drmMMInfo(int fd, unsigned memType, uint64_t *size) +{ + struct drm_mm_info_arg arg; + + memset(&arg, 0, sizeof(arg)); + + arg.mem_type = memType; + + if (ioctl(fd, DRM_IOCTL_MM_INFO, &arg)) + return -errno; + + *size = arg.p_size; + return 0; +} + int drmBOVersion(int fd, unsigned int *major, unsigned int *minor, unsigned int *patchlevel) diff --git a/libdrm/xf86mm.h b/libdrm/xf86mm.h index c80288a7..bb573407 100644 --- a/libdrm/xf86mm.h +++ b/libdrm/xf86mm.h @@ -172,6 +172,7 @@ extern int drmMMInit(int fd, unsigned long pOffset, unsigned long pSize, extern int drmMMTakedown(int fd, unsigned memType); extern int drmMMLock(int fd, unsigned memType, int lockBM, int ignoreNoEvict); extern int drmMMUnlock(int fd, unsigned memType, int unlockBM); +extern int drmMMInfo(int fd, unsigned memType, uint64_t *size); extern int drmBOSetStatus(int fd, drmBO *buf, uint64_t flags, uint64_t mask, unsigned int hint, |