arch: up_assert shouldn't call exit directly
since exit will be only callable from userspace and change the 1st argument from "const uint8_t *" to "const char *" Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com> Change-Id: I86487d57210ab63109148232da71dbc4d60a563b
This commit is contained in:
parent
774ea6eae7
commit
d6827cab60
@ -2147,7 +2147,7 @@ The specific environmental definitions are unique for each board but should incl
|
||||
|
||||
<h3><a name="upassert">4.2.13 <code>up_assert()</code></a></h3>
|
||||
<p><b>Function Prototype</b>:<br>
|
||||
<code>void up_assert(FAR const uint8_t *filename, int linenum);</code>
|
||||
<code>void up_assert(FAR const char *filename, int linenum);</code>
|
||||
</p>
|
||||
|
||||
<p><b>Description</b>.
|
||||
|
@ -283,8 +283,7 @@ static void up_dumpstate(void)
|
||||
* Name: _up_assert
|
||||
****************************************************************************/
|
||||
|
||||
static void _up_assert(int errorcode) noreturn_function;
|
||||
static void _up_assert(int errorcode)
|
||||
static void _up_assert(void)
|
||||
{
|
||||
/* Flush any buffered SYSLOG data */
|
||||
|
||||
@ -313,7 +312,6 @@ static void _up_assert(int errorcode)
|
||||
#if CONFIG_BOARD_RESET_ON_ASSERT >= 2
|
||||
board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE);
|
||||
#endif
|
||||
exit(errorcode);
|
||||
}
|
||||
}
|
||||
|
||||
@ -325,7 +323,7 @@ static void _up_assert(int errorcode)
|
||||
* Name: up_assert
|
||||
****************************************************************************/
|
||||
|
||||
void up_assert(const uint8_t *filename, int lineno)
|
||||
void up_assert(const char *filename, int lineno)
|
||||
{
|
||||
#if CONFIG_TASK_NAME_SIZE > 0 && defined(CONFIG_DEBUG_ALERT)
|
||||
struct tcb_s *rtcb = running_task();
|
||||
@ -355,5 +353,5 @@ void up_assert(const uint8_t *filename, int lineno)
|
||||
board_crashdump(arm_getsp(), running_task(), filename, lineno);
|
||||
#endif
|
||||
|
||||
_up_assert(EXIT_FAILURE);
|
||||
_up_assert();
|
||||
}
|
||||
|
@ -340,8 +340,7 @@ static void up_dumpstate(void)
|
||||
* Name: _up_assert
|
||||
****************************************************************************/
|
||||
|
||||
static void _up_assert(int errorcode) noreturn_function;
|
||||
static void _up_assert(int errorcode)
|
||||
static void _up_assert(void)
|
||||
{
|
||||
/* Flush any buffered SYSLOG data */
|
||||
|
||||
@ -370,7 +369,6 @@ static void _up_assert(int errorcode)
|
||||
#if CONFIG_BOARD_RESET_ON_ASSERT >= 2
|
||||
board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE);
|
||||
#endif
|
||||
exit(errorcode);
|
||||
}
|
||||
}
|
||||
|
||||
@ -382,7 +380,7 @@ static void _up_assert(int errorcode)
|
||||
* Name: up_assert
|
||||
****************************************************************************/
|
||||
|
||||
void up_assert(const uint8_t *filename, int lineno)
|
||||
void up_assert(const char *filename, int lineno)
|
||||
{
|
||||
#if CONFIG_TASK_NAME_SIZE > 0 && defined(CONFIG_DEBUG_ALERT)
|
||||
struct tcb_s *rtcb = running_task();
|
||||
@ -412,5 +410,5 @@ void up_assert(const uint8_t *filename, int lineno)
|
||||
board_crashdump(arm_getsp(), running_task(), filename, lineno);
|
||||
#endif
|
||||
|
||||
_up_assert(EXIT_FAILURE);
|
||||
_up_assert();
|
||||
}
|
||||
|
@ -353,8 +353,7 @@ static void up_dumpstate(void)
|
||||
* Name: _up_assert
|
||||
****************************************************************************/
|
||||
|
||||
static void _up_assert(int errorcode) noreturn_function;
|
||||
static void _up_assert(int errorcode)
|
||||
static void _up_assert(void)
|
||||
{
|
||||
/* Flush any buffered SYSLOG data */
|
||||
|
||||
@ -394,7 +393,6 @@ static void _up_assert(int errorcode)
|
||||
#if CONFIG_BOARD_RESET_ON_ASSERT >= 2
|
||||
board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE);
|
||||
#endif
|
||||
exit(errorcode);
|
||||
}
|
||||
}
|
||||
|
||||
@ -406,7 +404,7 @@ static void _up_assert(int errorcode)
|
||||
* Name: up_assert
|
||||
****************************************************************************/
|
||||
|
||||
void up_assert(const uint8_t *filename, int lineno)
|
||||
void up_assert(const char *filename, int lineno)
|
||||
{
|
||||
#if CONFIG_TASK_NAME_SIZE > 0 && defined(CONFIG_DEBUG_ALERT)
|
||||
struct tcb_s *rtcb = running_task();
|
||||
@ -446,5 +444,5 @@ void up_assert(const uint8_t *filename, int lineno)
|
||||
board_crashdump(arm_getsp(), running_task(), filename, lineno);
|
||||
#endif
|
||||
|
||||
_up_assert(EXIT_FAILURE);
|
||||
_up_assert();
|
||||
}
|
||||
|
@ -347,8 +347,7 @@ static void up_dumpstate(void)
|
||||
* Name: _up_assert
|
||||
****************************************************************************/
|
||||
|
||||
static void _up_assert(int errorcode) noreturn_function;
|
||||
static void _up_assert(int errorcode)
|
||||
static void _up_assert(void)
|
||||
{
|
||||
/* Flush any buffered SYSLOG data */
|
||||
|
||||
@ -383,7 +382,6 @@ static void _up_assert(int errorcode)
|
||||
#if CONFIG_BOARD_RESET_ON_ASSERT >= 2
|
||||
board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE);
|
||||
#endif
|
||||
exit(errorcode);
|
||||
}
|
||||
}
|
||||
|
||||
@ -395,7 +393,7 @@ static void _up_assert(int errorcode)
|
||||
* Name: up_assert
|
||||
****************************************************************************/
|
||||
|
||||
void up_assert(const uint8_t *filename, int lineno)
|
||||
void up_assert(const char *filename, int lineno)
|
||||
{
|
||||
#if CONFIG_TASK_NAME_SIZE > 0 && defined(CONFIG_DEBUG_ALERT)
|
||||
struct tcb_s *rtcb = running_task();
|
||||
@ -435,5 +433,5 @@ void up_assert(const uint8_t *filename, int lineno)
|
||||
board_crashdump(arm_getsp(), running_task(), filename, lineno);
|
||||
#endif
|
||||
|
||||
_up_assert(EXIT_FAILURE);
|
||||
_up_assert();
|
||||
}
|
||||
|
@ -333,8 +333,7 @@ static void up_dumpstate(void)
|
||||
* Name: _up_assert
|
||||
****************************************************************************/
|
||||
|
||||
static void _up_assert(int errorcode) noreturn_function;
|
||||
static void _up_assert(int errorcode)
|
||||
static void _up_assert(void)
|
||||
{
|
||||
/* Flush any buffered SYSLOG data */
|
||||
|
||||
@ -363,7 +362,6 @@ static void _up_assert(int errorcode)
|
||||
#if CONFIG_BOARD_RESET_ON_ASSERT >= 2
|
||||
board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE);
|
||||
#endif
|
||||
exit(errorcode);
|
||||
}
|
||||
}
|
||||
|
||||
@ -375,7 +373,7 @@ static void _up_assert(int errorcode)
|
||||
* Name: up_assert
|
||||
****************************************************************************/
|
||||
|
||||
void up_assert(const uint8_t *filename, int lineno)
|
||||
void up_assert(const char *filename, int lineno)
|
||||
{
|
||||
#if CONFIG_TASK_NAME_SIZE > 0 && defined(CONFIG_DEBUG_ALERT)
|
||||
struct tcb_s *rtcb = running_task();
|
||||
@ -405,5 +403,5 @@ void up_assert(const uint8_t *filename, int lineno)
|
||||
board_crashdump(arm_getsp(), running_task(), filename, lineno);
|
||||
#endif
|
||||
|
||||
_up_assert(EXIT_FAILURE);
|
||||
_up_assert();
|
||||
}
|
||||
|
@ -347,8 +347,7 @@ static void up_dumpstate(void)
|
||||
* Name: _up_assert
|
||||
****************************************************************************/
|
||||
|
||||
static void _up_assert(int errorcode) noreturn_function;
|
||||
static void _up_assert(int errorcode)
|
||||
static void _up_assert(void)
|
||||
{
|
||||
/* Flush any buffered SYSLOG data */
|
||||
|
||||
@ -383,7 +382,6 @@ static void _up_assert(int errorcode)
|
||||
#if CONFIG_BOARD_RESET_ON_ASSERT >= 2
|
||||
board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE);
|
||||
#endif
|
||||
exit(errorcode);
|
||||
}
|
||||
}
|
||||
|
||||
@ -395,7 +393,7 @@ static void _up_assert(int errorcode)
|
||||
* Name: up_assert
|
||||
****************************************************************************/
|
||||
|
||||
void up_assert(const uint8_t *filename, int lineno)
|
||||
void up_assert(const char *filename, int lineno)
|
||||
{
|
||||
#if CONFIG_TASK_NAME_SIZE > 0 && defined(CONFIG_DEBUG_ALERT)
|
||||
struct tcb_s *rtcb = running_task();
|
||||
@ -435,5 +433,5 @@ void up_assert(const uint8_t *filename, int lineno)
|
||||
board_crashdump(arm_getsp(), running_task(), filename, lineno);
|
||||
#endif
|
||||
|
||||
_up_assert(EXIT_FAILURE);
|
||||
_up_assert();
|
||||
}
|
||||
|
@ -79,8 +79,7 @@
|
||||
* Name: _up_assert
|
||||
****************************************************************************/
|
||||
|
||||
static void _up_assert(int errorcode) noreturn_function;
|
||||
static void _up_assert(int errorcode)
|
||||
static void _up_assert(void)
|
||||
{
|
||||
/* Flush any buffered SYSLOG data */
|
||||
|
||||
@ -109,7 +108,6 @@ static void _up_assert(int errorcode)
|
||||
#if CONFIG_BOARD_RESET_ON_ASSERT >= 2
|
||||
board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE);
|
||||
#endif
|
||||
exit(errorcode);
|
||||
}
|
||||
}
|
||||
|
||||
@ -145,7 +143,7 @@ static int assert_tracecallback(FAR struct usbtrace_s *trace, FAR void *arg)
|
||||
* Name: up_assert
|
||||
****************************************************************************/
|
||||
|
||||
void up_assert(const uint8_t *filename, int lineno)
|
||||
void up_assert(const char *filename, int lineno)
|
||||
{
|
||||
#if CONFIG_TASK_NAME_SIZE > 0 && defined(CONFIG_DEBUG_ALERT)
|
||||
struct tcb_s *rtcb = running_task();
|
||||
@ -181,5 +179,5 @@ void up_assert(const uint8_t *filename, int lineno)
|
||||
usbtrace_enumerate(assert_tracecallback, NULL);
|
||||
#endif
|
||||
|
||||
_up_assert(EXIT_FAILURE);
|
||||
_up_assert();
|
||||
}
|
||||
|
@ -285,8 +285,7 @@ static void up_dumpstate(void)
|
||||
* Name: _up_assert
|
||||
****************************************************************************/
|
||||
|
||||
static void _up_assert(int errorcode) noreturn_function;
|
||||
static void _up_assert(int errorcode)
|
||||
static void _up_assert(void)
|
||||
{
|
||||
/* Flush any buffered SYSLOG data */
|
||||
|
||||
@ -315,7 +314,6 @@ static void _up_assert(int errorcode)
|
||||
#if CONFIG_BOARD_RESET_ON_ASSERT >= 2
|
||||
board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE);
|
||||
#endif
|
||||
exit(errorcode);
|
||||
}
|
||||
}
|
||||
|
||||
@ -327,7 +325,7 @@ static void _up_assert(int errorcode)
|
||||
* Name: up_assert
|
||||
****************************************************************************/
|
||||
|
||||
void up_assert(const uint8_t *filename, int lineno)
|
||||
void up_assert(const char *filename, int lineno)
|
||||
{
|
||||
#if CONFIG_TASK_NAME_SIZE > 0 && defined(CONFIG_DEBUG_ALERT)
|
||||
struct tcb_s *rtcb = running_task();
|
||||
@ -357,5 +355,5 @@ void up_assert(const uint8_t *filename, int lineno)
|
||||
board_crashdump(hc_getsp(), running_task(), filename, lineno);
|
||||
#endif
|
||||
|
||||
_up_assert(EXIT_FAILURE);
|
||||
_up_assert();
|
||||
}
|
||||
|
@ -78,8 +78,7 @@
|
||||
* Name: _up_assert
|
||||
****************************************************************************/
|
||||
|
||||
static void _up_assert(int errorcode) noreturn_function;
|
||||
static void _up_assert(int errorcode)
|
||||
static void _up_assert(void)
|
||||
{
|
||||
/* Flush any buffered SYSLOG data */
|
||||
|
||||
@ -108,7 +107,6 @@ static void _up_assert(int errorcode)
|
||||
#if CONFIG_BOARD_RESET_ON_ASSERT >= 2
|
||||
board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE);
|
||||
#endif
|
||||
exit(errorcode);
|
||||
}
|
||||
}
|
||||
|
||||
@ -144,7 +142,7 @@ static int assert_tracecallback(FAR struct usbtrace_s *trace, FAR void *arg)
|
||||
* Name: up_assert
|
||||
****************************************************************************/
|
||||
|
||||
void up_assert(const uint8_t *filename, int lineno)
|
||||
void up_assert(const char *filename, int lineno)
|
||||
{
|
||||
#if CONFIG_TASK_NAME_SIZE > 0 && defined(CONFIG_DEBUG_ALERT)
|
||||
struct tcb_s *rtcb = running_task();
|
||||
@ -180,5 +178,5 @@ void up_assert(const uint8_t *filename, int lineno)
|
||||
board_crashdump(mips_getsp(), running_task(), filename, lineno);
|
||||
#endif
|
||||
|
||||
_up_assert(EXIT_FAILURE);
|
||||
_up_assert();
|
||||
}
|
||||
|
@ -78,8 +78,7 @@
|
||||
* Name: _up_assert
|
||||
****************************************************************************/
|
||||
|
||||
static void _up_assert(int errorcode) noreturn_function;
|
||||
static void _up_assert(int errorcode)
|
||||
static void _up_assert(void)
|
||||
{
|
||||
/* Flush any buffered SYSLOG data */
|
||||
|
||||
@ -113,7 +112,6 @@ static void _up_assert(int errorcode)
|
||||
#if CONFIG_BOARD_RESET_ON_ASSERT >= 2
|
||||
board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE);
|
||||
#endif
|
||||
exit(errorcode);
|
||||
}
|
||||
}
|
||||
|
||||
@ -149,7 +147,7 @@ static int assert_tracecallback(FAR struct usbtrace_s *trace, FAR void *arg)
|
||||
* Name: up_assert
|
||||
****************************************************************************/
|
||||
|
||||
void up_assert(const uint8_t *filename, int lineno)
|
||||
void up_assert(const char *filename, int lineno)
|
||||
{
|
||||
#if CONFIG_TASK_NAME_SIZE > 0 && defined(CONFIG_DEBUG_ALERT)
|
||||
struct tcb_s *rtcb = running_task();
|
||||
@ -185,5 +183,5 @@ void up_assert(const uint8_t *filename, int lineno)
|
||||
board_crashdump(misoc_getsp(), running_task(), filename, lineno);
|
||||
#endif
|
||||
|
||||
_up_assert(EXIT_FAILURE);
|
||||
_up_assert();
|
||||
}
|
||||
|
@ -78,8 +78,7 @@
|
||||
* Name: _up_assert
|
||||
****************************************************************************/
|
||||
|
||||
static void _up_assert(int errorcode) noreturn_function;
|
||||
static void _up_assert(int errorcode)
|
||||
static void _up_assert(void)
|
||||
{
|
||||
/* Flush any buffered SYSLOG data */
|
||||
|
||||
@ -113,7 +112,6 @@ static void _up_assert(int errorcode)
|
||||
#if CONFIG_BOARD_RESET_ON_ASSERT >= 2
|
||||
board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE);
|
||||
#endif
|
||||
exit(errorcode);
|
||||
}
|
||||
}
|
||||
|
||||
@ -149,7 +147,7 @@ static int assert_tracecallback(FAR struct usbtrace_s *trace, FAR void *arg)
|
||||
* Name: up_assert
|
||||
****************************************************************************/
|
||||
|
||||
void up_assert(const uint8_t * filename, int lineno)
|
||||
void up_assert(const char *filename, int lineno)
|
||||
{
|
||||
#if CONFIG_TASK_NAME_SIZE > 0 && defined(CONFIG_DEBUG_ALERT)
|
||||
struct tcb_s *rtcb = running_task();
|
||||
@ -184,5 +182,5 @@ void up_assert(const uint8_t * filename, int lineno)
|
||||
board_crashdump(misoc_getsp(), running_task(), filename, lineno);
|
||||
#endif
|
||||
|
||||
_up_assert(EXIT_FAILURE);
|
||||
_up_assert();
|
||||
}
|
||||
|
@ -340,8 +340,7 @@ static void up_dumpstate(void)
|
||||
* Name: _up_assert
|
||||
****************************************************************************/
|
||||
|
||||
static void _up_assert(int errorcode) noreturn_function;
|
||||
static void _up_assert(int errorcode)
|
||||
static void _up_assert(void)
|
||||
{
|
||||
/* Flush any buffered SYSLOG data */
|
||||
|
||||
@ -370,7 +369,6 @@ static void _up_assert(int errorcode)
|
||||
#if CONFIG_BOARD_RESET_ON_ASSERT >= 2
|
||||
board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE);
|
||||
#endif
|
||||
exit(errorcode);
|
||||
}
|
||||
}
|
||||
|
||||
@ -382,7 +380,7 @@ static void _up_assert(int errorcode)
|
||||
* Name: up_assert
|
||||
****************************************************************************/
|
||||
|
||||
void up_assert(const uint8_t *filename, int lineno)
|
||||
void up_assert(const char *filename, int lineno)
|
||||
{
|
||||
#if CONFIG_TASK_NAME_SIZE > 0 && defined(CONFIG_DEBUG_ALERT)
|
||||
struct tcb_s *rtcb = running_task();
|
||||
@ -412,5 +410,5 @@ void up_assert(const uint8_t *filename, int lineno)
|
||||
board_crashdump(or1k_getsp(), running_task(), filename, lineno);
|
||||
#endif
|
||||
|
||||
_up_assert(EXIT_FAILURE);
|
||||
_up_assert();
|
||||
}
|
||||
|
@ -79,8 +79,7 @@
|
||||
* Name: _up_assert
|
||||
****************************************************************************/
|
||||
|
||||
static void _up_assert(int errorcode) noreturn_function;
|
||||
static void _up_assert(int errorcode)
|
||||
static void _up_assert(void)
|
||||
{
|
||||
/* Flush any buffered SYSLOG data */
|
||||
|
||||
@ -108,7 +107,6 @@ static void _up_assert(int errorcode)
|
||||
#if CONFIG_BOARD_RESET_ON_ASSERT >= 2
|
||||
board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE);
|
||||
#endif
|
||||
exit(errorcode);
|
||||
}
|
||||
}
|
||||
|
||||
@ -144,7 +142,7 @@ static int assert_tracecallback(FAR struct usbtrace_s *trace, FAR void *arg)
|
||||
* Name: up_assert
|
||||
****************************************************************************/
|
||||
|
||||
void up_assert(const uint8_t *filename, int lineno)
|
||||
void up_assert(const char *filename, int lineno)
|
||||
{
|
||||
#if CONFIG_TASK_NAME_SIZE > 0 && defined(CONFIG_DEBUG_ALERT)
|
||||
struct tcb_s *rtcb = running_task();
|
||||
@ -180,5 +178,5 @@ void up_assert(const uint8_t *filename, int lineno)
|
||||
board_crashdump(renesas_getsp(), running_task(), filename, lineno);
|
||||
#endif
|
||||
|
||||
_up_assert(EXIT_FAILURE);
|
||||
_up_assert();
|
||||
}
|
||||
|
@ -278,8 +278,7 @@ static void up_dumpstate(void)
|
||||
* Name: _up_assert
|
||||
****************************************************************************/
|
||||
|
||||
static void _up_assert(int errorcode) noreturn_function;
|
||||
static void _up_assert(int errorcode)
|
||||
static void _up_assert(void)
|
||||
{
|
||||
/* Flush any buffered SYSLOG data */
|
||||
|
||||
@ -308,7 +307,6 @@ static void _up_assert(int errorcode)
|
||||
#if CONFIG_BOARD_RESET_ON_ASSERT >= 2
|
||||
board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE);
|
||||
#endif
|
||||
exit(errorcode);
|
||||
}
|
||||
}
|
||||
|
||||
@ -344,7 +342,7 @@ static int assert_tracecallback(FAR struct usbtrace_s *trace, FAR void *arg)
|
||||
* Name: up_assert
|
||||
****************************************************************************/
|
||||
|
||||
void up_assert(const uint8_t *filename, int lineno)
|
||||
void up_assert(const char *filename, int lineno)
|
||||
{
|
||||
#if CONFIG_TASK_NAME_SIZE > 0 && defined(CONFIG_DEBUG_ALERT)
|
||||
struct tcb_s *rtcb = running_task();
|
||||
@ -384,5 +382,5 @@ void up_assert(const uint8_t *filename, int lineno)
|
||||
board_crashdump(riscv_getsp(), running_task(), filename, lineno);
|
||||
#endif
|
||||
|
||||
_up_assert(EXIT_FAILURE);
|
||||
_up_assert();
|
||||
}
|
||||
|
@ -287,8 +287,7 @@ static void up_dumpstate(void)
|
||||
* Name: _up_assert
|
||||
****************************************************************************/
|
||||
|
||||
static void _up_assert(int errorcode) noreturn_function;
|
||||
static void _up_assert(int errorcode)
|
||||
static void _up_assert(void)
|
||||
{
|
||||
/* Flush any buffered SYSLOG data */
|
||||
|
||||
@ -323,7 +322,6 @@ static void _up_assert(int errorcode)
|
||||
#if CONFIG_BOARD_RESET_ON_ASSERT >= 2
|
||||
board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE);
|
||||
#endif
|
||||
exit(errorcode);
|
||||
}
|
||||
}
|
||||
|
||||
@ -359,7 +357,7 @@ static int assert_tracecallback(FAR struct usbtrace_s *trace, FAR void *arg)
|
||||
* Name: up_assert
|
||||
****************************************************************************/
|
||||
|
||||
void up_assert(const uint8_t *filename, int lineno)
|
||||
void up_assert(const char *filename, int lineno)
|
||||
{
|
||||
#if CONFIG_TASK_NAME_SIZE > 0 && defined(CONFIG_DEBUG_ALERT)
|
||||
struct tcb_s *rtcb = running_task();
|
||||
@ -415,5 +413,5 @@ void up_assert(const uint8_t *filename, int lineno)
|
||||
board_crashdump(riscv_getsp(), running_task(), filename, lineno);
|
||||
#endif
|
||||
|
||||
_up_assert(EXIT_FAILURE);
|
||||
_up_assert();
|
||||
}
|
||||
|
@ -108,7 +108,7 @@ int main(int argc, char **argv, char **envp)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
void up_assert(const uint8_t *filename, int line)
|
||||
void up_assert(const char *filename, int line)
|
||||
{
|
||||
/* Show the location of the failed assertion */
|
||||
|
||||
|
@ -246,8 +246,7 @@ static void up_dumpstate(void)
|
||||
* Name: _up_assert
|
||||
****************************************************************************/
|
||||
|
||||
static void _up_assert(int errorcode) noreturn_function;
|
||||
static void _up_assert(int errorcode)
|
||||
static void _up_assert(void)
|
||||
{
|
||||
/* Flush any buffered SYSLOG data */
|
||||
|
||||
@ -276,7 +275,6 @@ static void _up_assert(int errorcode)
|
||||
#if CONFIG_BOARD_RESET_ON_ASSERT >= 2
|
||||
board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE);
|
||||
#endif
|
||||
exit(errorcode);
|
||||
}
|
||||
}
|
||||
|
||||
@ -288,7 +286,7 @@ static void _up_assert(int errorcode)
|
||||
* Name: up_assert
|
||||
****************************************************************************/
|
||||
|
||||
void up_assert(const uint8_t *filename, int lineno)
|
||||
void up_assert(const char *filename, int lineno)
|
||||
{
|
||||
#if CONFIG_TASK_NAME_SIZE > 0 && defined(CONFIG_DEBUG_ALERT)
|
||||
struct tcb_s *rtcb = running_task();
|
||||
@ -318,5 +316,5 @@ void up_assert(const uint8_t *filename, int lineno)
|
||||
board_crashdump(x86_getsp(), running_task(), filename, lineno);
|
||||
#endif
|
||||
|
||||
_up_assert(EXIT_FAILURE);
|
||||
_up_assert();
|
||||
}
|
||||
|
@ -52,6 +52,10 @@
|
||||
# undef CONFIG_ARCH_USBDUMP
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_BOARD_RESET_ON_ASSERT
|
||||
# define CONFIG_BOARD_RESET_ON_ASSERT 0
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Private Functions
|
||||
****************************************************************************/
|
||||
@ -208,8 +212,7 @@ static void up_dumpstate(void)
|
||||
* Name: _up_assert
|
||||
****************************************************************************/
|
||||
|
||||
static void _up_assert(int errorcode) noreturn_function;
|
||||
static void _up_assert(int errorcode)
|
||||
static void _up_assert(void)
|
||||
{
|
||||
/* Are we in an interrupt handler or the idle task? */
|
||||
|
||||
@ -218,6 +221,9 @@ static void _up_assert(int errorcode)
|
||||
(void)up_irq_save();
|
||||
for (; ; )
|
||||
{
|
||||
#if CONFIG_BOARD_RESET_ON_ASSERT >= 1
|
||||
board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE);
|
||||
#endif
|
||||
#ifdef CONFIG_ARCH_LEDS
|
||||
board_autoled_on(LED_PANIC);
|
||||
up_mdelay(250);
|
||||
@ -228,7 +234,11 @@ static void _up_assert(int errorcode)
|
||||
}
|
||||
else
|
||||
{
|
||||
exit(errorcode);
|
||||
/* Assertions in other contexts only cause the thread to exit */
|
||||
|
||||
#if CONFIG_BOARD_RESET_ON_ASSERT >= 2
|
||||
board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@ -240,7 +250,7 @@ static void _up_assert(int errorcode)
|
||||
* Name: up_assert
|
||||
****************************************************************************/
|
||||
|
||||
void up_assert(const uint8_t *filename, int lineno)
|
||||
void up_assert(const char *filename, int lineno)
|
||||
{
|
||||
#if CONFIG_TASK_NAME_SIZE > 0 && defined(CONFIG_DEBUG_ALERT)
|
||||
struct tcb_s *rtcb = this_task();
|
||||
@ -262,5 +272,5 @@ void up_assert(const uint8_t *filename, int lineno)
|
||||
board_crashdump(x64_getsp(), this_task(), filename, lineno);
|
||||
#endif
|
||||
|
||||
_up_assert(EXIT_FAILURE);
|
||||
_up_assert();
|
||||
}
|
||||
|
@ -101,8 +101,7 @@ static int assert_tracecallback(FAR struct usbtrace_s *trace, FAR void *arg)
|
||||
* Name: xtensa_assert
|
||||
****************************************************************************/
|
||||
|
||||
static void xtensa_assert(int errorcode) noreturn_function;
|
||||
static void xtensa_assert(int errorcode)
|
||||
static void xtensa_assert(void)
|
||||
{
|
||||
/* Dump the processor state */
|
||||
|
||||
@ -151,7 +150,6 @@ static void xtensa_assert(int errorcode)
|
||||
#if CONFIG_BOARD_RESET_ON_ASSERT >= 2
|
||||
board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE);
|
||||
#endif
|
||||
exit(errorcode);
|
||||
}
|
||||
}
|
||||
|
||||
@ -163,7 +161,7 @@ static void xtensa_assert(int errorcode)
|
||||
* Name: up_assert
|
||||
****************************************************************************/
|
||||
|
||||
void up_assert(const uint8_t *filename, int lineno)
|
||||
void up_assert(const char *filename, int lineno)
|
||||
{
|
||||
#if CONFIG_TASK_NAME_SIZE > 0 && defined(CONFIG_DEBUG_ALERT)
|
||||
struct tcb_s *rtcb = running_task();
|
||||
@ -183,7 +181,7 @@ void up_assert(const uint8_t *filename, int lineno)
|
||||
filename, lineno);
|
||||
#endif
|
||||
|
||||
xtensa_assert(EXIT_FAILURE);
|
||||
xtensa_assert();
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
@ -229,7 +227,7 @@ void xtensa_panic(int xptcode, uint32_t *regs)
|
||||
#endif
|
||||
|
||||
CURRENT_REGS = regs;
|
||||
xtensa_assert(EXIT_FAILURE); /* Should not return */
|
||||
xtensa_assert(); /* Should not return */
|
||||
for (; ; );
|
||||
}
|
||||
|
||||
@ -334,6 +332,6 @@ void xtensa_user_panic(int exccause, uint32_t *regs)
|
||||
#endif
|
||||
|
||||
CURRENT_REGS = regs;
|
||||
xtensa_assert(EXIT_FAILURE); /* Should not return */
|
||||
xtensa_assert(); /* Should not return */
|
||||
for (; ; );
|
||||
}
|
||||
|
@ -63,7 +63,7 @@
|
||||
* Name: _up_assert
|
||||
****************************************************************************/
|
||||
|
||||
static void _up_assert(int errorcode) /* noreturn_function */
|
||||
static void _up_assert(void)
|
||||
{
|
||||
/* Flush any buffered SYSLOG data */
|
||||
|
||||
@ -92,7 +92,6 @@ static void _up_assert(int errorcode) /* noreturn_function */
|
||||
#if CONFIG_BOARD_RESET_ON_ASSERT >= 2
|
||||
board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE);
|
||||
#endif
|
||||
exit(errorcode);
|
||||
}
|
||||
}
|
||||
|
||||
@ -128,11 +127,7 @@ static int assert_tracecallback(FAR struct usbtrace_s *trace, FAR void *arg)
|
||||
* Name: up_assert
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_HAVE_FILENAME
|
||||
void up_assert(const uint8_t *filename, int lineno)
|
||||
#else
|
||||
void up_assert(void)
|
||||
#endif
|
||||
void up_assert(const char *filename, int lineno)
|
||||
{
|
||||
#if CONFIG_TASK_NAME_SIZE > 0 && defined(CONFIG_DEBUG_ALERT)
|
||||
struct tcb_s *rtcb = running_task();
|
||||
@ -144,20 +139,12 @@ void up_assert(void)
|
||||
|
||||
syslog_flush();
|
||||
|
||||
#ifdef CONFIG_HAVE_FILENAME
|
||||
#if CONFIG_TASK_NAME_SIZE > 0
|
||||
_alert("Assertion failed at file:%s line: %d task: %s\n",
|
||||
filename, lineno, rtcb->name);
|
||||
#else
|
||||
_alert("Assertion failed at file:%s line: %d\n",
|
||||
filename, lineno);
|
||||
#endif
|
||||
#else
|
||||
#if CONFIG_TASK_NAME_SIZE > 0 && defined(CONFIG_DEBUG_ALERT)
|
||||
_alert("Assertion failed: task: %s\n", rtcb->name);
|
||||
#else
|
||||
_alert("Assertion failed\n");
|
||||
#endif
|
||||
#endif
|
||||
|
||||
z16_registerdump();
|
||||
@ -177,5 +164,5 @@ void up_assert(void)
|
||||
board_crashdump(z16_getsp(), running_task(), filename, lineno);
|
||||
#endif
|
||||
|
||||
_up_assert(EXIT_FAILURE);
|
||||
_up_assert();
|
||||
}
|
||||
|
@ -62,7 +62,7 @@
|
||||
* Name: _up_assert
|
||||
****************************************************************************/
|
||||
|
||||
static void _up_assert(int errorcode) /* noreturn_function */
|
||||
static void _up_assert(void)
|
||||
{
|
||||
/* Flush any buffered SYSLOG data */
|
||||
|
||||
@ -91,7 +91,6 @@ static void _up_assert(int errorcode) /* noreturn_function */
|
||||
#if CONFIG_BOARD_RESET_ON_ASSERT >= 2
|
||||
board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE);
|
||||
#endif
|
||||
exit(errorcode);
|
||||
}
|
||||
}
|
||||
|
||||
@ -127,11 +126,7 @@ static int assert_tracecallback(struct usbtrace_s *trace, void *arg)
|
||||
* Name: up_assert
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_HAVE_FILENAME
|
||||
void up_assert(const uint8_t *filename, int lineno)
|
||||
#else
|
||||
void up_assert(void)
|
||||
#endif
|
||||
void up_assert(const char *filename, int lineno)
|
||||
{
|
||||
#if CONFIG_TASK_NAME_SIZE > 0 && defined(CONFIG_DEBUG_ALERT)
|
||||
struct tcb_s *rtcb = running_task();
|
||||
@ -143,20 +138,12 @@ void up_assert(void)
|
||||
|
||||
syslog_flush();
|
||||
|
||||
#ifdef CONFIG_HAVE_FILENAME
|
||||
#if CONFIG_TASK_NAME_SIZE > 0
|
||||
_alert("Assertion failed at file:%s line: %d task: %s\n",
|
||||
filename, lineno, rtcb->name);
|
||||
#else
|
||||
_alert("Assertion failed at file:%s line: %d\n",
|
||||
filename, lineno);
|
||||
#endif
|
||||
#else
|
||||
#if CONFIG_TASK_NAME_SIZE > 0
|
||||
_alert("Assertion failed: task: %s\n", rtcb->name);
|
||||
#else
|
||||
_alert("Assertion failed\n");
|
||||
#endif
|
||||
#endif
|
||||
|
||||
REGISTER_DUMP();
|
||||
@ -178,5 +165,5 @@ void up_assert(void)
|
||||
board_crashdump(z80_getsp(), running_task(), filename, lineno);
|
||||
#endif
|
||||
|
||||
_up_assert(EXIT_FAILURE);
|
||||
_up_assert();
|
||||
}
|
||||
|
@ -1,7 +1,8 @@
|
||||
/****************************************************************************
|
||||
* include/assert.h
|
||||
*
|
||||
* Copyright (C) 2007-2009, 2011-2013, 2015-2016 Gregory Nutt. All rights reserved.
|
||||
* Copyright (C) 2007-2009, 2011-2013, 2015-2016 Gregory Nutt.
|
||||
* All rights reserved.
|
||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
*
|
||||
* Copyright (C) 2016 Omni Hoverboards Inc. All rights reserved.
|
||||
@ -60,9 +61,9 @@
|
||||
#undef DEBUGVERIFY /* Like VERIFY, but only if CONFIG_DEBUG_ASSERTIONS is defined */
|
||||
|
||||
#ifdef CONFIG_HAVE_FILENAME
|
||||
# define PANIC() up_assert((const uint8_t *)__FILE__, (int)__LINE__)
|
||||
# define PANIC() _assert(__FILE__, __LINE__)
|
||||
#else
|
||||
# define PANIC() up_assert()
|
||||
# define PANIC() _assert("unknown", 0)
|
||||
#endif
|
||||
|
||||
#define ASSERT(f) do { if (!(f)) PANIC(); } while (0)
|
||||
@ -117,11 +118,7 @@ extern "C"
|
||||
* Public Function Prototypes
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_HAVE_FILENAME
|
||||
void up_assert(FAR const uint8_t *filename, int linenum) noreturn_function;
|
||||
#else
|
||||
void up_assert(void) noreturn_function;
|
||||
#endif
|
||||
void _assert(FAR const char *filename, int linenum) noreturn_function;
|
||||
|
||||
#undef EXTERN
|
||||
#ifdef __cplusplus
|
||||
|
@ -475,7 +475,7 @@ void up_exit() noreturn_function;
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/* Prototype is in assert.h */
|
||||
void up_assert(FAR const char *filename, int linenum);
|
||||
|
||||
/****************************************************************************
|
||||
* Name: up_schedule_sigaction
|
||||
|
@ -48,6 +48,10 @@
|
||||
# include <assert.h>
|
||||
#endif
|
||||
|
||||
/* Now include architecture-specific types */
|
||||
|
||||
#include <arch/irq.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
@ -118,10 +122,6 @@ typedef uint32_t irq_mapped_t;
|
||||
typedef CODE int (*xcpt_t)(int irq, FAR void *context, FAR void *arg);
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
/* Now include architecture-specific types */
|
||||
|
||||
#include <arch/irq.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Public Data
|
||||
****************************************************************************/
|
||||
|
@ -21,6 +21,7 @@
|
||||
include $(TOPDIR)/Make.defs
|
||||
|
||||
include aio/Make.defs
|
||||
include assert/Make.defs
|
||||
include audio/Make.defs
|
||||
include builtin/Make.defs
|
||||
include dirent/Make.defs
|
||||
|
26
libs/libc/assert/Make.defs
Normal file
26
libs/libc/assert/Make.defs
Normal file
@ -0,0 +1,26 @@
|
||||
############################################################################
|
||||
# libs/libc/assert/Make.defs
|
||||
#
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership. The
|
||||
# ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance with the
|
||||
# License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
############################################################################
|
||||
|
||||
CSRCS += lib_assert.c
|
||||
|
||||
# Add the assert directory to the build
|
||||
|
||||
DEPPATH += --dep-path assert
|
||||
VPATH += :assert
|
38
libs/libc/assert/lib_assert.c
Normal file
38
libs/libc/assert/lib_assert.c
Normal file
@ -0,0 +1,38 @@
|
||||
/****************************************************************************
|
||||
* libs/libc/assert/lib_assert.c
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/arch.h>
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
void _assert(FAR const char *filename, int linenum)
|
||||
{
|
||||
up_assert(filename, linenum);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
@ -178,7 +178,7 @@
|
||||
"uname","sys/utsname.h","","int","FAR struct utsname *"
|
||||
"unlink","unistd.h","!defined(CONFIG_DISABLE_MOUNTPOINT)","int","FAR const char *"
|
||||
"unsetenv","stdlib.h","!defined(CONFIG_DISABLE_ENVIRON)","int","FAR const char *"
|
||||
"up_assert","assert.h","","void","FAR const uint8_t *","int"
|
||||
"up_assert","nuttx/arch.h","","void","FAR const char *","int"
|
||||
"vfork","unistd.h","defined(CONFIG_SCHED_WAITPID) && defined(CONFIG_ARCH_HAVE_VFORK)","pid_t"
|
||||
"wait","sys/wait.h","defined(CONFIG_SCHED_WAITPID) && defined(CONFIG_SCHED_HAVE_PARENT)","pid_t","FAR int *"
|
||||
"waitid","sys/wait.h","defined(CONFIG_SCHED_WAITPID) && defined(CONFIG_SCHED_HAVE_PARENT)","int","idtype_t","id_t"," FAR siginfo_t *","int"
|
||||
|
Can't render this file because it has a wrong number of fields in line 2.
|
Loading…
Reference in New Issue
Block a user