diff options
author | Thomas Hellstrom <thomas-at-tungstengraphics-dot-com> | 2006-08-27 19:45:38 +0200 |
---|---|---|
committer | Thomas Hellstrom <thomas-at-tungstengraphics-dot-com> | 2006-08-27 19:45:38 +0200 |
commit | ac26b51503dfedf422d6ae49518adcf41dff1af3 (patch) | |
tree | 770eb8886ed6f9f0726ae49f281a60edc9f1ee8f /linux-core/drmP.h | |
parent | 4fa58aa15242333a635cb590762c6e6312945745 (diff) |
Have TTM create and reference ioctl call return the actual TTM size.
Diffstat (limited to 'linux-core/drmP.h')
-rw-r--r-- | linux-core/drmP.h | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/linux-core/drmP.h b/linux-core/drmP.h index 43589342..d7494c23 100644 --- a/linux-core/drmP.h +++ b/linux-core/drmP.h @@ -1363,14 +1363,23 @@ extern int drm_bo_ioctl(DRM_IOCTL_ARGS); static __inline__ unsigned long combine_64(uint32_t lo, uint32_t hi) { unsigned long ret = lo; - - if (sizeof(ret) > 4) { - int shift = 32; - lo |= (hi << shift); - } +#if (BITS_PER_LONG == 64) + ret |= (hi << 32); +#endif return ret; } +static __inline__ void split_32(unsigned long val, uint32_t *lo, uint32_t *hi) +{ + *lo = val & 0xFFFFFFFFUL; +#if (BITS_PER_LONG == 64) + *hi = val >> 32; +#else + *hi = 0; +#endif +} + + /* Inline replacements for DRM_IOREMAP macros */ static __inline__ void drm_core_ioremap(struct drm_map *map, struct drm_device *dev) |