summaryrefslogtreecommitdiff
path: root/include/rtthread.h
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2018-11-22 22:44:46 +0800
committerGitHub <[email protected]>2018-11-22 22:44:46 +0800
commit6445328accc3570cb4b5d1394765074a29f4385d (patch)
tree9806ccc0627c400a3fab8dcc3b5d8f6e2490268d /include/rtthread.h
parent8cc81af1f651e275b7d812399eafe4bfb4e047e1 (diff)
parent94a2e751a57938c43cba54b5eb1ac00fd3716ed4 (diff)
Merge pull request #1999 from jesven/smp_4.0
Smp 4.0
Diffstat (limited to 'include/rtthread.h')
-rw-r--r--include/rtthread.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/include/rtthread.h b/include/rtthread.h
index 3fc77d343c..d2356b8eda 100644
--- a/include/rtthread.h
+++ b/include/rtthread.h
@@ -13,6 +13,7 @@
* 2010-04-11 yi.qiu add module feature
* 2013-06-24 Bernard add rt_kprintf re-define when not use RT_USING_CONSOLE.
* 2016-08-09 ArdaFu add new thread and interrupt hook.
+ * 2018-11-22 Jesven add all cpu's lock and ipi handler
*/
#ifndef __RT_THREAD_H__
@@ -184,6 +185,10 @@ rt_uint16_t rt_critical_level(void);
void rt_scheduler_sethook(void (*hook)(rt_thread_t from, rt_thread_t to));
#endif
+#ifdef RT_USING_SMP
+void rt_scheduler_ipi_handler(int vector, void *param);
+#endif
+
/**@}*/
/**
@@ -439,6 +444,20 @@ rt_err_t rt_device_control(rt_device_t dev, int cmd, void *arg);
void rt_interrupt_enter(void);
void rt_interrupt_leave(void);
+#ifdef RT_USING_SMP
+
+/*
+ * smp cpus lock service
+ */
+
+rt_base_t rt_cpus_lock(void);
+void rt_cpus_unlock(rt_base_t level);
+
+struct rt_cpu *rt_cpu_self(void);
+struct rt_cpu *rt_cpu_index(int index);
+
+#endif
+
/*
* the number of nested interrupts.
*/