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
ではない場合)。 | 
|