source: rtems/cpukit/score/src/iterateoverthreads.c @ 77c330ce

4.115
Last change on this file since 77c330ce was 77c330ce, checked in by Joel Sherrill <joel.sherrill@…>, on 07/26/10 at 22:03:18

2010-07-26 Joel Sherrill <joel.sherrill@…>

  • libcsupport/src/privateenv.c, libmisc/cpuuse/cpuusagereport.c, posix/Makefile.am, posix/include/rtems/posix/key.h, posix/src/keycreate.c, posix/src/keydelete.c, score/src/iterateoverthreads.c: Since removing ITRON, the loop over all APIs for tasks has a path that cannot be reached. Either modify the code or mark tests for NULL as RTEMS_DEBUG.
  • posix/src/keyfreememory.c: New file.
  • Property mode set to 100644
File size: 1.3 KB
Line 
1/*
2 *  rtems_iterate_over_all_threads
3 *
4 *  This function operates by as follows:
5 *    for all threads
6 *         invoke specified function
7 *
8 *  COPYRIGHT (c) 1989-2010.
9 *  On-Line Applications Research Corporation (OAR).
10 *
11 *  The license and distribution terms for this file may be
12 *  found in the file LICENSE in this distribution or at
13 *  http://www.rtems.com/license/LICENSE.
14 *
15 *  $Id$
16 */
17
18#if HAVE_CONFIG_H
19#include "config.h"
20#endif
21
22#include <rtems/system.h>
23#include <rtems/score/thread.h>
24
25void rtems_iterate_over_all_threads(rtems_per_thread_routine routine)
26{
27  uint32_t             i;
28  uint32_t             api_index;
29  Thread_Control      *the_thread;
30  Objects_Information *information;
31
32  if ( !routine )
33    return;
34
35  for ( api_index = 1 ; api_index <= OBJECTS_APIS_LAST ; api_index++ ) {
36    /*
37     *  Since the removal of ITRON, this cannot occur.
38     */
39    #if defined(RTEMS_DEBUG)
40      if ( !_Objects_Information_table[ api_index ] )
41        continue;
42    #endif
43
44    information = _Objects_Information_table[ api_index ][ 1 ];
45    if ( !information )
46      continue;
47
48    for ( i=1 ; i <= information->maximum ; i++ ) {
49      the_thread = (Thread_Control *)information->local_table[ i ];
50
51      if ( !the_thread )
52        continue;
53
54      (*routine)(the_thread);
55    }
56  }
57
58}
Note: See TracBrowser for help on using the repository browser.