1#![warn(missing_docs)]
2#![cfg_attr(feature = "strict", deny(warnings))]
3#![no_std]
4
5#[macro_use]
8extern crate cfg_if;
9
10cfg_if! {
11 if #[cfg(feature="ext_memops")] {
12 extern "C" {
13 fn ext_memcmp(cx: *const u8, ct: *const u8, n: usize) -> i32;
14 fn ext_memcpy(dest: *mut u8, src: *const u8, n: usize) -> *mut u8;
15 fn ext_memmove(dest: *mut u8, src: *const u8, n: usize) -> *mut u8;
16 fn ext_memset(dest: *mut u8, c: i32, n: usize) -> *mut u8;
17 }
18
19 #[no_mangle]
24 pub unsafe extern "C" fn memcmp(cx: *const u8, ct: *const u8, n: usize) -> i32 {
25 ext_memcmp(cx, ct, n)
26 }
27
28 #[no_mangle]
30 pub unsafe extern "C" fn memcpy(dest: *mut u8, src: *const u8, n: usize) -> *mut u8 {
31 ext_memcpy(dest, src, n)
32 }
33
34 #[no_mangle]
36 pub unsafe extern "C" fn memmove(dest: *mut u8, src: *const u8, n: usize) -> *mut u8 {
37 ext_memmove(dest, src, n)
38 }
39
40 #[no_mangle]
42 pub unsafe extern "C" fn memset(dest: *mut u8, c: i32, n: usize) -> *mut u8 {
43 ext_memset(dest, c, n)
44 }
45 }
46}