3131#ifdef RT_USING_SIGNALS
3232
3333#ifndef RT_SIG_INFO_MAX
34- #define RT_SIG_INFO_MAX 32
34+ #define RT_SIG_INFO_MAX 32
3535#endif
3636
3737// #define DBG_ENABLE
@@ -59,7 +59,7 @@ static void _signal_default_handler(int signo)
5959 return ;
6060}
6161
62- static void _signal_entry (void * parameter )
62+ static void _signal_entry (void * parameter )
6363{
6464 rt_thread_t tid = rt_thread_self ();
6565
@@ -68,16 +68,16 @@ static void _signal_entry(void* parameter)
6868 /* handle signal */
6969 rt_thread_handle_sig (RT_FALSE );
7070
71- /* never come back... */
72- rt_hw_interrupt_disable ();
71+ /* never come back... */
72+ rt_hw_interrupt_disable ();
7373 /* return to thread */
7474 tid -> sp = tid -> sig_ret ;
7575 tid -> sig_ret = RT_NULL ;
7676
7777 dbg_log (DBG_LOG , "switch back to: 0x%08x\n" , tid -> sp );
7878 tid -> stat &= ~RT_THREAD_STAT_SIGNAL ;
7979
80- rt_hw_context_switch_to ((rt_uint32_t )& (tid -> sp ));
80+ rt_hw_context_switch_to ((rt_uint32_t ) & (tid -> sp ));
8181}
8282
8383static void _signal_deliver (rt_thread_t tid )
@@ -92,8 +92,8 @@ static void _signal_deliver(rt_thread_t tid)
9292 {
9393 /* resume thread to handle signal */
9494 rt_thread_resume (tid );
95- /* add signal state */
96- tid -> stat |= RT_THREAD_STAT_SIGNAL ;
95+ /* add signal state */
96+ tid -> stat |= RT_THREAD_STAT_SIGNAL ;
9797
9898 rt_hw_interrupt_enable (level );
9999
@@ -104,8 +104,8 @@ static void _signal_deliver(rt_thread_t tid)
104104 {
105105 if (tid == rt_thread_self ())
106106 {
107- /* add signal state */
108- tid -> stat |= RT_THREAD_STAT_SIGNAL ;
107+ /* add signal state */
108+ tid -> stat |= RT_THREAD_STAT_SIGNAL ;
109109 rt_hw_interrupt_enable (level );
110110
111111 /* do signal action in self thread context */
@@ -116,8 +116,8 @@ static void _signal_deliver(rt_thread_t tid)
116116 tid -> stat |= RT_THREAD_STAT_SIGNAL ;
117117 /* point to the signal handle entry */
118118 tid -> sig_ret = tid -> sp ;
119- tid -> sp = rt_hw_stack_init ((void * )_signal_entry , RT_NULL ,
120- (void * )((char * )tid -> sig_ret - 32 ), RT_NULL );
119+ tid -> sp = rt_hw_stack_init ((void * )_signal_entry , RT_NULL ,
120+ (void * )((char * )tid -> sig_ret - 32 ), RT_NULL );
121121
122122 rt_hw_interrupt_enable (level );
123123 dbg_log (DBG_LOG , "signal stack pointer @ 0x%08x\n" , tid -> sp );
@@ -137,7 +137,7 @@ rt_sighandler_t rt_signal_install(int signo, rt_sighandler_t handler)
137137 rt_sighandler_t old ;
138138 rt_thread_t tid = rt_thread_self ();
139139
140- if (!sig_valid (signo )) return SIG_ERR ;
140+ if (!sig_valid (signo )) return SIG_ERR ;
141141
142142 rt_enter_critical ();
143143 if (tid -> sig_vectors == RT_NULL )
@@ -185,42 +185,42 @@ void rt_signal_unmask(int signo)
185185 rt_hw_interrupt_enable (level );
186186 _signal_deliver (tid );
187187 }
188- else
188+ else
189189 {
190190 rt_hw_interrupt_enable (level );
191191 }
192192}
193193
194194void rt_thread_handle_sig (rt_bool_t clean_state )
195195{
196- rt_base_t level ;
196+ rt_base_t level ;
197197
198198 rt_thread_t tid = rt_thread_self ();
199199 struct siginfo_node * si_node ;
200200
201- level = rt_hw_interrupt_disable ();
201+ level = rt_hw_interrupt_disable ();
202202 while (tid -> sig_pending & tid -> sig_mask )
203203 {
204204 int signo , error ;
205205 rt_sighandler_t handler ;
206206
207- si_node = (struct siginfo_node * )tid -> si_list ;
208- if (!si_node ) break ;
207+ si_node = (struct siginfo_node * )tid -> si_list ;
208+ if (!si_node ) break ;
209209
210- /* remove this sig info node from list */
210+ /* remove this sig info node from list */
211211 if (si_node -> list .next == RT_NULL )
212212 tid -> si_list = RT_NULL ;
213213 else
214- tid -> si_list = (void * )rt_slist_entry (si_node -> list .next , struct siginfo_node , list );
214+ tid -> si_list = (void * )rt_slist_entry (si_node -> list .next , struct siginfo_node , list );
215215
216216 signo = si_node -> si .si_signo ;
217217 handler = tid -> sig_vectors [signo ];
218- rt_hw_interrupt_enable (level );
218+ rt_hw_interrupt_enable (level );
219219
220220 dbg_log (DBG_LOG , "handle signal: %d, handler 0x%08x\n" , signo , handler );
221221 if (handler ) handler (signo );
222222
223- level = rt_hw_interrupt_disable ();
223+ level = rt_hw_interrupt_disable ();
224224 tid -> sig_pending &= ~sig_mask (signo );
225225 error = si_node -> si .si_errno ;
226226
@@ -229,10 +229,10 @@ void rt_thread_handle_sig(rt_bool_t clean_state)
229229 tid -> error = error ;
230230 }
231231
232- /* whether clean signal status */
233- if (clean_state == RT_TRUE ) tid -> stat &= ~RT_THREAD_STAT_SIGNAL ;
232+ /* whether clean signal status */
233+ if (clean_state == RT_TRUE ) tid -> stat &= ~RT_THREAD_STAT_SIGNAL ;
234234
235- rt_hw_interrupt_enable (level );
235+ rt_hw_interrupt_enable (level );
236236}
237237
238238void rt_thread_alloc_sig (rt_thread_t tid )
@@ -261,9 +261,9 @@ void rt_thread_free_sig(rt_thread_t tid)
261261 rt_sighandler_t * sig_vectors ;
262262
263263 level = rt_hw_interrupt_disable ();
264- si_list = (struct siginfo_node * )tid -> si_list ;
264+ si_list = (struct siginfo_node * )tid -> si_list ;
265265 tid -> si_list = RT_NULL ;
266-
266+
267267 sig_vectors = tid -> sig_vectors ;
268268 tid -> sig_vectors = RT_NULL ;
269269 rt_hw_interrupt_enable (level );
@@ -275,7 +275,8 @@ void rt_thread_free_sig(rt_thread_t tid)
275275
276276 dbg_log (DBG_LOG , "free signal info list\n" );
277277 node = & (si_list -> list );
278- do {
278+ do
279+ {
279280 si_node = rt_slist_entry (node , struct siginfo_node , list );
280281 rt_mp_free (si_node );
281282
@@ -292,8 +293,8 @@ void rt_thread_free_sig(rt_thread_t tid)
292293int rt_thread_kill (rt_thread_t tid , int sig )
293294{
294295 siginfo_t si ;
295- rt_base_t level ;
296- struct siginfo_node * si_node ;
296+ rt_base_t level ;
297+ struct siginfo_node * si_node ;
297298
298299 RT_ASSERT (tid != RT_NULL );
299300 if (!sig_valid (sig )) return - RT_EINVAL ;
@@ -304,56 +305,56 @@ int rt_thread_kill(rt_thread_t tid, int sig)
304305 si .si_code = SI_USER ;
305306 si .si_value .sival_ptr = RT_NULL ;
306307
307- level = rt_hw_interrupt_disable ();
308+ level = rt_hw_interrupt_disable ();
308309 if (tid -> sig_pending & sig_mask (sig ))
309310 {
310311 /* whether already emits this signal? */
311312 struct rt_slist_node * node ;
312313 struct siginfo_node * entry ;
313314
314- node = (struct rt_slist_node * )tid -> si_list ;
315- rt_hw_interrupt_enable (level );
315+ node = (struct rt_slist_node * )tid -> si_list ;
316+ rt_hw_interrupt_enable (level );
316317
317- /* update sig infor */
318- rt_enter_critical ();
318+ /* update sig infor */
319+ rt_enter_critical ();
319320 for (; (node ) != RT_NULL ; node = node -> next )
320321 {
321322 entry = rt_slist_entry (node , struct siginfo_node , list );
322323 if (entry -> si .si_signo == sig )
323324 {
324325 memcpy (& (entry -> si ), & si , sizeof (siginfo_t ));
325- rt_exit_critical ();
326+ rt_exit_critical ();
326327 return 0 ;
327328 }
328329 }
329- rt_exit_critical ();
330+ rt_exit_critical ();
330331
331- /* disable interrupt to protect tcb */
332- level = rt_hw_interrupt_disable ();
332+ /* disable interrupt to protect tcb */
333+ level = rt_hw_interrupt_disable ();
334+ }
335+ else
336+ {
337+ /* a new signal */
338+ tid -> sig_pending |= sig_mask (sig );
333339 }
334- else
335- {
336- /* a new signal */
337- tid -> sig_pending |= sig_mask (sig );
338- }
339- rt_hw_interrupt_enable (level );
340-
341- si_node = (struct siginfo_node * ) rt_mp_alloc (_rt_siginfo_pool , 0 );
340+ rt_hw_interrupt_enable (level );
341+
342+ si_node = (struct siginfo_node * ) rt_mp_alloc (_rt_siginfo_pool , 0 );
342343 if (si_node )
343344 {
344345 rt_slist_init (& (si_node -> list ));
345346 memcpy (& (si_node -> si ), & si , sizeof (siginfo_t ));
346347
347- level = rt_hw_interrupt_disable ();
348+ level = rt_hw_interrupt_disable ();
348349 if (!tid -> si_list ) tid -> si_list = si_node ;
349- else
350+ else
350351 {
351- struct siginfo_node * si_list ;
352+ struct siginfo_node * si_list ;
352353
353- si_list = (struct siginfo_node * )tid -> si_list ;
354+ si_list = (struct siginfo_node * )tid -> si_list ;
354355 rt_slist_append (& (si_list -> list ), & (si_node -> list ));
355356 }
356- rt_hw_interrupt_enable (level );
357+ rt_hw_interrupt_enable (level );
357358 }
358359 else
359360 {
0 commit comments