mFrame
載入中...
搜尋中...
無符合項目
Kernel.h
1
7#ifndef MFRAME_E5B93ACC_6FA3_4527_B356_93D76C4F913E
8#define MFRAME_E5B93ACC_6FA3_4527_B356_93D76C4F913E
9
10/* ***************************************************************************************
11 * Include
12 */
13
14//----------------------------------------------------------------------------------------
15
16//----------------------------------------------------------------------------------------
17#include "./../func/Runnable.h"
18#include "./../io/InputStream.h"
19#include "./../io/OutputStream.h"
20#include "./../sys/Thread.h"
21#include "./../sys/Timer.h"
22
23/* ***************************************************************************************
24 * Namespace
25 */
26namespace mframe::sys {
27 struct Kernel;
28} // namespace mframe::sys
29
30/* ***************************************************************************************
31 * Class/struct/Struct/Enum
32 */
34 /* *************************************************************************************
35 * Method
36 */
37
44 virtual bool initialize(void) abstract;
45
50 virtual void start(void) abstract;
51
57 virtual int systemLock(void) abstract;
58
66 virtual int systemUnlock(void) abstract;
67
73 virtual uint32 getTickCount(void) abstract;
74
80 virtual uint32 getTickFreq(void) abstract;
81
89 virtual bool systemDelay(uint32 milliseconds) const abstract;
90
98 virtual bool systemWait(uint32 timeout) const abstract;
99
104 virtual void reboot(void) abstract;
105
114 mframe::lang::Data& stackMemory) abstract;
115
125 int stackSize) abstract;
126
133 virtual mframe::sys::Thread* getCurrentThread(void) abstract;
134
141 virtual mframe::sys::Timer* allocTimer(void) abstract;
142
152 virtual bool systemYield(void) abstract;
153};
154
155/* ***************************************************************************************
156 * End of file
157 */
158
159#endif /* MFRAME_E5B93ACC_6FA3_4527_B356_93D76C4F913E */
Definition Data.h:30
Definition Thread.h:33
Definition mframe/src/sys/Timer.h:28
Definition Object.h:27
Definition Runnable.h:29
Definition Interface.h:134
Definition Kernel.h:33
virtual bool systemDelay(uint32 milliseconds) const override
執行緒延遲,並交還CPU使用權。
virtual uint32 getTickCount(void) override
取得核心tick數。
virtual bool initialize(void) override
核心初始化,再調用所有核心方法時必須先初始化,否則將會調用失敗。
virtual mframe::sys::Timer * allocTimer(void) override
建立一個計時器。
virtual bool systemYield(void) override
該函數將控制權傳遞給處於 READY 狀態且具有相同優先級的下一個線程。 如果在READY狀態下沒有其他優先級相同的線程,則當前線程繼續執行,不會發生線程切換。 不會將線程設置為 BLOCKED 狀態。...
virtual mframe::sys::Thread * getCurrentThread(void) override
取得當前執行緒
virtual int systemLock(void) override
核心鎖定,在調用kernelUnlock以前將不會進行context switch。
virtual int systemUnlock(void) override
virtual mframe::sys::Thread * allocThread(mframe::func::Runnable &task, mframe::lang::Data &stackMemory) override
建立一個執行緒。
virtual void reboot(void) override
核心重啟。
virtual bool systemWait(uint32 timeout) const override
執行緒等待,直到超時或是被喚醒,並交還CPU使用權。
virtual mframe::sys::Thread * allocThread(mframe::func::Runnable &task, int stackSize) override
建立一個執行緒,限定堆疊大小。
virtual uint32 getTickFreq(void) override
取得核心運作頻率。
virtual void start(void) override
核心啟動,作業系統開始。