locker.h.svn-base
来自「德国Erlangen大学教学操作系统源码。」· SVN-BASE 代码 · 共 67 行
SVN-BASE
67 行
/*****************************************************************************//* Betriebssysteme *//*---------------------------------------------------------------------------*//* *//* L O C K E R *//* *//*---------------------------------------------------------------------------*//* Die Klasse Locker implementiert eine Sperrvariable, die verwendet wird, *//* um kritische Abschnitte zu schuetzen. Die Variable zeigt allerdings nur *//* an, ob der kritische Abschnitt frei ist. Ein eventuelles Warten und der *//* Schutz der fuer diese Klasse notwendigen Zaehlfunktion muss ausserhalb *//* erfolgen. *//*****************************************************************************/#ifndef __Locker_include__#define __Locker_include__#include "machine/cpu.h"extern CPU cpu;class Locker{public: inline Locker() : counter(0) { } inline Locker(Locker &locker) { } inline virtual ~Locker() { } inline void enter() { cpu.disable_int(); counter++; cpu.enable_int(); } inline void retne() { cpu.disable_int(); if(counter>0) counter--; cpu.enable_int(); } inline bool avail() { return counter==0; }//private: int counter;};#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?