Changeset bebf0438 in rtems


Ignore:
Timestamp:
Sep 29, 2000, 2:48:17 PM (21 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.8, 4.9, 5, master
Children:
cf42c54c
Parents:
9f30a08b
Message:

2000-09-29 Stephan Merker <merker@…>

  • include/rtems/rtems/ratemon.h, src/ratemonperiod.c, src/ratemontimeout.c: Add next_length field so period length can be changed by the the sequence period(X), period(not X) with no intervening cancel or expiration.
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • c/src/exec/rtems/ChangeLog

    r9f30a08b rbebf0438  
     12000-09-29      Stephan Merker <merker@decrc.abb.de>
     2
     3        * include/rtems/rtems/ratemon.h, src/ratemonperiod.c,
     4        src/ratemontimeout.c: Add next_length field so period length
     5        can be changed by the the sequence period(X), period(not X)
     6        with no intervening cancel or expiration.
     7
    182000-09-04      Ralf Corsepius <corsepiu@faw.uni-ulm.de>
    29
  • c/src/exec/rtems/include/rtems/rtems/ratemon.h

    r9f30a08b rbebf0438  
    7777  unsigned32                          owner_ticks_executed_at_period;
    7878  unsigned32                          time_at_period;
     79  unsigned32                          next_length;
    7980  Thread_Control                     *owner;
    8081}   Rate_monotonic_Control;
  • c/src/exec/rtems/src/ratemonperiod.c

    r9f30a08b rbebf0438  
    9696
    9797          the_period->time_at_period = _Watchdog_Ticks_since_boot;
     98          the_period->next_length = length;
    9899
    99100          _Watchdog_Insert_ticks( &the_period->Timer, length );
     
    104105          /*
    105106           *  This tells the _Rate_monotonic_Timeout that this task is
    106            *  in the process of blocking on the period.
     107           *  in the process of blocking on the period and that we
     108           *  may be changing the length of the next period.
    107109           */
    108110
    109111          the_period->state = RATE_MONOTONIC_OWNER_IS_BLOCKING;
     112          the_period->next_length = length;
     113
    110114          _ISR_Enable( level );
    111115
     
    141145            _Thread_Executing->ticks_executed;
    142146          the_period->time_at_period = _Watchdog_Ticks_since_boot;
     147          the_period->next_length = length;
    143148
    144149          _Watchdog_Insert_ticks( &the_period->Timer, length );
  • c/src/exec/rtems/src/ratemontimeout.c

    r9f30a08b rbebf0438  
    4545  Thread_Control         *the_thread;
    4646
     47  /*
     48   *  When we get here, the Timer is already off the chain so we do not
     49   *  have to worry about that -- hence no _Watchdog_Remove().
     50   */
     51
    4752  the_period = _Rate_monotonic_Get( id, &location );
    4853  switch ( location ) {
     
    6166        the_period->time_at_period = _Watchdog_Ticks_since_boot;
    6267
    63         _Watchdog_Reset( &the_period->Timer );
     68        _Watchdog_Insert_ticks( &the_period->Timer, the_period->next_length );
    6469      } else if ( the_period->state == RATE_MONOTONIC_OWNER_IS_BLOCKING ) {
    6570        the_period->state = RATE_MONOTONIC_EXPIRED_WHILE_BLOCKING;
     
    6873
    6974        the_period->time_at_period = _Watchdog_Ticks_since_boot;
    70         _Watchdog_Reset( &the_period->Timer );
     75        _Watchdog_Insert_ticks( &the_period->Timer, the_period->next_length );
    7176      } else
    7277        the_period->state = RATE_MONOTONIC_EXPIRED;
  • cpukit/rtems/ChangeLog

    r9f30a08b rbebf0438  
     12000-09-29      Stephan Merker <merker@decrc.abb.de>
     2
     3        * include/rtems/rtems/ratemon.h, src/ratemonperiod.c,
     4        src/ratemontimeout.c: Add next_length field so period length
     5        can be changed by the the sequence period(X), period(not X)
     6        with no intervening cancel or expiration.
     7
    182000-09-04      Ralf Corsepius <corsepiu@faw.uni-ulm.de>
    29
  • cpukit/rtems/include/rtems/rtems/ratemon.h

    r9f30a08b rbebf0438  
    7777  unsigned32                          owner_ticks_executed_at_period;
    7878  unsigned32                          time_at_period;
     79  unsigned32                          next_length;
    7980  Thread_Control                     *owner;
    8081}   Rate_monotonic_Control;
  • cpukit/rtems/src/ratemonperiod.c

    r9f30a08b rbebf0438  
    9696
    9797          the_period->time_at_period = _Watchdog_Ticks_since_boot;
     98          the_period->next_length = length;
    9899
    99100          _Watchdog_Insert_ticks( &the_period->Timer, length );
     
    104105          /*
    105106           *  This tells the _Rate_monotonic_Timeout that this task is
    106            *  in the process of blocking on the period.
     107           *  in the process of blocking on the period and that we
     108           *  may be changing the length of the next period.
    107109           */
    108110
    109111          the_period->state = RATE_MONOTONIC_OWNER_IS_BLOCKING;
     112          the_period->next_length = length;
     113
    110114          _ISR_Enable( level );
    111115
     
    141145            _Thread_Executing->ticks_executed;
    142146          the_period->time_at_period = _Watchdog_Ticks_since_boot;
     147          the_period->next_length = length;
    143148
    144149          _Watchdog_Insert_ticks( &the_period->Timer, length );
  • cpukit/rtems/src/ratemontimeout.c

    r9f30a08b rbebf0438  
    4545  Thread_Control         *the_thread;
    4646
     47  /*
     48   *  When we get here, the Timer is already off the chain so we do not
     49   *  have to worry about that -- hence no _Watchdog_Remove().
     50   */
     51
    4752  the_period = _Rate_monotonic_Get( id, &location );
    4853  switch ( location ) {
     
    6166        the_period->time_at_period = _Watchdog_Ticks_since_boot;
    6267
    63         _Watchdog_Reset( &the_period->Timer );
     68        _Watchdog_Insert_ticks( &the_period->Timer, the_period->next_length );
    6469      } else if ( the_period->state == RATE_MONOTONIC_OWNER_IS_BLOCKING ) {
    6570        the_period->state = RATE_MONOTONIC_EXPIRED_WHILE_BLOCKING;
     
    6873
    6974        the_period->time_at_period = _Watchdog_Ticks_since_boot;
    70         _Watchdog_Reset( &the_period->Timer );
     75        _Watchdog_Insert_ticks( &the_period->Timer, the_period->next_length );
    7176      } else
    7277        the_period->state = RATE_MONOTONIC_EXPIRED;
Note: See TracChangeset for help on using the changeset viewer.