G_DATA(9) | FreeBSD Kernel Developer's Manual | G_DATA(9) |
名称
g_read_data, g_write_data — GEOM コンシューマ (消費者) からデータを読み込むか、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 エラーがコンシューマから読み込むか、または書き込んでいる間に発生しました。
関連項目
geom(4), DECLARE_GEOM_CLASS(9), g_access(9), g_attach(9), g_bio(9), g_consumer(9), g_event(9), g_geom(9), g_provider(9), g_provider_by_name(9), g_wither_geom(9)作者
このマニュアルページは、 <pjd@FreeBSD.org>によって書かれました。January 16, 2004 | FreeBSD |