mmap()した領域の領域確保
mmapで特定のデバイスのIOメモリを仮想空間に割り付けて,
その領域に対してユーザーからデータを書き込むことを考えています.
ユーザープログラム側でその領域上に,ある構造体の双方向リスト
を作りたいのですが,ユーザー空間の特定のアドレス範囲から空き
メモリ領域を動的に確保する方法はないでしょうか
void *vm_malloc(start_address, end_adress, nbyte);
とすると"仮想アドレスstart_address~end_adressの範囲から空き領域を探し出し,
nbyteバイトの領域を確保する"みたいなイメージです
一連の流れとしては,struct hogeをIOメモリに書き込む場合,
・mmap()でIOメモリを仮想空間にマップ
・struct hoge* addr = vm_malloc();でマップされた領域からsizeof(struct hoge)だけ領域を確保
・*addr = .....;
・vm_malloc, データの書き込みの繰り返し
・fsync()
のようなことをしたいと考えています.