Changeset e57cb3c in rtems


Ignore:
Timestamp:
Dec 9, 2008, 9:27:35 PM (11 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, master
Children:
9dc2c8d
Parents:
527ecc7a
Message:

2008-12-09 Joel Sherrill <joel.sherrill@…>

  • score/Makefile.am, score/preinstall.am, score/include/rtems/score/timespec.h, score/include/rtems/score/timestamp.h: Add 64-bit implementation of SuperCore? Timestamps. Tested on PowerPC/psim and SPARC/sis.
  • score/include/rtems/score/timestamp64.h, score/src/ts64addto.c, score/src/ts64divide.c, score/src/ts64dividebyinteger.c, score/src/ts64equalto.c, score/src/ts64getnanoseconds.c, score/src/ts64getseconds.c, score/src/ts64greaterthan.c, score/src/ts64lessthan.c, score/src/ts64set.c, score/src/ts64settozero.c, score/src/ts64subtract.c, score/src/ts64toticks.c, score/src/ts64totimespec.c: New files.
Location:
cpukit
Files:
14 added
5 edited

Legend:

Unmodified
Added
Removed
  • cpukit/ChangeLog

    r527ecc7a re57cb3c  
     12008-12-09      Joel Sherrill <joel.sherrill@oarcorp.com>
     2
     3        * score/Makefile.am, score/preinstall.am,
     4        score/include/rtems/score/timespec.h,
     5        score/include/rtems/score/timestamp.h: Add 64-bit implementation of
     6        SuperCore Timestamps. Tested on PowerPC/psim and SPARC/sis.
     7        * score/include/rtems/score/timestamp64.h, score/src/ts64addto.c,
     8        score/src/ts64divide.c, score/src/ts64dividebyinteger.c,
     9        score/src/ts64equalto.c, score/src/ts64getnanoseconds.c,
     10        score/src/ts64getseconds.c, score/src/ts64greaterthan.c,
     11        score/src/ts64lessthan.c, score/src/ts64set.c,
     12        score/src/ts64settozero.c, score/src/ts64subtract.c,
     13        score/src/ts64toticks.c, score/src/ts64totimespec.c: New files.
     14
    1152008-12-09      Sebastian Huber <sebastian.huber@embedded-brains.de>
    216
  • cpukit/score/Makefile.am

    r527ecc7a re57cb3c  
    3131    include/rtems/score/threadq.h include/rtems/score/threadsync.h \
    3232    include/rtems/score/timespec.h include/rtems/score/timestamp.h \
    33     include/rtems/score/tod.h include/rtems/score/tqdata.h \
    34     include/rtems/score/userext.h include/rtems/score/watchdog.h \
    35     include/rtems/score/wkspace.h include/rtems/score/cpuopts.h
     33    include/rtems/score/timestamp64.h include/rtems/score/tod.h \
     34    include/rtems/score/tqdata.h include/rtems/score/userext.h \
     35    include/rtems/score/watchdog.h include/rtems/score/wkspace.h \
     36    include/rtems/score/cpuopts.h
    3637
    3738if HAS_MP
     
    168169    src/timespecdividebyinteger.c
    169170
     171## TIMESTAMP_INT64_C_FILES
     172libscore_a_SOURCES += src/ts64addto.c src/ts64dividebyinteger.c \
     173    src/ts64divide.c src/ts64equalto.c \
     174    src/ts64getnanoseconds.c src/ts64getseconds.c \
     175    src/ts64greaterthan.c src/ts64lessthan.c \
     176    src/ts64set.c src/ts64settozero.c src/ts64subtract.c \
     177    src/ts64toticks.c src/ts64totimespec.c
     178
    170179## TOD_C_FILES
    171180libscore_a_SOURCES += src/coretod.c src/coretodset.c src/coretodget.c \
  • cpukit/score/include/rtems/score/timespec.h

    r527ecc7a re57cb3c  
    3232
    3333#include <sys/types.h>
     34
     35/** @brief Set Timespec to Seconds Nanosecond
     36 *
     37 *  This method sets the timespec to the specified seconds and nanoseconds
     38 *  value.
     39 *
     40 *  @param[in] _time points to the timespec instance to validate.
     41 *  @param[in] _seconds is the seconds portion of the timespec
     42 *  @param[in] _nanoseconds is the nanoseconds portion of the timespec
     43 */
     44#define _Timespec_Set( _time, _seconds, _nanoseconds ) \
     45        do { \
     46           (_time)->tv_sec = (_seconds); \
     47           (_time)->tv_nsec = (_nanoseconds); \
     48        } while (0)
     49
     50/** @brief Zero Timespec
     51 *
     52 *  This method sets the timespec to zero.
     53 *  value.
     54 *
     55 *  @param[in] _time points to the timespec instance to zero.
     56 */
     57#define _Timespec_Set_to_zero( _time ) \
     58        do { \
     59           (_time)->tv_sec = 0; \
     60           (_time)->tv_nsec = 0; \
     61        } while (0)
     62
     63/** @brief Get Seconds Portion of Timespec
     64 *
     65 *  This method returns the seconds portion of the specified timespec
     66 *
     67 *  @param[in] _time points to the timespec
     68 *
     69 *  @return The seconds portion of @a _time.
     70 */
     71#define _Timespec_Get_seconds( _time ) \
     72        ((_time)->tv_sec)
     73
     74/** @brief Get Nanoseconds Portion of Timespec
     75 *
     76 *  This method returns the nanoseconds portion of the specified timespec
     77 *
     78 *  @param[in] _time points to the timespec
     79 *
     80 *  @return The nanoseconds portion of @a _time.
     81 */
     82#define _Timespec_Get_nanoseconds( _time ) \
     83        ((_time)->tv_nsec)
    3484
    3585/** @brief Is Timespec Valid
  • cpukit/score/include/rtems/score/timestamp.h

    r527ecc7a re57cb3c  
    4545#include <rtems/score/timespec.h>
    4646
    47 #define RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC
     47/*
     48 *  NOTE: Eventually each port should select what it should use!!!
     49 *
     50 *  These control which implementation of SuperCore Timestamp is used.
     51 * 
     52 *  if defined(CPU_RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
     53 *     struct timespec is used
     54 *  else if defined(CPU_RTEMS_SCORE_TIMESTAMP_IS_INT64)
     55 *     int64_t is used
     56 *
     57 *  When int64_t is used, then
     58 *     if defined(CPU_RTEMS_SCORE_TIMESTAMP_INT64_INLINE)
     59 *        the methods are inlined
     60 *     else
     61 *        the methods are NOT inlined
     62 *
     63 *  Performance of int64_t versus struct timespec
     64 *  =============================================
     65 *
     66 *  On PowerPC/psim, inlined int64_t saves ~50 instructions on each
     67 *    _Thread_Dispatch operation which results in a context switch.
     68 *    This works out to be about 10% faster dispatches and 7.5% faster
     69 *    blocking semaphore obtains.  The following numbers are in instructions
     70 *    and from tm02 and tm26.
     71 *
     72 *                         timespec  int64  inlined int64
     73 *    dispatch:              446      446      400
     74 *    blocking sem obtain:   627      626      581
     75 *
     76 *  On SPARC/sis, inlined int64_t shows the same percentage gains.
     77 *    The following numbers are in microseconds and from tm02 and tm26.
     78 *
     79 *                         timespec  int64  inlined int64
     80 *    dispatch:               59       61       53
     81 *    blocking sem obtain:    98      100       92
     82 *
     83 *  Inlining appears to have a tendency to increase the size of
     84 *    some executables.
     85 *  Not inlining reduces the execution improvement but does not seem to
     86 *    be an improvement on the PowerPC and SPARC. The struct timespec
     87 *    and the executables with int64 not inlined are about the same size.
     88 *
     89 *  Once there has some analysis of which algorithm and configuration
     90 *  is best suited to each target, these defines should be moved to
     91 *  the appropriate score/cpu cpu.h file.  In the meantime, it is
     92 *  appropriate to select an implementation here using CPU macros.
     93 */
     94
     95#define CPU_RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC
     96/*
     97#define CPU_RTEMS_SCORE_TIMESTAMP_IS_INT64
     98#define CPU_RTEMS_SCORE_TIMESTAMP_INT64_INLINE
     99*/
     100
     101/*
     102 *  Verify something is defined.
     103 */
     104#if !defined(CPU_RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC) && \
     105    !defined(CPU_RTEMS_SCORE_TIMESTAMP_IS_INT64)
     106  #error "No SuperCore Timestamp implementation selected."
     107#endif
     108
     109/*
     110 * Verify that more than one is not defined.
     111 */
     112#if defined(CPU_RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC) && \
     113    defined(CPU_RTEMS_SCORE_TIMESTAMP_IS_INT64)
     114  #error "Too many SuperCore Timestamp implementations selected."
     115#endif
     116
     117/**
     118 *   Include any implementation specific header files
     119 */
     120#if defined(CPU_RTEMS_SCORE_TIMESTAMP_IS_INT64)
     121  #include <rtems/score/timestamp64.h>
     122#endif
    48123
    49124/**
    50125 *   Define the Timestamp control type.
    51126 */
    52 #if defined(RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
     127#if defined(CPU_RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
    53128  typedef struct timespec Timestamp_Control;
    54129#else
    55   #error "No Alternative implementations for SuperCore Timestamp."
     130  typedef Timestamp64_Control Timestamp_Control;
    56131#endif
    57132
     
    65140 *  @param[in] _nanoseconds is the nanoseconds portion of the timestamp
    66141 */
    67 #if defined(RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
     142#if defined(CPU_RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
    68143  #define _Timestamp_Set( _time, _seconds, _nanoseconds ) \
    69           do { \
    70              (_time)->tv_sec = (_seconds); \
    71              (_time)->tv_nsec = (_nanoseconds); \
    72           } while (0)
     144          _Timespec_Set( _time, _seconds, _nanoseconds )
     145#else
     146  #define _Timestamp_Set( _time, _seconds, _nanoseconds ) \
     147          _Timestamp64_Set( _time, _seconds, _nanoseconds )
    73148#endif
    74149
     
    80155 *  @param[in] _time points to the timestamp instance to zero.
    81156 */
    82 #if defined(RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
     157#if defined(CPU_RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
    83158  #define _Timestamp_Set_to_zero( _time ) \
    84           do { \
    85              (_time)->tv_sec = 0; \
    86              (_time)->tv_nsec = 0; \
    87           } while (0)
     159          _Timespec_Set_to_zero( _time )
     160#else
     161  #define _Timestamp_Set_to_zero( _time ) \
     162          _Timestamp64_Set_to_zero( _time )
    88163#endif
    89164
     
    92167 *  This method determines the validity of a timestamp.
    93168 *
    94  *  @param[in] time is the timestamp instance to validate.
     169 *  @param[in] _time points to the timestamp instance to validate.
    95170 *
    96171 *  @return This method returns true if @a time is valid and
    97172 *          false otherwise.
    98173 */
    99 #if defined(RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
     174#if defined(CPU_RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
    100175  #define _Timestamp_Is_valid( _time ) \
    101176          _Timespec_Is_valid( _time )
     177#else
     178  #define _Timestamp_Is_valid( _time ) \
     179          _Timestamp64_Is_valid( _time )
    102180#endif
    103181
     
    106184 *  This method is the less than operator for timestamps.
    107185 *
    108  *  @param[in] lhs is the left hand side timestamp
    109  *  @param[in] rhs is the right hand side timestamp
    110  *
    111  *  @return This method returns true if @a lhs is less than the @a rhs and
     186 *  @param[in] _lhs points to the left hand side timestamp
     187 *  @param[in] _rhs points to the right hand side timestamp
     188 *
     189 *  @return This method returns true if @a _lhs is less than the @a _rhs and
    112190 *          false otherwise.
    113191 */
    114 #if defined(RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
     192#if defined(CPU_RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
    115193  #define _Timestamp_Less_than( _lhs, _rhs ) \
    116194          _Timespec_Less_than( _lhs, _rhs )
     195#else
     196  #define _Timestamp_Less_than( _lhs, _rhs ) \
     197          _Timestamp64_Less_than( _lhs, _rhs )
    117198#endif
    118199
     
    121202 *  This method is the greater than operator for timestamps.
    122203 *
    123  *  @param[in] lhs is the left hand side timestamp
    124  *  @param[in] rhs is the right hand side timestamp
    125  *
    126  *  @return This method returns true if @a lhs is greater than the @a rhs and
     204 *  @param[in] _lhs points to the left hand side timestamp
     205 *  @param[in] _rhs points to the right hand side timestamp
     206 *
     207 *  @return This method returns true if @a _lhs is greater than the @a _rhs and
    127208 *          false otherwise.
    128209 */
    129 #if defined(RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
     210#if defined(CPU_RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
    130211  #define _Timestamp_Greater_than( _lhs, _rhs ) \
    131212          _Timespec_Greater_than( _lhs, _rhs )
     213#else
     214  #define _Timestamp_Greater_than( _lhs, _rhs ) \
     215          _Timestamp64_Greater_than( _lhs, _rhs )
    132216#endif
    133217
     
    136220 *  This method is the is equal to than operator for timestamps.
    137221 *
    138  *  @param[in] lhs is the left hand side timestamp
    139  *  @param[in] rhs is the right hand side timestamp
    140  *
    141  *  @return This method returns true if @a lhs is equal to  @a rhs and
     222 *  @param[in] _lhs points to the left hand side timestamp
     223 *  @param[in] _rhs points to the right hand side timestamp
     224 *
     225 *  @return This method returns true if @a _lhs is equal to  @a _rhs and
    142226 *          false otherwise.
    143227 */
    144 #if defined(RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
     228#if defined(CPU_RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
    145229  #define _Timestamp_Equal_to( _lhs, _rhs ) \
    146230          _Timespec_Equal_to( _lhs, _rhs )
     231#else
     232  #define _Timestamp_Equal_to( _lhs, _rhs ) \
     233          _Timestamp64_Equal_to( _lhs, _rhs )
    147234#endif
    148235
     
    152239 *  to the first.
    153240 *
    154  *  @param[in] time points to the base time to be added to
    155  *  @param[in] add points to the timestamp to add to the first argument
    156  */
    157 #if defined(RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
     241 *  @param[in] _time points to the base time to be added to
     242 *  @param[in] _add points to the timestamp to add to the first argument
     243 *
     244 *  @return This method returns the number of seconds @a time increased by.
     245 */
     246#if defined(CPU_RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
    158247  #define _Timestamp_Add_to( _time, _add ) \
    159248          _Timespec_Add_to( _time, _add )
     249#else
     250  #define _Timestamp_Add_to( _time, _add ) \
     251          _Timestamp64_Add_to( _time, _add )
    160252#endif
    161253
     
    171263 *        it is generally safe to assume that only one second changed.
    172264 *
    173  *  @param[in] time points to the base time to be added to
    174  *  @param[in] add points to the timestamp to add to the first argument
     265 *  @param[in] _time points to the base time to be added to
     266 *  @param[in] _add points to the timestamp to add to the first argument
    175267 *
    176268 *  @return This method returns the number of seconds @a time increased by.
    177269 */
    178 #if defined(RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
     270#if defined(CPU_RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
    179271  #define _Timestamp_Add_to_at_tick( _time, _add ) \
    180272          _Timespec_Add_to( _time, _add )
     273#else
     274  #define _Timestamp_Add_to_at_tick( _time, _add ) \
     275          _Timestamp64_Add_to_at_tick( _time, _add )
    181276#endif
    182277
     
    186281 *  of clock ticks.
    187282 *
    188  *  @param[in] time points to the time to be converted
     283 *  @param[in] _time points to the time to be converted
    189284 *
    190285 *  @return This method returns the number of ticks computed.
    191286 */
    192 #if defined(RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
     287#if defined(CPU_RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
    193288  #define _Timestamp_To_ticks( _time ) \
    194289          _Timespec_To_ticks( _time )
     290#else
     291  #define _Timestamp_To_ticks( _time ) \
     292          _Timestamp64_To_ticks( _time )
    195293#endif
    196294
    197295/** @brief Convert Ticks to Timestamp
    198296 *
    199  *  This routine converts the @a ticks value to the corresponding
    200  *  timestamp format @a time.
     297 *  This routine converts the @a _ticks value to the corresponding
     298 *  timestamp format @a _time.
    201299 *
    202300 *  @param[in] time points to the timestamp format time result
    203  *  @param[in] ticks points to the the number of ticks to be filled in
    204  */
    205 #if defined(RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
     301 *  @param[in] ticks points to the number of ticks to be filled in
     302 */
     303#if defined(CPU_RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
    206304  #define _Timestamp_From_ticks( _ticks, _time ) \
    207305          _Timespec_From_ticks( _ticks, _time )
     306#else
     307  #define _Timestamp_From_ticks( _ticks, _time ) \
     308          _Timestamp64_From_ticks( _ticks, _time )
    208309#endif
    209310
     
    213314 *  @a end - @a start.
    214315 *
    215  *  @param[in] start points to the starting time
    216  *  @param[in] end points to the ending time
    217  *  @param[in] result points to the difference between starting and ending time.
    218  *
    219  *  @return This method fills in @a result.
    220  */
    221 #if defined(RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
     316 *  @param[in] _start points to the starting time
     317 *  @param[in] _end points to the ending time
     318 *  @param[in] _result points to the difference between
     319 *             starting and ending time.
     320 *
     321 *  @return This method fills in @a _result.
     322 */
     323#if defined(CPU_RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
    222324  #define _Timestamp_Subtract( _start, _end, _result ) \
    223325          _Timespec_Subtract( _start, _end, _result )
     326#else
     327  #define _Timestamp_Subtract( _start, _end, _result ) \
     328          _Timestamp64_Subtract( _start, _end, _result )
    224329#endif
    225330
     
    230335 *  divide a duration by a number of iterations.
    231336 *
    232  *  @param[in] time points to the total
    233  *  @param[in] iterations is the number of iterations
    234  *  @param[in] result points to the average time.
     337 *  @param[in] _time points to the total
     338 *  @param[in] _iterations is the number of iterations
     339 *  @param[in] _result points to the average time.
    235340 *
    236341 *  @return This method fills in @a result.
    237342 */
    238 #if defined(RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
     343#if defined(CPU_RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
    239344  #define _Timestamp_Divide_by_integer( _time, _iterations, _result ) \
    240345          _Timespec_Divide_by_integer(_time, _iterations, _result )
     346#else
     347  #define _Timestamp_Divide_by_integer( _time, _iterations, _result ) \
     348          _Timestamp64_Divide_by_integer( _time, _iterations, _result )
    241349#endif
    242350
     
    246354 *  intended use is for calculating percentages to three decimal points.
    247355 *
    248  *  @param[in] lhs points to the left hand number
    249  *  @param[in] rhs points to the right hand number
    250  *  @param[in] ival_percentage is the integer portion of the average
    251  *  @param[in] fval_percentage is the thousandths of percentage
     356 *  @param[in] _lhs points to the left hand number
     357 *  @param[in] _rhs points to the right hand number
     358 *  @param[in] _ival_percentage points to the integer portion of the average
     359 *  @param[in] _fval_percentage points to the thousandths of percentage
    252360 *
    253361 *  @return This method fills in @a result.
    254362 */
    255 #if defined(RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
     363#if defined(CPU_RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
    256364  #define _Timestamp_Divide( _lhs, _rhs, _ival_percentage, _fval_percentage ) \
    257365          _Timespec_Divide( _lhs, _rhs, _ival_percentage, _fval_percentage )
     366#else
     367  #define _Timestamp_Divide( _lhs, _rhs, _ival_percentage, _fval_percentage ) \
     368          _Timestamp64_Divide( _lhs, _rhs, _ival_percentage, _fval_percentage )
    258369#endif
    259370
     
    266377 *  @return The seconds portion of @a _time.
    267378 */
    268 #if defined(RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
     379#if defined(CPU_RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
    269380  #define _Timestamp_Get_seconds( _time ) \
    270           ((_time)->tv_sec)
     381          _Timespec_Get_seconds( _time )
     382#else
     383  #define _Timestamp_Get_seconds( _time ) \
     384          _Timestamp64_Get_seconds( _time )
    271385#endif
    272386
     
    279393 *  @return The nanoseconds portion of @a _time.
    280394 */
    281 #if defined(RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
     395#if defined(CPU_RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
    282396  #define _Timestamp_Get_nanoseconds( _time ) \
    283           ((_time)->tv_nsec)
     397          _Timespec_Get_nanoseconds( _time )
     398#else
     399  #define _Timestamp_Get_nanoseconds( _time ) \
     400          _Timestamp64_Get_nanoseconds( _time )
    284401#endif
    285402
     
    291408 *  @param[in] _timespec points to the timespec
    292409 */
    293 #if defined(RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
     410#if defined(CPU_RTEMS_SCORE_TIMESTAMP_IS_STRUCT_SPEC)
     411  /* in this case we know they are the same type so use simple assignment */
    294412  #define _Timestamp_To_timespec( _timestamp, _timespec  ) \
    295413          *(_timespec) = *(_timestamp)
     414#else
     415  #define _Timestamp_To_timespec( _timestamp, _timespec  ) \
     416          _Timestamp64_To_timespec( _timestamp, _timespec  )
    296417#endif
    297418
  • cpukit/score/preinstall.am

    r527ecc7a re57cb3c  
    143143        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/timestamp.h
    144144PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/timestamp.h
     145
     146$(PROJECT_INCLUDE)/rtems/score/timestamp64.h: include/rtems/score/timestamp64.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
     147        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/timestamp64.h
     148PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/timestamp64.h
    145149
    146150$(PROJECT_INCLUDE)/rtems/score/tod.h: include/rtems/score/tod.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
Note: See TracChangeset for help on using the changeset viewer.