summaryrefslogtreecommitdiff
path: root/arm9/lib/include/FSi_util.h
diff options
context:
space:
mode:
authorMade <made111@gmx.de>2020-05-09 19:44:50 +0200
committerMade <made111@gmx.de>2020-05-09 19:44:50 +0200
commiteff30d81b4785428ca4e86383f665f9f03c76b9f (patch)
treea168324f6cb3f88716e1a630b58ac93e8a0b42c9 /arm9/lib/include/FSi_util.h
parent4abf7d45568d93040fdb86993e915ffdfc4c4a9e (diff)
parente1c517d34810fe83865e896a23e46a2ea089261f (diff)
Merge branch 'master' of https://github.com/martmists/pokediamond
Diffstat (limited to 'arm9/lib/include/FSi_util.h')
-rw-r--r--arm9/lib/include/FSi_util.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/arm9/lib/include/FSi_util.h b/arm9/lib/include/FSi_util.h
new file mode 100644
index 00000000..6e96681e
--- /dev/null
+++ b/arm9/lib/include/FSi_util.h
@@ -0,0 +1,46 @@
+#ifndef NITRO_FSI_UTIL_H_
+#define NITRO_FSI_UTIL_H_
+
+#define ALIGN_MASK(a) ((u32)((a) - 1))
+
+#define ALIGN_BYTE(n, a) (((u32)(n) + ALIGN_MASK(a)) & ~ALIGN_MASK(a))
+
+#define BIT_MASK(a) ((u32)((1 << (a)) - 1))
+
+static inline BOOL FSi_IsSlash(u32 c)
+{
+ return (c == '/') || (c == '\\');
+}
+
+static inline void FSi_CutFromListCore(FSFileLink *trg)
+{
+ FSFile *const pr = trg->prev;
+ FSFile *const nx = trg->next;
+ if (pr)
+ pr->link.next = nx;
+ if (nx)
+ nx->link.prev = pr;
+}
+
+static inline void FSi_CutFromList(FSFile *elem)
+{
+ FSFileLink *const trg = &elem->link;
+ FSi_CutFromListCore(trg);
+ trg->next = trg->prev = NULL;
+}
+
+static inline void FSi_AppendToList(FSFile *elem, FSFile *list)
+{
+ FSFileLink *const trg = &elem->link;
+ FSi_CutFromListCore(trg);
+ {
+ while (list->link.next)
+ list = list->link.next;
+ list->link.next = elem;
+ trg->prev = list;
+ trg->next = NULL;
+ }
+}
+
+
+#endif //NITRO_FSI_UTIL_H_