diff options
| author | EllipticEllipsis <elliptic.ellipsis@gmail.com> | 2022-05-01 23:06:35 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-05-02 00:06:35 +0200 |
| commit | e84f5ab3878b30bdddd2ee5a0dbddc10e00d219d (patch) | |
| tree | 67e1ac6584b3612b2b5e4066388ef2bc811efc1f /src/code/code_80069420.c | |
| parent | 7334ffa373d7aeef31977c2fe39af711d7069809 (diff) | |
Memstuff (#1164)
* Un-fake a couple of matches in memory manip functions
* Document fmodf
* Un-fake a couple of matches in memory manip functions
* Document fmodf
* Rename functions and files
* Document memmove, memsets, memcpys
* Format
* Sort out some missing sizeofs
* Name fmodf
* Rename local variables
* size_t
* Use COBRA_SHADOW_TEX_SIZE
* Review
* Tweak the Doxyfile to remove @brief requirement
* Roman's review
* Fix a bug comment
* Change fmodf
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--; } |
