atomic_cmpxchg
2013-10-24 14:03
771 查看
1424 while (atomic_cmpxchg(&kgdb_active, -1, cpu) != -1)
1425 cpu_relax();
atomic_cmpxchg()函数实现了一个比较+交换的原子操作(原子就是说cpu要不就不做,
要做就一定要做完某些操作才能干别的事情,对应这里就是比较和交换要一次过做完).
atomic_cmpxchg()比较kgdb_active->count的值是否等用-1,如果是则把cpu的值赋给kgdb_active->count,
否则不修改它的值,atomic_cmpxchg返回kgdb_active->count赋值前的值.
1425 cpu_relax();
atomic_cmpxchg()函数实现了一个比较+交换的原子操作(原子就是说cpu要不就不做,
要做就一定要做完某些操作才能干别的事情,对应这里就是比较和交换要一次过做完).
atomic_cmpxchg()比较kgdb_active->count的值是否等用-1,如果是则把cpu的值赋给kgdb_active->count,
否则不修改它的值,atomic_cmpxchg返回kgdb_active->count赋值前的值.
相关文章推荐
- atomic_cmpxchg()/Atomic_read()/Atomic_set()/Atomic_add()/Atomic_sub()/atomi
- 原子操作 atomic_cmpxchg()/Atomic_read()/Atomic_set()/Atomic_add()/Atomic_sub()/atomic_clear_mask()
- Linux原子操作 atomic_cmpxchg()/Atomic_read()/Atomic_set()/Atomic_add()/Atomic_sub()
- Linux原子操作 atomic_cmpxchg()/Atomic_read()/Atomic_set()/Atomic_add()/Atomic_sub()/atomi
- libsvn_subr-1.so.0: undefined symbol: apr_atomic_xchgptr 故障解决
- uclinux-2008R1-RC8(bf561)到VDSP5的移植(48): __cmpxchg的问题
- kuser_cmpxchg_check 原子操作
- cpu cmpxchg 指令理解 (CAS)
- symbol lookup error: /usr/local/lib/libsvn_subr-1.so.0: undefined symbol: apr_atomic_xchgptr
- linux下编译Qt/E x86 的问题:cmpxchg和cmpxchgl
- cmpxchg原子操作过程
- 选择JDO还是CMP?
- JBuilder7+Weblogic7+mysql 开发EJB的配置(加入BMP,CMP开发实例)
- cmp-ProductHome.java
- Atomic Access in thread
- test和cmp一个很菜很基础的话题
- uclinux-2008R1-RC8(bf561)到VDSP5的移植(30):atomic_t
- Ext中的get、getDom、getCmp、getBody、getDoc的区别
- ExtJS中get、getDom、getCmp、getBody、getDoc使用 javascript
- Ext 核心 API -- Ext.getCmp