次に、メモリ(バッファ)制御系の関数の仕様を決めます。
------ここから------
・バッファ確保
書式:バッファ確保([int]サイズ)
戻値:[int]ハンドル
説明:メモリを動的に確保して、そのハンドルを返す。成功した場合、
0以上のハンドル値が、失敗した場合には-1が返される。
なお、メモリは動的に確保されているので、使用後はかならず
ハンドルの解放を実施して確保されたメモリ領域を解放する
こと。
・バッファクリア
書式:バッファクリア([int]ハンドル、[int]クリア値)
戻値:[int]結果
説明:バッファ確保命令で取得したハンドルの領域をクリア値を用いて
クリアする。クリア値には0~255(0xFF)までの1byte値を指定
する。
成功した場合は0が、無効なハンドル、クリア値を指定した
場合は-1が返される。
・バッファコピー
書式:バッファコピー([int]元ハンドル、[int]先ハンドル、[int]サイズ)
戻値:[int]結果
説明:既に確保されているコピー元ハンドルから、コピー先ハンドルに
データをコピーする。先ハンドルはバッファでなくては
ならないが、元ハンドルについてはバッファ、もしくは
上記バイト確保命令で取得したハンドルでも良い。
成功した場合は0が、無効なハンドルを指定した場合には-1が
返される。
・バッファ読込
書式:バッファ読込([int]ハンドル、[int]オフセット)
戻値:[int]読込データ
説明:既に確保されているメモリ領域(ハンドル)の、所定のオフセット
位置から、1byteのデータを取得して返す。
無効な引数を指定した場合には0が返される。
・バッファ書込
書式:バッファ書込([int]ハンドル、[int]オフセット、[int]データ)
戻値:[int]結果
説明:既に確保されているメモリ領域(ハンドル)の、所定のオフセット
位置に、1byteのデータを書き込む。データには0~255の値を
指定する。
成功した場合には0が、無効な引数を指定した場合には-1が
返される。
・バッファ比較
書式:バッファ比較([int]ハンドル、[int]ハンドル、[int]サイズ)
戻値:[int]結果
説明:既に確保されている2つのバッファハンドルのサイズ分のデータ
を比較する。
比較した結果内容が同じであれば1、違っていれば0、エラーが
あった場合には-1を返す。
------ここまで------
一般的にCで実施するmalloc, memcpy, memset, memcmpなどが使える
様にするために上記の関数を準備します。読み書きは1byteずつに
しましたが、複数にした方がいいのかなあ…。バッファコピーもオフセット
はつけませんでしたが、任意の位置に任意のサイズコピーできるほうが
いい気がしてきたので、その内仕様を変更しようかと思います。
freeに相当する関数がここには含まれてませんが、ハンドルを開放する
ための関数を後ほど準備します。
※最終的なものは修正後、まとめて公開します。