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
30class Cpu
31{
32 private:
33 Cpu() {}
34 ~Cpu() {}
35
36 public:
41 {
42 return xwos_skd_start_lc();
43 }
44
49 {
50 return xwosdl_skd_pause_lc();
51 }
52
57 {
58 return xwos_skd_continue_lc();
59 }
60
65 {
66 return xwos_skd_get_cpuid_lc();
67 }
68
72 static void getContext(xwsq_t * ctxbuf, xwirq_t * irqnbuf)
73 {
74 xwos_skd_get_context_lc(ctxbuf, irqnbuf);
75 }
76
81 {
83 }
84
89 {
91 }
92
96 static void disableLocalBh() { xwos_skd_dsbh_lc(); }
101 static void enableLocalBh() { xwos_skd_enbh_lc(); }
102
106 static void disableLocalIrq()
107 {
109 }
110
114 static void enableLocalIrq()
115 {
117 }
118
122 static void suspendLocalIrq()
123 {
125 }
126
130 static void resumeLocalIrq()
131 {
133 }
134
138 static void saveLocalIrq(xwreg_t * cpuirq)
139 {
140 xwos_cpuirq_save_lc(cpuirq);
141 }
142
146 static void restoreLocalIrq(xwreg_t cpuirq)
147 {
149 }
150
154 static bool testLocalIrq()
155 {
156 return xwos_cpuirq_test_lc();
157 }
158
162 static void disableIrq(xwirq_t irqn)
163 {
164 xwos_irq_disable(irqn);
165 }
166
170 static void enableIrq(xwirq_t irqn)
171 {
172 xwos_irq_enable(irqn);
173 }
174
178 static void saveIrq(xwirq_t irqn, xwreg_t * flag)
179 {
180 xwos_irq_save(irqn, flag);
181 }
182
186 static void restoreIrq(xwirq_t irqn, xwreg_t flag)
187 {
188 xwos_irq_restore(irqn, flag);
189 }
190};
191
196} // namespace xwos
197
198#endif /* xwos/cxx/Cpu.hxx */
~Cpu()
Definition Cpu.hxx:34
static void enableLocalBh()
开启本地CPU的中断底半部
Definition Cpu.hxx:101
static void saveIrq(xwirq_t irqn, xwreg_t *flag)
保存某个外设中断的开关,然后将其关闭
Definition Cpu.hxx:178
Cpu()
Definition Cpu.hxx:33
static void restoreIrq(xwirq_t irqn, xwreg_t flag)
恢复某个外设中断的开关
Definition Cpu.hxx:186
static void enableLocalPreemption()
开启本地CPU调度器的抢占
Definition Cpu.hxx:88
static void disableLocalPreemption()
关闭本地CPU调度器的抢占
Definition Cpu.hxx:80
static void saveLocalIrq(xwreg_t *cpuirq)
保存本地CPU的中断开关然后关闭(可嵌套使用)
Definition Cpu.hxx:138
static xwer_t pauseLocalScheduler()
暂停本地CPU调度器
Definition Cpu.hxx:48
static void enableIrq(xwirq_t irqn)
开启某个外设中断
Definition Cpu.hxx:170
static void disableLocalIrq()
关闭本地CPU的中断开关(不可嵌套使用)
Definition Cpu.hxx:106
static bool testLocalIrq()
测试本地CPU的中断开关状态
Definition Cpu.hxx:154
static xwer_t continueLocalScheduler()
继续运行本地CPU调度器
Definition Cpu.hxx:56
static void restoreLocalIrq(xwreg_t cpuirq)
恢复本地CPU的中断(可嵌套使用)
Definition Cpu.hxx:146
static void enableLocalIrq()
开启本地CPU的中断开关(不可嵌套使用)
Definition Cpu.hxx:114
static void resumeLocalIrq()
恢复本地CPU的中断(可嵌套使用)
Definition Cpu.hxx:130
static void suspendLocalIrq()
暂停本地CPU的中断(可嵌套使用)
Definition Cpu.hxx:122
static void disableLocalBh()
关闭本地CPU的中断底半部
Definition Cpu.hxx:96
static xwer_t startLocalSchedule()
启动当前CPU的调度器
Definition Cpu.hxx:40
static void getContext(xwsq_t *ctxbuf, xwirq_t *irqnbuf)
获取当前代码的上下文
Definition Cpu.hxx:72
static xwid_t getLocalCpuId()
获取当前CPU的ID
Definition Cpu.hxx:64
static void disableIrq(xwirq_t irqn)
关闭某个外设中断
Definition Cpu.hxx:162
static xwer_t xwos_irq_disable(xwirq_t irqn)
XWOS API:关闭中断
Definition irq.h:78
static bool xwos_cpuirq_test_lc(void)
XWOS API:测试本地CPU的中断开关状态 return 本地CPU的中断状态 retval true: 开启中断 retval false: 关闭中断
Definition irq.h:230
static void xwos_cpuirq_suspend_lc(void)
XWOS API:暂停本地CPU的中断
Definition irq.h:188
static void xwos_cpuirq_enable_lc(void)
XWOS API:开启本地CPU的中断
Definition irq.h:144
static void xwos_cpuirq_save_lc(xwreg_t *cpuirq)
XWOS API:保存然后关闭本地CPU的中断开关
Definition irq.h:216
static xwer_t xwos_irq_save(xwirq_t irqn, xwreg_t *flag)
XWOS API:保存中断的开关,然后将其关闭
Definition irq.h:96
static xwer_t xwos_irq_restore(xwirq_t irqn, xwreg_t flag)
XWOS API:恢复中断的开关
Definition irq.h:113
static void xwos_cpuirq_disable_lc(void)
XWOS API:关闭本地CPU的中断
Definition irq.h:158
static void xwos_cpuirq_restore_lc(xwreg_t cpuirq)
XWOS API:恢复本地CPU的中断开关
Definition irq.h:202
static void xwos_cpuirq_resume_lc(void)
XWOS API:恢复本地CPU的中断
Definition irq.h:173
static xwer_t xwos_irq_enable(xwirq_t irqn)
XWOS API:开启中断
Definition irq.h:62
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:288
static void xwos_skd_enpmpt_lc(void)
XWOS API:开启本地CPU调度器的抢占
Definition skd.h:249
static xwer_t xwos_skd_start_lc(void)
XWOS API:启动当前CPU的调度器
Definition skd.h:185
static void xwos_skd_dspmpt_lc(void)
XWOS API:关闭本地CPU调度器的抢占
Definition skd.h:238
static xwid_t xwos_skd_get_cpuid_lc(void)
XWOS API:获取当前CPU的ID
Definition skd.h:197
static void xwos_skd_get_context_lc(xwsq_t *ctxbuf, xwirq_t *irqnbuf)
XWOS API:获取当前代码的上下文
Definition skd.h:211
static void xwos_skd_enbh_lc(void)
XWOS API:开启本地CPU调度器的中断底半部
Definition skd.h:271
static void xwos_skd_dsbh_lc(void)
XWOS API:关闭本地CPU调度器的中断底半部
Definition skd.h:260
C++操作系统抽象层:IRQ
Definition Bmp.hxx:21
C++操作系统抽象层:调度器