提交 b6c1ebf4 编写于 作者: B bernard.xiong@gmail.com

add RT_PRINTF_PRECISION in kservice.c; fix re-schedule issue in IPC control function.

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2003 bbd45198-f89e-11dd-88c7-29a3b14d5316
上级 3b805a81
...@@ -469,6 +469,8 @@ rt_err_t rt_sem_control(rt_sem_t sem, rt_uint8_t cmd, void *arg) ...@@ -469,6 +469,8 @@ rt_err_t rt_sem_control(rt_sem_t sem, rt_uint8_t cmd, void *arg)
/* enable interrupt */ /* enable interrupt */
rt_hw_interrupt_enable(level); rt_hw_interrupt_enable(level);
rt_schedule();
return RT_EOK; return RT_EOK;
} }
...@@ -1153,6 +1155,8 @@ rt_err_t rt_event_control(rt_event_t event, rt_uint8_t cmd, void *arg) ...@@ -1153,6 +1155,8 @@ rt_err_t rt_event_control(rt_event_t event, rt_uint8_t cmd, void *arg)
/* enable interrupt */ /* enable interrupt */
rt_hw_interrupt_enable(level); rt_hw_interrupt_enable(level);
rt_schedule();
return RT_EOK; return RT_EOK;
} }
...@@ -1597,7 +1601,6 @@ rt_err_t rt_mb_control(rt_mailbox_t mb, rt_uint8_t cmd, void *arg) ...@@ -1597,7 +1601,6 @@ rt_err_t rt_mb_control(rt_mailbox_t mb, rt_uint8_t cmd, void *arg)
/* resume all waiting thread */ /* resume all waiting thread */
rt_ipc_list_resume_all(&(mb->parent.suspend_thread)); rt_ipc_list_resume_all(&(mb->parent.suspend_thread));
/* also resume all mailbox private suspended thread */ /* also resume all mailbox private suspended thread */
rt_ipc_list_resume_all(&(mb->suspend_sender_thread)); rt_ipc_list_resume_all(&(mb->suspend_sender_thread));
...@@ -1609,6 +1612,8 @@ rt_err_t rt_mb_control(rt_mailbox_t mb, rt_uint8_t cmd, void *arg) ...@@ -1609,6 +1612,8 @@ rt_err_t rt_mb_control(rt_mailbox_t mb, rt_uint8_t cmd, void *arg)
/* enable interrupt */ /* enable interrupt */
rt_hw_interrupt_enable(level); rt_hw_interrupt_enable(level);
rt_schedule();
return RT_EOK; return RT_EOK;
} }
...@@ -2144,6 +2149,8 @@ rt_err_t rt_mq_control(rt_mq_t mq, rt_uint8_t cmd, void *arg) ...@@ -2144,6 +2149,8 @@ rt_err_t rt_mq_control(rt_mq_t mq, rt_uint8_t cmd, void *arg)
/* enable interrupt */ /* enable interrupt */
rt_hw_interrupt_enable(level); rt_hw_interrupt_enable(level);
rt_schedule();
return RT_EOK; return RT_EOK;
} }
......
...@@ -20,6 +20,9 @@ ...@@ -20,6 +20,9 @@
#include <rtthread.h> #include <rtthread.h>
#include <rthw.h> #include <rthw.h>
/* use precision */
#define RT_PRINTF_PRECISION
/** /**
* @addtogroup KernelService * @addtogroup KernelService
*/ */
...@@ -754,11 +757,11 @@ static rt_int32_t vsnprintf(char *buf, rt_size_t size, const char *fmt, va_list ...@@ -754,11 +757,11 @@ static rt_int32_t vsnprintf(char *buf, rt_size_t size, const char *fmt, va_list
#endif #endif
/* get the conversion qualifier */ /* get the conversion qualifier */
qualifier = 0; qualifier = 0;
if (*fmt == 'h' || *fmt == 'l'
#ifdef RT_PRINTF_LONGLONG #ifdef RT_PRINTF_LONGLONG
|| *fmt == 'L' if (*fmt == 'h' || *fmt == 'l' || *fmt == 'L')
#else
if (*fmt == 'h' || *fmt == 'l')
#endif #endif
)
{ {
qualifier = *fmt; qualifier = *fmt;
++ fmt; ++ fmt;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册