diff options
author | David Reveman <reveman@chromium.org> | 2018-05-17 17:18:27 -0400 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-05-18 20:08:22 -0700 |
commit | fe0abe4a7882e2db5eae45e9cf2c617ba5cf4c20 (patch) | |
tree | 076c722422e57e0a704021a11336661716e44888 /gpu_buffer | |
parent | bb6580167937475e2d54e39bbf4babd402202a08 (diff) | |
download | crosvm-fe0abe4a7882e2db5eae45e9cf2c617ba5cf4c20.tar crosvm-fe0abe4a7882e2db5eae45e9cf2c617ba5cf4c20.tar.gz crosvm-fe0abe4a7882e2db5eae45e9cf2c617ba5cf4c20.tar.bz2 crosvm-fe0abe4a7882e2db5eae45e9cf2c617ba5cf4c20.tar.lz crosvm-fe0abe4a7882e2db5eae45e9cf2c617ba5cf4c20.tar.xz crosvm-fe0abe4a7882e2db5eae45e9cf2c617ba5cf4c20.tar.zst crosvm-fe0abe4a7882e2db5eae45e9cf2c617ba5cf4c20.zip |
virtwl: Fix DMABuf support on when building for 32bit.
name/date/desc_len fields of drm_version struct are of type __kernel_size_t and not unsigned long long. BUG=chromium:837209 TEST=crosvm finds DRM device on kevin Change-Id: If940b31cb730cbaa46ed781021cbe60189da9f65 Reviewed-on: https://chromium-review.googlesource.com/1064913 Commit-Ready: David Reveman <reveman@chromium.org> Tested-by: David Reveman <reveman@chromium.org> Reviewed-by: Zach Reizner <zachr@chromium.org>
Diffstat (limited to 'gpu_buffer')
-rw-r--r-- | gpu_buffer/src/rendernode.rs | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/gpu_buffer/src/rendernode.rs b/gpu_buffer/src/rendernode.rs index ce89a15..f8b0201 100644 --- a/gpu_buffer/src/rendernode.rs +++ b/gpu_buffer/src/rendernode.rs @@ -4,12 +4,22 @@ use std::ffi::CString; use std::fs::{File, OpenOptions}; -use std::os::raw::{c_char, c_int, c_uint, c_ulonglong}; +use std::os::raw::{c_char, c_int, c_uint}; +#[cfg(target_pointer_width = "64")] +use std::os::raw::c_ulong; use std::path::Path; use std::ptr::null_mut; use sys_util::ioctl_with_mut_ref; +// Consistent with __kernel_size_t in include/uapi/asm-generic/posix_types.h. +#[cfg(not(target_pointer_width = "64"))] +#[allow(non_camel_case_types)] +type __kernel_size_t = c_uint; +#[cfg(target_pointer_width = "64")] +#[allow(non_camel_case_types)] +type __kernel_size_t = c_ulong; + const DRM_IOCTL_BASE: c_uint = 0x64; #[repr(C)] @@ -18,11 +28,11 @@ struct drm_version { version_major: c_int, version_minor: c_int, version_patchlevel: c_int, - name_len: c_ulonglong, + name_len: __kernel_size_t, name: *mut c_char, - date_len: c_ulonglong, + date_len: __kernel_size_t, date: *mut c_char, - desc_len: c_ulonglong, + desc_len: __kernel_size_t, desc: *mut c_char, } @@ -52,7 +62,7 @@ fn get_drm_device_name(fd: &File) -> Result<String, ()> { version_major: 0, version_minor: 0, version_patchlevel: 0, - name_len: name_bytes.len() as c_ulonglong, + name_len: name_bytes.len() as __kernel_size_t, name: name_bytes.as_mut_ptr() as *mut c_char, date_len: 0, date: null_mut(), |