FETCH(9)

名称
fetch, fubyte, fuibyte, fusword, fuswintr, fuword, fuiword - ユーザ空間からのデータの fetch

書式
#include <sys/types.h> #include <sys/systm.h> int fubyte(void *base) int fusword(void *base) int fuswintr(void *base) int fuword(void *base)

解説
fetch 関数群は、ユーザ空間から少量のデータをコピーするよう設計されています。

fetch ルーチンは、以下の関数を提供します:

fubyte()
    ユーザ空間 base からバイトデータを得ます。

fusword()
    ユーザ空間 base から short word データを得ます。

fuswintr()
    ユーザ空間 base から short word データを得ます。 この関数は割り込み内でも安全に呼ぶことができます。

fuword()
    ユーザ空間 base から word データを得ます。

戻り値
関数 fetch は、成功すれば得られたデータを、失敗の時は -1 を返します。 留意すべき点は、これらの関数はすべて "unsigned" でアクセスすることです。 したがって、byte や short は決して符号拡張されません。 これは、 fuword() を除いたほかすべての関数で、 エラー値が返った時のあいまいさを防ぎます。

バグ
関数 fuword() は、はっきりとエラーを知らせる方法がありません。というのは、 正当に読まれたデータが -1 と同じであった場合に、エラーと見なされるからです。 ほかの関数ではこの問題は発生しません。 なぜなら、その他の関数の返す値は unsigned なので、 決してエラー値である -1 とマッチしないからです。

関連項目
copy(9), store(9)