s390アーキテクチャーでは、仮想カーネルとユーザー・アドレス・スペースが同時に存在することはありませんが、どのように機能しcopy_to_user
ますか?
1 に答える
3
copy_to_user
for s390は、ここに実装されています:linux / arch / s390 / include / asm/uaceess.h。
uaccess
copy_ [to /from]_userの実際の実装へのポインタです。ここで設定されます(grep uaccess):arch / s390 / kernel/setup.c。uaccess
モードに応じて、の4つの実装があります。
uaccess_mvcos_switch
、、およびuaccess_pt
_uaccess_mvcos
uaccess_std
たとえば、uaccess_stdは次のとおりです。http://lxr.linux.no/#linux+v3.2.1/arch/s390/lib/uaccess_std.c
4 * Standard user space access functions based on mvcp/mvcs and doing
5 * interesting things in the secondary space mode.
..。
82 size_t copy_to_user_std(size_t size, void __user *ptr, const void *x)
83 {
84 unsigned long tmp1, tmp2;
85
86 tmp1 = -256UL;
87 asm volatile(
88 "0: mvcs 0(%0,%1),0(%2),%3\n"
mvcp
/mvcs
メカニズムが使用されます:
http : //publib.boulder.ibm.com/infocenter/zos/v1r11/topic/com.ibm.zos.r11.ieaa500/iea2a57031.htm
于 2012-01-20T16:11:46.480 に答える