1234567891011121314151617181920 |
- # include "task-list-32-tasks.h"
- class Semaphore {
- protected: TaskList mWaitingTaskList ;
- protected: uint32_t mValue ;
- public: Semaphore (const uint32_t inInitialValue) ;
- //$service semaphore.V
- public: void V (USER_MODE) asm ("semaphore.V") ;
- public: void sys_V (IRQ_MODE) asm ("service.semaphore.V") ;
- //$service semaphore.P
- public: void P (USER_MODE) asm ("semaphore.P") ;
- public: void sys_P (KERNEL_MODE) asm ("service.semaphore.P") ;
- // Disable copy
- private: Semaphore (const Semaphore &) = delete ;
- private: Semaphore & operator = (const Semaphore &) = delete ;
- };
|