| // Copyright 2017 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include <explicit-memory/bytes.h> |
| |
| void* mandatory_memcpy(void* dst, const void* src, size_t n) { |
| volatile unsigned char* out = dst; |
| volatile const unsigned char* in = src; |
| for (size_t i = 0; i < n; ++i) { |
| out[i] = in[i]; |
| } |
| return dst; |
| } |
| |
| void* mandatory_memset(void* dst, int c, size_t n) { |
| volatile unsigned char* out = dst; |
| for (size_t i = 0; i < n; ++i) { |
| out[i] = (unsigned char)c; |
| } |
| return dst; |
| } |