首页|嵌入式系统|显示技术|模拟IC/电源|元件与制造|其他IC/制程|消费类电子|无线/通信|汽车电子|工业控制|医疗电子|测试测量
首页 > 分享下载 > 消费类电子 > android线程局部存储的研究

android线程局部存储的研究

资料介绍
android线程局部存储的研究android 线程局部存储的研究
王森 msn: kernel_senix@163.com

内核对线程局部存储的支持 设置
asmlinkage int arm_syscall(int no, struct pt_regs *regs) { … case NR(set_tls): thread->tp_value = regs->ARM_r0;// regs->ARM_r0 即为用户空间传下来的线程局 部存储的虚拟地址,而 thread->tp_value 极为内核为每个线程保存这个虚拟地址的地方。 #if defined(CONFIG_HAS_TLS_REG)//如果处理器有专门的寄存器用来线程局部存储,那么 好,就用这个专用寄存器 asm ("mcr p15, 0, %0, c13, c0, 3" : : "r" (regs->ARM_r0) ); #elif !defined(CONFIG_TLS_REG_EMUL) //如果处理器没有专门的寄存器用来线程局部存储,那么好,内核就找一个靠近 4G 的地址 来存 /* * User space must never try to access this directly. * Expect your app to break eventually if you do so. * The user helper at 0xffff0fe0 must be used instead. * (see entry-armv.S for details) */ *((unsigned int *)0xffff0ff0) = regs->ARM_r0;//这个地址就是 0xffff0ff0,内核会预先 为其建立映射,并 reserve 下来 #endif return 0; … }

PDF 文件使用 "pdfFactory P
标签:android线程局部存储的研
android线程局部存储的研究
本地下载

评论