summaryrefslogtreecommitdiff
path: root/src/code/code_80069420.c
diff options
context:
space:
mode:
authorEllipticEllipsis <elliptic.ellipsis@gmail.com>2022-05-01 23:06:35 +0100
committerGitHub <noreply@github.com>2022-05-02 00:06:35 +0200
commite84f5ab3878b30bdddd2ee5a0dbddc10e00d219d (patch)
tree67e1ac6584b3612b2b5e4066388ef2bc811efc1f /src/code/code_80069420.c
parent7334ffa373d7aeef31977c2fe39af711d7069809 (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.c44
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--;
}