@@ -119,10 +119,10 @@ struct RequestState {
119119 request : aio:: iocb ,
120120
121121 // Concurrency primitive to notify completion to the associated future
122- completed_receiver : futures:: sync:: oneshot:: Receiver < c_long > ,
122+ completed_receiver : futures:: sync:: oneshot:: Receiver < aio_bindings :: __s64 > ,
123123
124124 // We have both sides of a oneshot channel here
125- completed_sender : Option < futures:: sync:: oneshot:: Sender < c_long > > ,
125+ completed_sender : Option < futures:: sync:: oneshot:: Sender < aio_bindings :: __s64 > > ,
126126}
127127
128128// Common data structures for futures returned by `AioContext`.
@@ -170,7 +170,7 @@ impl AioBaseFuture {
170170 let state_addr = state. deref ( ) . deref ( ) as * const RequestState ;
171171
172172 // Fill in the iocb data structure to be submitted to the kernel
173- state. request . aio_data = unsafe { mem:: transmute ( state_addr) } ;
173+ state. request . aio_data = unsafe { mem:: transmute :: < _ , usize > ( state_addr) } as u64 ;
174174 state. request . aio_resfd = self . context . completed_fd as u32 ;
175175 state. request . aio_flags = aio:: IOCB_FLAG_RESFD | self . iocb_info . flags ;
176176 state. request . aio_fildes = self . iocb_info . fd as u32 ;
@@ -411,7 +411,7 @@ impl futures::Future for AioPollFuture {
411411
412412 // dispatch the retrieved events to the associated futures
413413 for ref event in & self . events {
414- let request_state: & mut RequestState = unsafe { mem:: transmute ( event. data ) } ;
414+ let request_state: & mut RequestState = unsafe { mem:: transmute ( event. data as usize ) } ;
415415 request_state
416416 . completed_sender
417417 . take ( )
@@ -572,7 +572,7 @@ impl AioContext {
572572 let ( ptr, len) = {
573573 let buffer = buffer_obj. as_mut ( ) ;
574574 let len = buffer. len ( ) as u64 ;
575- let ptr = unsafe { mem:: transmute ( buffer. as_ptr ( ) ) } ;
575+ let ptr = unsafe { mem:: transmute :: < _ , usize > ( buffer. as_ptr ( ) ) } as u64 ;
576576 ( ptr, len)
577577 } ;
578578
@@ -639,7 +639,7 @@ impl AioContext {
639639 let ( ptr, len) = {
640640 let buffer = buffer_obj. as_ref ( ) ;
641641 let len = buffer. len ( ) as u64 ;
642- let ptr = unsafe { mem:: transmute ( buffer. as_ptr ( ) ) } ;
642+ let ptr = unsafe { mem:: transmute :: < _ , usize > ( buffer. as_ptr ( ) ) } as c_long ;
643643 ( ptr, len)
644644 } ;
645645
@@ -652,7 +652,7 @@ impl AioContext {
652652 fd,
653653 offset,
654654 len,
655- buf : ptr,
655+ buf : ptr as u64 ,
656656 flags : sync_level as u32 ,
657657 } ,
658658 state : None ,
0 commit comments