@@ -84,7 +84,11 @@ intrinsics! {
8484 ///
8585 /// Usual `memcpy` requirements apply.
8686 #[ cfg( not( target_vendor = "apple" ) ) ]
87- pub unsafe extern "aapcs" fn __aeabi_memcpy( dst: * mut u8 , src: * const u8 , n: usize ) {
87+ pub unsafe extern "aapcs" fn __aeabi_memcpy(
88+ dst: * mut core:: ffi:: c_void,
89+ src: * const core:: ffi:: c_void,
90+ n: usize
91+ ) {
8892 // SAFETY: memcpy preconditions apply.
8993 unsafe { crate :: mem:: memcpy( dst, src, n) } ;
9094 }
@@ -96,7 +100,11 @@ intrinsics! {
96100 /// Usual `memcpy` requirements apply. Additionally, `dest` and `src` must be aligned to
97101 /// four bytes.
98102 #[ cfg( not( target_vendor = "apple" ) ) ]
99- pub unsafe extern "aapcs" fn __aeabi_memcpy4( dst: * mut u8 , src: * const u8 , n: usize ) {
103+ pub unsafe extern "aapcs" fn __aeabi_memcpy4(
104+ dst: * mut core:: ffi:: c_void,
105+ src: * const core:: ffi:: c_void,
106+ n: usize
107+ ) {
100108 // We are guaranteed 4-alignment, so accessing at u32 is okay.
101109 let mut dst = dst. cast:: <u32 >( ) ;
102110 let mut src = src. cast:: <u32 >( ) ;
@@ -121,7 +129,7 @@ intrinsics! {
121129 }
122130
123131 // SAFETY: `dst` and `src` will still be valid for `n` bytes
124- unsafe { __aeabi_memcpy( dst. cast:: <u8 >( ) , src. cast:: <u8 >( ) , n) } ;
132+ unsafe { __aeabi_memcpy( dst. cast:: <core :: ffi :: c_void >( ) , src. cast:: <core :: ffi :: c_void >( ) , n) } ;
125133 }
126134
127135 /// `memcpy` for 8-byte alignment.
@@ -131,7 +139,11 @@ intrinsics! {
131139 /// Usual `memcpy` requirements apply. Additionally, `dest` and `src` must be aligned to
132140 /// eight bytes.
133141 #[ cfg( not( target_vendor = "apple" ) ) ]
134- pub unsafe extern "aapcs" fn __aeabi_memcpy8( dst: * mut u8 , src: * const u8 , n: usize ) {
142+ pub unsafe extern "aapcs" fn __aeabi_memcpy8(
143+ dst: * mut core:: ffi:: c_void,
144+ src: * const core:: ffi:: c_void,
145+ n: usize
146+ ) {
135147 debug_assert!( dst. addr( ) . is_multiple_of( 8 ) ) ;
136148 debug_assert!( src. addr( ) . is_multiple_of( 8 ) ) ;
137149
@@ -145,7 +157,11 @@ intrinsics! {
145157 ///
146158 /// Usual `memmove` requirements apply.
147159 #[ cfg( not( target_vendor = "apple" ) ) ]
148- pub unsafe extern "aapcs" fn __aeabi_memmove( dst: * mut u8 , src: * const u8 , n: usize ) {
160+ pub unsafe extern "aapcs" fn __aeabi_memmove(
161+ dst: * mut core:: ffi:: c_void,
162+ src: * const core:: ffi:: c_void,
163+ n: usize
164+ ) {
149165 // SAFETY: memmove preconditions apply.
150166 unsafe { crate :: mem:: memmove( dst, src, n) } ;
151167 }
@@ -157,7 +173,11 @@ intrinsics! {
157173 /// Usual `memmove` requirements apply. Additionally, `dest` and `src` must be aligned to
158174 /// four bytes.
159175 #[ cfg( not( any( target_vendor = "apple" , target_env = "msvc" ) ) ) ]
160- pub unsafe extern "aapcs" fn __aeabi_memmove4( dst: * mut u8 , src: * const u8 , n: usize ) {
176+ pub unsafe extern "aapcs" fn __aeabi_memmove4(
177+ dst: * mut core:: ffi:: c_void,
178+ src: * const core:: ffi:: c_void,
179+ n: usize
180+ ) {
161181 debug_assert!( dst. addr( ) . is_multiple_of( 4 ) ) ;
162182 debug_assert!( src. addr( ) . is_multiple_of( 4 ) ) ;
163183
@@ -172,7 +192,11 @@ intrinsics! {
172192 /// Usual `memmove` requirements apply. Additionally, `dst` and `src` must be aligned to
173193 /// eight bytes.
174194 #[ cfg( not( any( target_vendor = "apple" , target_env = "msvc" ) ) ) ]
175- pub unsafe extern "aapcs" fn __aeabi_memmove8( dst: * mut u8 , src: * const u8 , n: usize ) {
195+ pub unsafe extern "aapcs" fn __aeabi_memmove8(
196+ dst: * mut core:: ffi:: c_void,
197+ src: * const core:: ffi:: c_void,
198+ n: usize
199+ ) {
176200 debug_assert!( dst. addr( ) . is_multiple_of( 8 ) ) ;
177201 debug_assert!( src. addr( ) . is_multiple_of( 8 ) ) ;
178202
@@ -186,7 +210,11 @@ intrinsics! {
186210 ///
187211 /// Usual `memset` requirements apply.
188212 #[ cfg( not( target_vendor = "apple" ) ) ]
189- pub unsafe extern "aapcs" fn __aeabi_memset( dst: * mut u8 , n: usize , c: i32 ) {
213+ pub unsafe extern "aapcs" fn __aeabi_memset(
214+ dst: * mut core:: ffi:: c_void,
215+ n: usize ,
216+ c: i32
217+ ) {
190218 // Note the different argument order
191219 // SAFETY: memset preconditions apply.
192220 unsafe { crate :: mem:: memset( dst, c, n) } ;
@@ -199,7 +227,11 @@ intrinsics! {
199227 /// Usual `memset` requirements apply. Additionally, `dest` and `src` must be aligned to
200228 /// four bytes.
201229 #[ cfg( not( target_vendor = "apple" ) ) ]
202- pub unsafe extern "aapcs" fn __aeabi_memset4( dst: * mut u8 , n: usize , c: i32 ) {
230+ pub unsafe extern "aapcs" fn __aeabi_memset4(
231+ dst: * mut core:: ffi:: c_void,
232+ n: usize ,
233+ c: i32
234+ ) {
203235 let mut dst = dst. cast:: <u32 >( ) ;
204236 debug_assert!( dst. is_aligned( ) ) ;
205237 let mut n = n;
@@ -222,7 +254,7 @@ intrinsics! {
222254 }
223255
224256 // SAFETY: `dst` will still be valid for `n` bytes
225- unsafe { __aeabi_memset( dst. cast:: <u8 >( ) , n, byte as i32 ) } ;
257+ unsafe { __aeabi_memset( dst. cast:: <core :: ffi :: c_void >( ) , n, byte as i32 ) } ;
226258 }
227259
228260 /// `memset` for 8-byte alignment.
@@ -232,7 +264,11 @@ intrinsics! {
232264 /// Usual `memset` requirements apply. Additionally, `dst` and `src` must be aligned to
233265 /// eight bytes.
234266 #[ cfg( not( target_vendor = "apple" ) ) ]
235- pub unsafe extern "aapcs" fn __aeabi_memset8( dst: * mut u8 , n: usize , c: i32 ) {
267+ pub unsafe extern "aapcs" fn __aeabi_memset8(
268+ dst: * mut core:: ffi:: c_void,
269+ n: usize ,
270+ c: i32
271+ ) {
236272 debug_assert!( dst. addr( ) . is_multiple_of( 8 ) ) ;
237273
238274 // SAFETY: memset preconditions apply, less strict alignment.
@@ -245,7 +281,7 @@ intrinsics! {
245281 ///
246282 /// Usual `memclr` requirements apply.
247283 #[ cfg( not( target_vendor = "apple" ) ) ]
248- pub unsafe extern "aapcs" fn __aeabi_memclr( dst: * mut u8 , n: usize ) {
284+ pub unsafe extern "aapcs" fn __aeabi_memclr( dst: * mut core :: ffi :: c_void , n: usize ) {
249285 // SAFETY: memclr preconditions apply, less strict alignment.
250286 unsafe { __aeabi_memset( dst, n, 0 ) } ;
251287 }
@@ -257,7 +293,7 @@ intrinsics! {
257293 /// Usual `memclr` requirements apply. Additionally, `dest` and `src` must be aligned to
258294 /// four bytes.
259295 #[ cfg( not( any( target_vendor = "apple" , target_env = "msvc" ) ) ) ]
260- pub unsafe extern "aapcs" fn __aeabi_memclr4( dst: * mut u8 , n: usize ) {
296+ pub unsafe extern "aapcs" fn __aeabi_memclr4( dst: * mut core :: ffi :: c_void , n: usize ) {
261297 debug_assert!( dst. addr( ) . is_multiple_of( 4 ) ) ;
262298
263299 // SAFETY: memclr preconditions apply, less strict alignment.
@@ -271,7 +307,7 @@ intrinsics! {
271307 /// Usual `memclr` requirements apply. Additionally, `dst` and `src` must be aligned to
272308 /// eight bytes.
273309 #[ cfg( not( any( target_vendor = "apple" , target_env = "msvc" ) ) ) ]
274- pub unsafe extern "aapcs" fn __aeabi_memclr8( dst: * mut u8 , n: usize ) {
310+ pub unsafe extern "aapcs" fn __aeabi_memclr8( dst: * mut core :: ffi :: c_void , n: usize ) {
275311 debug_assert!( dst. addr( ) . is_multiple_of( 8 ) ) ;
276312
277313 // SAFETY: memclr preconditions apply, less strict alignment.
0 commit comments