source: rtems/cpukit/score/src/schedulercbs.c @ 62181b21

4.115
Last change on this file since 62181b21 was 9b4422a2, checked in by Joel Sherrill <joel.sherrill@…>, on 05/03/12 at 15:09:24

Remove All CVS Id Strings Possible Using a Script

Script does what is expected and tries to do it as
smartly as possible.

+ remove occurrences of two blank comment lines

next to each other after Id string line removed.

+ remove entire comment blocks which only exited to

contain CVS Ids

+ If the processing left a blank line at the top of

a file, it was removed.

  • Property mode set to 100644
File size: 1.8 KB
Line 
1/*
2 *  Copyright (C) 2011 Petr Benes.
3 *  Copyright (C) 2011 On-Line Applications Research Corporation (OAR).
4 *
5 *  The license and distribution terms for this file may be
6 *  found in the file LICENSE in this distribution or at
7 *  http://www.rtems.com/license/LICENSE.
8 */
9
10#if HAVE_CONFIG_H
11#include "config.h"
12#endif
13
14#include <rtems/system.h>
15#include <rtems/config.h>
16#include <rtems/score/scheduler.h>
17#include <rtems/score/schedulercbs.h>
18#include <rtems/rtems/signal.h>
19
20Scheduler_CBS_Server **_Scheduler_CBS_Server_list;
21
22void _Scheduler_CBS_Budget_callout(
23  Thread_Control *the_thread
24)
25{
26  Priority_Control          new_priority;
27  Scheduler_CBS_Per_thread *sched_info;
28  Scheduler_CBS_Server_id   server_id;
29
30  /* Put violating task to background until the end of period. */
31  new_priority = the_thread->Start.initial_priority;
32  if ( the_thread->real_priority != new_priority )
33    the_thread->real_priority = new_priority;
34  if ( the_thread->current_priority != new_priority )
35    _Thread_Change_priority(the_thread, new_priority, true);
36
37  /* Invoke callback function if any. */
38  sched_info = (Scheduler_CBS_Per_thread *) the_thread->scheduler_info;
39  if ( sched_info->cbs_server->cbs_budget_overrun ) {
40    _Scheduler_CBS_Get_server_id(
41        sched_info->cbs_server->task_id,
42        &server_id
43    );
44    sched_info->cbs_server->cbs_budget_overrun( server_id );
45  }
46}
47
48int _Scheduler_CBS_Initialize(void)
49{
50  unsigned int i;
51  _Scheduler_CBS_Server_list = (Scheduler_CBS_Server **) _Workspace_Allocate(
52      _Scheduler_CBS_Maximum_servers * sizeof(Scheduler_CBS_Server*) );
53  if ( !_Scheduler_CBS_Server_list )
54    return SCHEDULER_CBS_ERROR_NO_MEMORY;
55  for (i = 0; i<_Scheduler_CBS_Maximum_servers; i++) {
56    _Scheduler_CBS_Server_list[i] = NULL;
57  }
58  return SCHEDULER_CBS_OK;
59}
Note: See TracBrowser for help on using the repository browser.