diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-04-04 10:56:36 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-04-15 08:37:11 +0200 |
commit | e1598a616db1e9dadfd74abeb20b1f1ec5daaa7f (patch) | |
tree | 0aabc512f4beb2b30eba7885926d06a878988855 /cpukit/score/src/schedulercbscreateserver.c | |
parent | score: Add and use RTEMS_ZERO_LENGTH_ARRAY (diff) | |
download | rtems-e1598a616db1e9dadfd74abeb20b1f1ec5daaa7f.tar.bz2 |
score: Static scheduler configuration
Do not allocate the scheduler control structures from the workspace.
This is a preparation step for configuration of clustered/partitioned
schedulers on SMP.
Diffstat (limited to 'cpukit/score/src/schedulercbscreateserver.c')
-rw-r--r-- | cpukit/score/src/schedulercbscreateserver.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/cpukit/score/src/schedulercbscreateserver.c b/cpukit/score/src/schedulercbscreateserver.c index 85ed6d4f96..486329c710 100644 --- a/cpukit/score/src/schedulercbscreateserver.c +++ b/cpukit/score/src/schedulercbscreateserver.c @@ -19,7 +19,6 @@ #endif #include <rtems/score/schedulercbs.h> -#include <rtems/score/wkspace.h> int _Scheduler_CBS_Create_server ( Scheduler_CBS_Parameters *params, @@ -37,7 +36,7 @@ int _Scheduler_CBS_Create_server ( return SCHEDULER_CBS_ERROR_INVALID_PARAMETER; for ( i = 0; i<_Scheduler_CBS_Maximum_servers; i++ ) { - if ( !_Scheduler_CBS_Server_list[i] ) + if ( !_Scheduler_CBS_Server_list[i].initialized ) break; } @@ -45,14 +44,10 @@ int _Scheduler_CBS_Create_server ( return SCHEDULER_CBS_ERROR_FULL; *server_id = i; - _Scheduler_CBS_Server_list[*server_id] = (Scheduler_CBS_Server *) - _Workspace_Allocate( sizeof(Scheduler_CBS_Server) ); - the_server = _Scheduler_CBS_Server_list[*server_id]; - if ( !the_server ) - return SCHEDULER_CBS_ERROR_NO_MEMORY; - + the_server = &_Scheduler_CBS_Server_list[*server_id]; the_server->parameters = *params; the_server->task_id = -1; the_server->cbs_budget_overrun = budget_overrun_callback; + the_server->initialized = true; return SCHEDULER_CBS_OK; } |