diff options
| author | Bernard Xiong <[email protected]> | 2018-11-22 22:44:46 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2018-11-22 22:44:46 +0800 |
| commit | 6445328accc3570cb4b5d1394765074a29f4385d (patch) | |
| tree | 9806ccc0627c400a3fab8dcc3b5d8f6e2490268d /include/rtthread.h | |
| parent | 8cc81af1f651e275b7d812399eafe4bfb4e047e1 (diff) | |
| parent | 94a2e751a57938c43cba54b5eb1ac00fd3716ed4 (diff) | |
Merge pull request #1999 from jesven/smp_4.0
Smp 4.0
Diffstat (limited to 'include/rtthread.h')
| -rw-r--r-- | include/rtthread.h | 19 |
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. */ |
