EN JA
G_DATA(9)
G_DATA(9) FreeBSD Kernel Developer's Manual G_DATA(9)

名称

g_read_data, g_write_dataGEOM コンシューマ (消費者) からデータを読み込むか、GEOM コンシューマ (消費者) へデータを書き込む

書式

#include < geom/geom.h>

void *
g_read_data( struct g_consumer *cp, off_t offset, off_t length, int *error);

int
g_write_data( struct g_consumer *cp, off_t offset, void *ptr, off_t length);

解説

g_read_data() 関数はオフセット offset で始まって、コンシューマ (消費者) cp にアタッチされたプロバイダから length バイトのデータを読み込みます。 g_read_data() から返されたバッファは g_malloc() で割り付けられるので、それは使用された後で g_free() を使って呼び出し側によって解放されるべきです。操作が失敗するなら、エラー値は error (それが NULL でなければ) 引数に格納されます。

g_write_data() 関数は ptr によって指されたバッファからオフセット offset で始まって、コンシューマ cp にアタッチされたプロバイダまで length バイトのデータを書き込みます。

制限/条件

length 引数は、プロバイダのセクタサイズの倍数で DFLTPHYS ( DFLTPHYS< sys/param.h> で定義されています) 以下であるべきです。

トポロジロックを保持してはいけません。

戻り値

g_read_data() 関数はデータバッファへのポインタを返し、エラーが発生したなら、 NULL を返します。その場合、エラー値は、 error (それが NULL でないなら) 引数に格納されます。

g_write_data() 関数は成功すれば、0 を返します。そうでなければ、エラーコードが返されます。

エラー

あり得るエラーは次の通りです:
[ EIO]
I/O エラーがコンシューマから読み込むか、または書き込んでいる間に発生しました。

作者

このマニュアルページは、 Pawel Jakub Dawidek <pjd@FreeBSD.org>によって書かれました。
January 16, 2004 FreeBSD