提交 36f4861c 创建 作者: Silas Boyd-Wickizer's avatar Silas Boyd-Wickizer

uspinlock.h

上级 214c3dcc
#pragma once
#include "x86.h"
#include "amd64.h"
struct uspinlock {
volatile uint locked; // Is the lock held?
volatile u32 locked; // Is the lock held?
};
static void inline __attribute__((always_inline))
acquire(struct uspinlock *lk)
{
while(xchg(&lk->locked, 1) != 0)
while(xchg32(&lk->locked, 1) != 0)
;
}
static void inline __attribute__((always_inline))
release(struct uspinlock *lk)
{
xchg(&lk->locked, 0);
xchg32(&lk->locked, 0);
}
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论