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,线程,局部,存储,的研" />
datasheet
超过460,000+ 应用技术资源下载
pdf

android线程局部存储的研究

  • 1星
  • 日期: 2013-09-29
  • 大小: 58.91KB
  • 所需积分:1分
  • 下载次数:0
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: 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……             

更多简介内容

评论

下载专区


TI最新应用解决方案

工业电子 汽车电子 个人电子
$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })