# SVC_UncompressHuffmanFromDevice

## 構文

  `#include <nitro/os/common/systemCall.h>`
  `s32 SVC_UncompressHuffmanFromDevice( const void* srcp,`
  `void* destp,`
  `u8* tableBufp,`
  `const MIReadStreamCallbacks *callbacks``);`

## 引数

srcp | ハフマン圧縮データの格納されているソースアドレス
destp | 展開するディスティネーションアドレス
tableBufp | ツリーテーブル格納バッファ(最大512バイト) `MIReadStreamCallbacks`構造体の `initStream` 関数へパラメータを渡したい場合、このバッファを経由して渡すことが出来ます。ただし、`initStream` 関数呼び出し跡はツリーテーブルで上書きされます。
callbacks | `MIReadStreamCallbacks` 構造体のアドレス

## 返り値

0以上ならば展開したサイズで、0以下ならエラーです。

## 説明

ハフマン圧縮データを展開し、指定のメモリ領域に32bit単位で書き込みます。
ソースアドレス src は4byte 境界に合わせてください。
圧縮データのサイズが4の倍数にならなかった場合は出来るだけ0で詰めて調整してください。`
` メモリマッピングされていないデバイス上の圧縮データをテンポラリバッファを使わずに直接展開することが出来ます。

## 参照

`MI_UncompressHuffman, SVC_UncompressLZ*, SVC_UncompressRL*
`

## 履歴

2004/07/22 初版