スーパバイザコール(SVC)API 機能一覧

割り込みウェイト

SVC_WaitVBlankIntr Vブランク割り込みが発生するまでHalt状態で待ちます。
SVC_Halt CPUコアを停止させてHalt状態に入ります。
SVC_Sleep 原発信を停止します。(ARM7のみ)

ウェイト

SVC_WaitByLoop システムROM上でループしてウェイトします。

メモリ操作

SVC_CpuClear* CPUでメモリクリアを行います。
SVC_CpuCopy* CPUでメモリコピーを行います。

圧縮データ展開

SVC_UnpackBits 0固定のビットを詰めたデータを展開します。
SVC_UncompressLZ8 LZ77圧縮データを8bit単位で展開します。
SVC_UncompressRL8 ランレングス圧縮データを8bit単位で展開します。
SVC_UncompressLZ8FromDevice デバイス上のLZ77圧縮データを8bit単位で展開します。
SVC_UncompressLZ16FromDevice デバイス上のLZ77圧縮データを16bit単位で展開します。
SVC_UncompressRL16FromDevice デバイス上のランレングス圧縮データを16bit単位で展開します。
SVC_UncompressHuffmanFromDevice デバイス上のハフマン圧縮データを32bit単位で展開します。

算術演算

SVC_Div 除算を行い結果を取得します。
SVC_DivRem 除算を行い余りを取得します。
SVC_Sqrt 平方根演算を行い結果を取得します。

CRC

SVC_GetCRC16 CRC-16を算出します。

署名

SVC_InitSignHeap SVC_Decrypt*で使用するヒープを指定します。
SVC_DecryptRSA RSA復号を行います。
SVC_DecryptSign 署名データを復号します。
SVC_DecryptSignDER DER形式の署名データを復号します。

ハッシュ

SVC_SHA1Init SHA1用のコンテキスト設定を行います。
SVC_SHA1Update SHA1のダイジェスト値を更新します。
SVC_SHA1GetHash SHA1のダイジェスト値を取得します。
SVC_CalcSHA1 SHA1の計算を行うユーティリティ関数です。
SVC_CompareSHA1 2つのSHA1のダイジェスト値を比較します。
SVC_RandomSHA1 SHA1を利用して擬似的に乱数を取得します。
SVC_HMACSHA1Init HMAC-SHA1用のコンテキスト設定を行います。
SVC_HMACSHA1Update HMAC-SHA1のダイジェスト値を更新します。
SVC_HMACSHA1GetHash HMAC-SHA1のダイジェスト値を取得します。
SVC_CalcHMACSHA1 HMAC-SHA1の計算を行うユーティリティ関数です。