diff options
Diffstat (limited to 'src/code/code_80069420.c')
| -rw-r--r-- | src/code/code_80069420.c | 44 |
1 files changed, 34 insertions, 10 deletions
diff --git a/src/code/code_80069420.c b/src/code/code_80069420.c index 3d656cfb0..6dd0a94f4 100644 --- a/src/code/code_80069420.c +++ b/src/code/code_80069420.c @@ -1,23 +1,47 @@ #include "global.h" -void* MemCopy(void* dest, void* src, s32 size) { - u8* destu = (u8*)dest; - u8* srcu = (u8*)src; +/** + * memcpy: copies `len` bytes from memory starting at `src` to memory starting at `dest`. Expects the memory + * specified by `src` and `dest` to not overlap. + * + * @see libultra also has a memcpy(). + * + * @param dest address of start of buffer writing to + * @param src address of start of buffer to read from + * @param len number of bytes to copy. (`s32` rather than the standard `size_t`) + * + * @return dest + */ +void* MemCpy(void* dest, const void* src, s32 len) { + u8* d = dest; + const u8* s = src; - while (size > 0) { - *destu++ = *srcu++; - size--; + while (len > 0) { + *d++ = *s++; + len--; } return dest; } -void* MemSet(void* dest, s32 val, s32 size) { - u8* destu = (u8*)dest; - s32 s = size; +/** + * memset: sets `len` bytes to `val` starting at address `dest`. + * + * @see There are two other memsets in this codebase, Lib_MemSet(), __osMemset(). + * This one is unused. + * + * @param dest address to start at + * @param val value to write (`s32`, but interpreted as `u8`) + * @param len number of bytes to write. (`s32` rather than the standard `size_t`) + * + * @return dest + */ +void* MemSet(void* dest, s32 val, s32 len) { + u8* d = dest; + s32 s = len; while (s > 0) { - *destu++ = val; + *d++ = val; s--; } |
