diff options
author | Revo <projectrevotpp@hotmail.com> | 2021-07-22 20:46:10 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-22 20:46:10 -0400 |
commit | b5b9e57dcb55ee1a69ca86c30e90475bb80e3c28 (patch) | |
tree | 2e91e60bdb7a9174b16d8ca1b532809d4ae2e5b6 /arm9/lib/NitroSDK/include/FSi_util.h | |
parent | c2d91a2d997afd01fa4f40e1e16d5ee85557c9a8 (diff) | |
parent | 5bf13c7f48fe91c7902ce50250bc1a5a2398a2ae (diff) |
Merge pull request #435 from red031000/master
separate out libs to libc, libnns and NitroSDK
Diffstat (limited to 'arm9/lib/NitroSDK/include/FSi_util.h')
-rw-r--r-- | arm9/lib/NitroSDK/include/FSi_util.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/arm9/lib/NitroSDK/include/FSi_util.h b/arm9/lib/NitroSDK/include/FSi_util.h new file mode 100644 index 00000000..2357b446 --- /dev/null +++ b/arm9/lib/NitroSDK/include/FSi_util.h @@ -0,0 +1,46 @@ +#ifndef NITRO_FSI_UTIL_H_ +#define NITRO_FSI_UTIL_H_ + +#include "CARD_common.h" + +#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_ |