Files
botw/lib/NintendoSDK/include/nn/util.h
T
Léo Lam 18c60323a9 Switch to subrepos
git subrepo clone https://github.com/open-ead/sead lib/sead

subrepo:
  subdir:   "lib/sead"
  merged:   "1b66e825d"
upstream:
  origin:   "https://github.com/open-ead/sead"
  branch:   "master"
  commit:   "1b66e825d"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"

git subrepo clone (merge) https://github.com/open-ead/nnheaders lib/NintendoSDK

subrepo:
  subdir:   "lib/NintendoSDK"
  merged:   "9ee21399f"
upstream:
  origin:   "https://github.com/open-ead/nnheaders"
  branch:   "master"
  commit:   "9ee21399f"
git-subrepo:
  version:  "0.4.3"
  origin:   "ssh://git@github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"

git subrepo clone https://github.com/open-ead/agl lib/agl

subrepo:
  subdir:   "lib/agl"
  merged:   "7c063271b"
upstream:
  origin:   "https://github.com/open-ead/agl"
  branch:   "master"
  commit:   "7c063271b"
git-subrepo:
  version:  "0.4.3"
  origin:   "ssh://git@github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"

git subrepo clone https://github.com/open-ead/EventFlow lib/EventFlow

subrepo:
  subdir:   "lib/EventFlow"
  merged:   "c35d21b34"
upstream:
  origin:   "https://github.com/open-ead/EventFlow"
  branch:   "master"
  commit:   "c35d21b34"
git-subrepo:
  version:  "0.4.3"
  origin:   "ssh://git@github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"
2022-03-21 21:31:42 +01:00

60 lines
1.6 KiB
C++

/**
* @file util.h
* @brief Helper functions for OS functionality.
*/
#pragma once
#include <nn/types.h>
namespace nn {
namespace util {
struct Unorm8x4 {
u8 elements[0x4];
};
enum CharacterEncodingResult { Success, BadLength, InvalidFormat };
CharacterEncodingResult PickOutCharacterFromUtf8String(char*, char const** str);
CharacterEncodingResult ConvertCharacterUtf8ToUtf32(u32* dest, char const* src);
CharacterEncodingResult ConvertStringUtf16NativeToUtf8(char*, s32, u16 const*, s32);
CharacterEncodingResult ConvertStringUtf8ToUtf16Native(u16*, s32, char const*, s32);
class RelocationTable {
public:
void Relocate();
void Unrelocate();
s32 mMagic; // _0
u32 mPosition; // _4
s32 mSectionCount; // _8
};
class BinaryFileHeader {
public:
bool IsValid(s64 packedSig, s32 majorVer, s32 minorVer, s32 microVer) const;
bool IsRelocated() const;
bool IsEndianReverse() const;
nn::util::RelocationTable* GetRelocationTable();
s32 mMagic; // _0
u32 mSig; // _4
u8 mVerMicro; // _8
u8 mVerMinor; // _9
u16 mVerMajor; // _A
u16 mBOM; // _C
u8 mAlignment; // _E
u8 mTargetAddrSize; // _F
u32 mFileNameOffset; // _10
u16 mFlag; // _14
u16 mFirstBlockOffs; // _16
u32 mRelocationTableOffs; // _18
u32 mSize; // _1C
};
template <s32 size, typename T>
struct BitFlagSet {};
}; // namespace util
void ReferSymbol(void const*);
}; // namespace nn