copy
関数群は連続したデータをあるアドレスから
別のアドレスへコピーするようデザインされています。
copystr()
以外の関数は、ユーザ空間からカーネル空間へ、
あるいは反対向きにデータをコピーします。
copy
関数群は以下の機能を提供します。
copyin()
|
|
ユーザ空間のアドレス
uaddr
からカーネル空間のアドレス
kaddr
へ
len
バイトのデータをコピーします。
|
copyout()
|
|
カーネル空間のアドレス
kaddr
からユーザ空間のアドレス
uaddr
へ
len
バイトのデータをコピーします。
|
copystr()
|
|
カーネル空間のアドレス
kfaddr
からカーネル空間のアドレス
kdaddr
へヌル文字で終端された最大
len
文字の文字列をコピーします。
末尾のヌル文字を含む実際にコピーされた文字数が
*done
に返されます
(, done
が
NULL
ではない場合)。
|
copyinstr()
|
|
ユーザ空間のアドレス
uaddr
からカーネル空間のアドレス
kaddr
へヌル文字で終端された最大
len
文字の文字列をコピーします。
末尾のヌル文字を含む実際にコピーされた文字数が
*done
に返されます
(, done
が
NULL
ではない場合)。
|