XWOS API  4.0
XWOS C/C++ API参考手册
载入中...
搜索中...
未找到
Cpu.hxx
浏览该文件的文档.
1
13#ifndef __xwos_cxx_Cpu_hxx__
14#define __xwos_cxx_Cpu_hxx__
15
16#include <xwos/osal/skd.hxx>
17#include <xwos/osal/irq.hxx>
18
19namespace xwos {
20
34class Cpu
35{
36 private:
37 Cpu() {}
38 ~Cpu() {}
39
40 public:
42 {
43 return xwos_skd_start_lc();
44 }
46 {
47 return xwosdl_skd_pause_lc();
48 }
50 {
51 return xwos_skd_continue_lc();
52 }
54 {
55 return xwos_skd_get_cpuid_lc();
56 }
57 static void getContext(xwsq_t * ctxbuf, xwirq_t * irqnbuf)
58 {
59 xwos_skd_get_context_lc(ctxbuf, irqnbuf);
60 }
62 {
64 }
66 {
68 }
69 static void disableLocalBh() { xwos_skd_dsbh_lc(); }
70 static void enableLocalBh() { xwos_skd_enbh_lc(); }
71 static void disableLocalIrq()
72 {
74 }
75 static void enableLocalIrq()
76 {
78 }
79 static void suspendLocalIrq()
80 {
82 }
83 static void resumeLocalIrq()
84 {
86 }
87 static void saveLocalIrq(xwreg_t * cpuirq)
88 {
89 xwos_cpuirq_save_lc(cpuirq);
90 }
91 static void restoreLocalIrq(xwreg_t cpuirq)
92 {
94 }
95 static bool testLocalIrq()
96 {
97 return xwos_cpuirq_test_lc();
98 }
100 static void disableIrq(xwirq_t irqn)
101 {
102 xwos_irq_disable(irqn);
103 }
104 static void enableIrq(xwirq_t irqn)
105 {
106 xwos_irq_enable(irqn);
107 }
108 static void saveIrq(xwirq_t irqn, xwreg_t * flag)
109 {
110 xwos_irq_save(irqn, flag);
111 }
112 static void restoreIrq(xwirq_t irqn, xwreg_t flag)
113 {
114 xwos_irq_restore(irqn, flag);
115 }
116};
117
122} // namespace xwos
123
124#endif /* xwos/cxx/Cpu.hxx */
~Cpu()
Definition Cpu.hxx:38
static void enableLocalBh()
Definition Cpu.hxx:70
static void saveIrq(xwirq_t irqn, xwreg_t *flag)
Definition Cpu.hxx:108
Cpu()
Definition Cpu.hxx:37
static void restoreIrq(xwirq_t irqn, xwreg_t flag)
Definition Cpu.hxx:112
static void enableLocalPreemption()
Definition Cpu.hxx:65
static void disableLocalPreemption()
Definition Cpu.hxx:61
static void saveLocalIrq(xwreg_t *cpuirq)
Definition Cpu.hxx:87
static xwer_t pauseLocalScheduler()
Definition Cpu.hxx:45
static void enableIrq(xwirq_t irqn)
Definition Cpu.hxx:104
static void disableLocalIrq()
Definition Cpu.hxx:71
static bool testLocalIrq()
Definition Cpu.hxx:95
static xwer_t continueLocalScheduler()
Definition Cpu.hxx:49
static void restoreLocalIrq(xwreg_t cpuirq)
Definition Cpu.hxx:91
static void enableLocalIrq()
Definition Cpu.hxx:75
static void resumeLocalIrq()
Definition Cpu.hxx:83
static void suspendLocalIrq()
Definition Cpu.hxx:79
static void disableLocalBh()
Definition Cpu.hxx:69
static xwer_t startLocalSchedule()
Definition Cpu.hxx:41
static void getContext(xwsq_t *ctxbuf, xwirq_t *irqnbuf)
Definition Cpu.hxx:57
static xwid_t getLocalCpuId()
Definition Cpu.hxx:53
static void disableIrq(xwirq_t irqn)
Definition Cpu.hxx:100
static xwer_t xwos_irq_disable(xwirq_t irqn)
XWOS API:关闭中断
Definition irq.h:82
static bool xwos_cpuirq_test_lc(void)
XWOS API:测试本地CPU的中断开关状态 return 本地CPU的中断状态 retval true: 开启中断 retval false: 关闭中断
Definition irq.h:234
static void xwos_cpuirq_suspend_lc(void)
XWOS API:暂停本地CPU的中断
Definition irq.h:192
static void xwos_cpuirq_enable_lc(void)
XWOS API:开启本地CPU的中断
Definition irq.h:148
static void xwos_cpuirq_save_lc(xwreg_t *cpuirq)
XWOS API:保存然后关闭本地CPU的中断开关
Definition irq.h:220
static xwer_t xwos_irq_save(xwirq_t irqn, xwreg_t *flag)
XWOS API:保存中断的开关,然后将其关闭
Definition irq.h:100
static xwer_t xwos_irq_restore(xwirq_t irqn, xwreg_t flag)
XWOS API:恢复中断的开关
Definition irq.h:117
static void xwos_cpuirq_disable_lc(void)
XWOS API:关闭本地CPU的中断
Definition irq.h:162
static void xwos_cpuirq_restore_lc(xwreg_t cpuirq)
XWOS API:恢复本地CPU的中断开关
Definition irq.h:206
static void xwos_cpuirq_resume_lc(void)
XWOS API:恢复本地CPU的中断
Definition irq.h:177
static xwer_t xwos_irq_enable(xwirq_t irqn)
XWOS API:开启中断
Definition irq.h:66
signed long xwer_t
Definition type.h:554
unsigned long xwid_t
Definition type.h:481
signed int xwirq_t
Definition type.h:517
unsigned long xwsq_t
Definition type.h:445
xwptr_t xwreg_t
Definition type.h:409
static xwer_t xwos_skd_continue_lc(void)
XWOS API:继续运行本地CPU调度器
Definition skd.h:270
static void xwos_skd_enpmpt_lc(void)
XWOS API:开启本地CPU调度器的抢占
Definition skd.h:231
static xwer_t xwos_skd_start_lc(void)
XWOS API:启动当前CPU的调度器
Definition skd.h:183
static void xwos_skd_dspmpt_lc(void)
XWOS API:关闭本地CPU调度器的抢占
Definition skd.h:220
static xwid_t xwos_skd_get_cpuid_lc(void)
XWOS API:获取当前CPU的ID
Definition skd.h:195
static void xwos_skd_get_context_lc(xwsq_t *ctxbuf, xwirq_t *irqnbuf)
XWOS API:获取当前代码的上下文
Definition skd.h:209
static void xwos_skd_enbh_lc(void)
XWOS API:开启本地CPU调度器的中断底半部
Definition skd.h:253
static void xwos_skd_dsbh_lc(void)
XWOS API:关闭本地CPU调度器的中断底半部
Definition skd.h:242
C++操作系统抽象层:IRQ
Definition Bmp.hxx:21
C++操作系统抽象层:调度器