x86.h
来自「konqueror3 embedded版本, KDE环境下的当家浏览器的嵌入式版」· C头文件 代码 · 共 42 行
H
42 行
#include <sched.h>#include <time.h>typedef struct { volatile unsigned int lock; int pad0_;} mutex_t;#define MUTEX_INITIALIZER { 0, 0 }static __inline__ int lock(mutex_t *m) { int cnt = 0, r; struct timespec tm; for(;;) { __asm__ __volatile__ ("xchgl %0, %1" : "=r"(r), "=m"(m->lock) : "0"(1), "m"(m->lock) : "memory"); if(!r) return 0;#ifdef _POSIX_PRIORITY_SCHEDULING if(cnt < 50) { sched_yield(); cnt++; } else#endif { tm.tv_sec = 0; tm.tv_nsec = 2000001; nanosleep(&tm, NULL); cnt = 0; } }}static __inline__ int unlock(mutex_t *m) { __asm __volatile ("movl $0,%0" : "=m" (m->lock)); return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?