Fix shmem on android (#272)
* Fix shmem on android * Switch back to ulong
This commit is contained in:
parent
5caeb46b67
commit
fccb9a1c55
@ -26,11 +26,12 @@ pub type StdShMemProvider = Win32ShMemProvider;
|
||||
pub type StdShMem = Win32ShMem;
|
||||
|
||||
#[cfg(all(target_os = "android", feature = "std"))]
|
||||
pub type StdShMemProvider = RcShMemProvider<ServedShMemProvider<AshmemShMemProvider>>;
|
||||
pub type StdShMemProvider =
|
||||
RcShMemProvider<ServedShMemProvider<unix_shmem::ashmem::AshmemShMemProvider>>;
|
||||
#[cfg(all(target_os = "android", feature = "std"))]
|
||||
pub type StdShMem = RcShMem<ServedShMemProvider<AshmemShMemProvider>>;
|
||||
pub type StdShMem = RcShMem<ServedShMemProvider<unix_shmem::ashmem::AshmemShMemProvider>>;
|
||||
#[cfg(all(target_os = "android", feature = "std"))]
|
||||
pub type StdShMemService = ShMemService<AshmemShMemProvider>;
|
||||
pub type StdShMemService = ShMemService<unix_shmem::ashmem::AshmemShMemProvider>;
|
||||
|
||||
#[cfg(all(feature = "std", target_vendor = "apple"))]
|
||||
pub type StdShMemProvider = RcShMemProvider<ServedShMemProvider<MmapShMemProvider>>;
|
||||
@ -465,7 +466,7 @@ where
|
||||
pub mod unix_shmem {
|
||||
/// Shared memory provider for Android, allocating and forwarding maps over unix domain sockets.
|
||||
#[cfg(target_os = "android")]
|
||||
pub type UnixShMemProvider = ashmem::ServedShMemProvider;
|
||||
pub type UnixShMemProvider = ashmem::AshmemShMemProvider;
|
||||
/// Shared memory for Android
|
||||
#[cfg(target_os = "android")]
|
||||
pub type UnixShMem = ashmem::AshmemShMem;
|
||||
@ -909,7 +910,7 @@ pub mod unix_shmem {
|
||||
//return Err(Error::Unknown("Failed to set the ashmem mapping's name".to_string()));
|
||||
//};
|
||||
|
||||
if ioctl(fd, ASHMEM_SET_SIZE, map_size) != 0 {
|
||||
if ioctl(fd, ASHMEM_SET_SIZE as _, map_size) != 0 {
|
||||
close(fd);
|
||||
return Err(Error::Unknown(
|
||||
"Failed to set the ashmem mapping's size".to_string(),
|
||||
@ -944,7 +945,7 @@ pub mod unix_shmem {
|
||||
unsafe {
|
||||
let fd: i32 = id.to_string().parse().unwrap();
|
||||
#[allow(clippy::cast_sign_loss)]
|
||||
if ioctl(fd, ASHMEM_GET_SIZE) as u32 as usize != map_size {
|
||||
if ioctl(fd, ASHMEM_GET_SIZE as _) as u32 as usize != map_size {
|
||||
return Err(Error::Unknown(
|
||||
"The mapping's size differs from the requested size".to_string(),
|
||||
));
|
||||
@ -1001,14 +1002,14 @@ pub mod unix_shmem {
|
||||
let fd: i32 = self.id.to_string().parse().unwrap();
|
||||
|
||||
#[allow(clippy::cast_sign_loss)]
|
||||
let length = ioctl(fd, ASHMEM_GET_SIZE) as u32;
|
||||
let length = ioctl(fd, ASHMEM_GET_SIZE as _) as u32;
|
||||
|
||||
let ap = ashmem_pin {
|
||||
offset: 0,
|
||||
len: length,
|
||||
};
|
||||
|
||||
ioctl(fd, ASHMEM_UNPIN, &ap);
|
||||
ioctl(fd, ASHMEM_UNPIN as _, &ap);
|
||||
close(fd);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user