Ticket #271: pr271a.diff

File pr271a.diff, 3.4 KB (added by Aaron J. Grier, on 12/03/06 at 13:31:13)

pr271a.diff

  • ChangeLog

    RCS file: /usr1/CVS/rtems/cpukit/rtems/ChangeLog,v
    retrieving revision 1.4
    retrieving revision 1.5
    diff -u -r1.4 -r1.5
     
     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
    310        * optman/Makefile.am, src/Makefile.am: Include compile.am.
  • include/rtems/rtems/ratemon.h

    RCS file: /usr1/CVS/rtems/cpukit/rtems/include/rtems/rtems/ratemon.h,v
    retrieving revision 1.14
    retrieving revision 1.15
    diff -u -r1.14 -r1.15
     
    1919 *  found in the file LICENSE in this distribution or at
    2020 *  http://www.OARcorp.com/rtems/license.html.
    2121 *
    22  *  $Id: ratemon.h,v 1.14 1999/11/17 17:50:24 joel Exp $
     22 *  $Id: ratemon.h,v 1.15 2000/09/29 14:48:17 joel Exp $
    2323 */
    2424
    2525#ifndef __RTEMS_RATE_MONOTONIC_h
     
    7676  rtems_rate_monotonic_period_states  state;
    7777  unsigned32                          owner_ticks_executed_at_period;
    7878  unsigned32                          time_at_period;
     79  unsigned32                          next_length;
    7980  Thread_Control                     *owner;
    8081}   Rate_monotonic_Control;
    8182
  • src/ratemontimeout.c

    RCS file: /usr1/CVS/rtems/cpukit/rtems/src/ratemontimeout.c,v
    retrieving revision 1.2
    retrieving revision 1.3
    diff -u -r1.2 -r1.3
     
    99 *  found in the file LICENSE in this distribution or at
    1010 *  http://www.OARcorp.com/rtems/license.html.
    1111 *
    12  *  $Id: ratemontimeout.c,v 1.2 1999/11/17 17:50:27 joel Exp $
     12 *  $Id: ratemontimeout.c,v 1.3 2000/09/29 14:48:17 joel Exp $
    1313 */
    1414
    1515#include <rtems/system.h>
     
    4444  Objects_Locations       location;
    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 ) {
    4954    case OBJECTS_REMOTE:  /* impossible */
     
    6065
    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;
    6671        the_period->owner_ticks_executed_at_period =
    6772          the_thread->ticks_executed;
    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;
    7378      _Thread_Unnest_dispatch();