在 s390 架构上,虚拟内核和用户地址空间永远不会同时存在,那么它是如何copy_to_user
工作的呢?
问问题
272 次
1 回答
3
copy_to_user
s390 在此处实现:linux/arch/s390/include/asm/uaceess.h。
uaccess
是指向 copy_[to/from]_user 实际实现的指针。它设置在这里(grep uaccess):arch/s390/kernel/setup.c。有 4 种实现uaccess
,取决于模式:
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 回答