<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>change log for rtems (2011-03-04)</title>
</head>
<body text='#000000' bgcolor='#ffffff'>
<a name='cs1'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>joel</strong></font>
 <font color='#225522'><em>(on branch rtems-4-10-branch)</em></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2011-03-04 Joel Sherrill <joel.sherrilL@OARcorp.com>

        PR 1748/bsps
        * clock/ckinit.c: When the clock tick generates an interrupt WHILE we
        have interrupts disabled doing a get TOD or uptime, the get
        nanoseconds handler was returning a bogusly large number.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog.diff?r1=text&tr1=1.163&r2=text&tr2=1.164&diff_format=h">M</a></td><td width='1%'>1.164</td><td width='100%'>c/src/lib/libbsp/sparc/erc32/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog.diff?r1=text&tr1=1.123.2.3&r2=text&tr2=1.123.2.4&diff_format=h">M</a></td><td width='1%'>1.123.2.4</td><td width='100%'>c/src/lib/libbsp/sparc/erc32/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog.diff?r1=text&tr1=1.152.2.2&r2=text&tr2=1.152.2.3&diff_format=h">M</a></td><td width='1%'>1.152.2.3</td><td width='100%'>c/src/lib/libbsp/sparc/erc32/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/erc32/clock/ckinit.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.18&diff_format=h">M</a></td><td width='1%'>1.18</td><td width='100%'>c/src/lib/libbsp/sparc/erc32/clock/ckinit.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/erc32/clock/ckinit.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.15.2.1&diff_format=h">M</a></td><td width='1%'>1.15.2.1</td><td width='100%'>c/src/lib/libbsp/sparc/erc32/clock/ckinit.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/erc32/clock/ckinit.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.17.2.1&diff_format=h">M</a></td><td width='1%'>1.17.2.1</td><td width='100%'>c/src/lib/libbsp/sparc/erc32/clock/ckinit.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/leon2/ChangeLog.diff?r1=text&tr1=1.79&r2=text&tr2=1.80&diff_format=h">M</a></td><td width='1%'>1.80</td><td width='100%'>c/src/lib/libbsp/sparc/leon2/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/leon2/ChangeLog.diff?r1=text&tr1=1.42.2.3&r2=text&tr2=1.42.2.4&diff_format=h">M</a></td><td width='1%'>1.42.2.4</td><td width='100%'>c/src/lib/libbsp/sparc/leon2/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/leon2/ChangeLog.diff?r1=text&tr1=1.71.2.1&r2=text&tr2=1.71.2.2&diff_format=h">M</a></td><td width='1%'>1.71.2.2</td><td width='100%'>c/src/lib/libbsp/sparc/leon2/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/leon2/clock/ckinit.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.8&diff_format=h">M</a></td><td width='1%'>1.8</td><td width='100%'>c/src/lib/libbsp/sparc/leon2/clock/ckinit.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/leon2/clock/ckinit.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.5.2.1&diff_format=h">M</a></td><td width='1%'>1.5.2.1</td><td width='100%'>c/src/lib/libbsp/sparc/leon2/clock/ckinit.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/leon2/clock/ckinit.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.7.2.1&diff_format=h">M</a></td><td width='1%'>1.7.2.1</td><td width='100%'>c/src/lib/libbsp/sparc/leon2/clock/ckinit.c</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog:1.163 rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog:1.164
--- rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog:1.163  Thu Mar  3 08:03:40 2011
+++ rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog        Fri Mar  4 08:06:47 2011
</font><font color='#997700'>@@ -1,3 +1,10 @@
</font><font color='#000088'>+2011-03-04    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       PR 1748/bsps
+       * clock/ckinit.c: When the clock tick generates an interrupt WHILE we
+       have interrupts disabled doing a get TOD or uptime, the get
+       nanoseconds handler was returning a bogusly large number.
+
</font> 2011-03-03        Joel Sherrill <joel.sherrilL@OARcorp.com>
 
        PR 1750/bsps

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog:1.123.2.3 rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog:1.123.2.4
--- rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog:1.123.2.3      Mon Mar  9 11:53:38 2009
+++ rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog        Fri Mar  4 08:07:15 2011
</font><font color='#997700'>@@ -1,3 +1,10 @@
</font><font color='#000088'>+2011-03-04    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       PR 1748/bsps
+       * clock/ckinit.c: When the clock tick generates an interrupt WHILE we
+       have interrupts disabled doing a get TOD or uptime, the get
+       nanoseconds handler was returning a bogusly large number.
+
</font> 2009-03-09        Antoine Lacroix <antoine.lacroix at sodern.fr>
 
        PR 1391/bsps

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog:1.152.2.2 rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog:1.152.2.3
--- rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog:1.152.2.2      Thu Mar  3 08:03:48 2011
+++ rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog        Fri Mar  4 08:07:04 2011
</font><font color='#997700'>@@ -1,3 +1,10 @@
</font><font color='#000088'>+2011-03-04    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       PR 1748/bsps
+       * clock/ckinit.c: When the clock tick generates an interrupt WHILE we
+       have interrupts disabled doing a get TOD or uptime, the get
+       nanoseconds handler was returning a bogusly large number.
+
</font> 2011-03-03        Joel Sherrill <joel.sherrilL@OARcorp.com>
 
        PR 1750/bsps

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/erc32/clock/ckinit.c:1.17 rtems/c/src/lib/libbsp/sparc/erc32/clock/ckinit.c:1.18
--- rtems/c/src/lib/libbsp/sparc/erc32/clock/ckinit.c:1.17      Sun Nov 29 09:33:26 2009
+++ rtems/c/src/lib/libbsp/sparc/erc32/clock/ckinit.c   Fri Mar  4 08:06:47 2011
</font><font color='#997700'>@@ -49,11 +49,17 @@
</font> uint32_t bsp_clock_nanoseconds_since_last_tick(void)
 {
   uint32_t clicks;
<font color='#000088'>+  uint32_t usecs;
</font> 
   clicks = ERC32_MEC.Real_Time_Clock_Counter;
 
<font color='#880000'>-  return (uint32_t)
-    (rtems_configuration_get_microseconds_per_tick() - clicks) * 1000;
</font><font color='#000088'>+  if ( ERC32_Is_interrupt_pending( ERC32_INTERRUPT_REAL_TIME_CLOCK ) ) {
+    clicks = ERC32_MEC.Real_Time_Clock_Counter;
+    usecs = (2*rtems_configuration_get_microseconds_per_tick() - clicks);
+  } else {
+    usecs = (rtems_configuration_get_microseconds_per_tick() - clicks);
+  }
+  return usecs * 1000;
</font> }
 
 #define Clock_driver_nanoseconds_since_last_tick \

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/erc32/clock/ckinit.c:1.15 rtems/c/src/lib/libbsp/sparc/erc32/clock/ckinit.c:1.15.2.1
--- rtems/c/src/lib/libbsp/sparc/erc32/clock/ckinit.c:1.15      Wed May  7 12:39:48 2008
+++ rtems/c/src/lib/libbsp/sparc/erc32/clock/ckinit.c   Fri Mar  4 08:07:15 2011
</font><font color='#997700'>@@ -49,11 +49,17 @@
</font> uint32_t bsp_clock_nanoseconds_since_last_tick(void)
 {
   uint32_t clicks;
<font color='#000088'>+  uint32_t usecs;
</font> 
   clicks = ERC32_MEC.Real_Time_Clock_Counter;
 
<font color='#880000'>-  return (uint32_t)<span style="background-color: #FF0000"> </span>
-    (rtems_configuration_get_microseconds_per_tick() - clicks) * 1000;
</font><font color='#000088'>+  if ( ERC32_Is_interrupt_pending( ERC32_INTERRUPT_REAL_TIME_CLOCK ) ) {
+    clicks = ERC32_MEC.Real_Time_Clock_Counter;
+    usecs = (2*rtems_configuration_get_microseconds_per_tick() - clicks);
+  } else {
+    usecs = (rtems_configuration_get_microseconds_per_tick() - clicks);
+  }
+  return usecs * 1000;
</font> }
 
 #define Clock_driver_nanoseconds_since_last_tick \

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/erc32/clock/ckinit.c:1.17 rtems/c/src/lib/libbsp/sparc/erc32/clock/ckinit.c:1.17.2.1
--- rtems/c/src/lib/libbsp/sparc/erc32/clock/ckinit.c:1.17      Sun Nov 29 09:33:26 2009
+++ rtems/c/src/lib/libbsp/sparc/erc32/clock/ckinit.c   Fri Mar  4 08:07:04 2011
</font><font color='#997700'>@@ -49,11 +49,17 @@
</font> uint32_t bsp_clock_nanoseconds_since_last_tick(void)
 {
   uint32_t clicks;
<font color='#000088'>+  uint32_t usecs;
</font> 
   clicks = ERC32_MEC.Real_Time_Clock_Counter;
 
<font color='#880000'>-  return (uint32_t)
-    (rtems_configuration_get_microseconds_per_tick() - clicks) * 1000;
</font><font color='#000088'>+  if ( ERC32_Is_interrupt_pending( ERC32_INTERRUPT_REAL_TIME_CLOCK ) ) {
+    clicks = ERC32_MEC.Real_Time_Clock_Counter;
+    usecs = (2*rtems_configuration_get_microseconds_per_tick() - clicks);
+  } else {
+    usecs = (rtems_configuration_get_microseconds_per_tick() - clicks);
+  }
+  return usecs * 1000;
</font> }
 
 #define Clock_driver_nanoseconds_since_last_tick \

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/leon2/ChangeLog:1.79 rtems/c/src/lib/libbsp/sparc/leon2/ChangeLog:1.80
--- rtems/c/src/lib/libbsp/sparc/leon2/ChangeLog:1.79   Fri Feb 11 04:06:49 2011
+++ rtems/c/src/lib/libbsp/sparc/leon2/ChangeLog        Fri Mar  4 08:06:50 2011
</font><font color='#997700'>@@ -1,3 +1,10 @@
</font><font color='#000088'>+2011-03-04    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       PR 1748/bsps
+       * clock/ckinit.c: When the clock tick generates an interrupt WHILE we
+       have interrupts disabled doing a get TOD or uptime, the get
+       nanoseconds handler was returning a bogusly large number.
+
</font> 2011-02-11        Ralf Corsépius <ralf.corsepius@rtems.org>
 
        * cchip/cchip.c, include/tm27.h, startup/spurious.c:

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/leon2/ChangeLog:1.42.2.3 rtems/c/src/lib/libbsp/sparc/leon2/ChangeLog:1.42.2.4
--- rtems/c/src/lib/libbsp/sparc/leon2/ChangeLog:1.42.2.3       Mon Mar  9 11:53:41 2009
+++ rtems/c/src/lib/libbsp/sparc/leon2/ChangeLog        Fri Mar  4 08:07:16 2011
</font><font color='#997700'>@@ -1,3 +1,10 @@
</font><font color='#000088'>+2011-03-04    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       PR 1748/bsps
+       * clock/ckinit.c: When the clock tick generates an interrupt WHILE we
+       have interrupts disabled doing a get TOD or uptime, the get
+       nanoseconds handler was returning a bogusly large number.
+
</font> 2009-03-09        Antoine Lacroix <antoine.lacroix at sodern.fr>
 
        PR 1391/bsps

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/leon2/ChangeLog:1.71.2.1 rtems/c/src/lib/libbsp/sparc/leon2/ChangeLog:1.71.2.2
--- rtems/c/src/lib/libbsp/sparc/leon2/ChangeLog:1.71.2.1       Wed Feb  2 09:17:16 2011
+++ rtems/c/src/lib/libbsp/sparc/leon2/ChangeLog        Fri Mar  4 08:07:06 2011
</font><font color='#997700'>@@ -1,3 +1,10 @@
</font><font color='#000088'>+2011-03-04    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       PR 1748/bsps
+       * clock/ckinit.c: When the clock tick generates an interrupt WHILE we
+       have interrupts disabled doing a get TOD or uptime, the get
+       nanoseconds handler was returning a bogusly large number.
+
</font> 2011-02-02        Ralf Corsépius <ralf.corsepius@rtems.org>
 
        * configure.ac: Require autoconf-2.68, automake-1.11.1.

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/leon2/clock/ckinit.c:1.7 rtems/c/src/lib/libbsp/sparc/leon2/clock/ckinit.c:1.8
--- rtems/c/src/lib/libbsp/sparc/leon2/clock/ckinit.c:1.7       Sun Nov 29 09:33:26 2009
+++ rtems/c/src/lib/libbsp/sparc/leon2/clock/ckinit.c   Fri Mar  4 08:06:50 2011
</font><font color='#997700'>@@ -62,12 +62,15 @@
</font> uint32_t bsp_clock_nanoseconds_since_last_tick(void)
 {
   uint32_t clicks;
<font color='#000088'>+  uint32_t usecs;
</font> 
<font color='#880000'>-  clicks = LEON_REG.Timer_Counter_1;
-
-  /* Down counter */
-  return (uint32_t)
-     (rtems_configuration_get_microseconds_per_tick() - clicks) * 1000;
</font><font color='#000088'>+  if ( LEON_Is_interrupt_pending( LEON_INTERRUPT_TIMER1 ) ) {
+    clicks = LEON_REG.Timer_Counter_1;
+    usecs = (2*rtems_configuration_get_microseconds_per_tick() - clicks);
+  } else {
+    usecs = (rtems_configuration_get_microseconds_per_tick() - clicks);
+  }
+  return usecs * 1000;
</font> }
 
 #define Clock_driver_nanoseconds_since_last_tick bsp_clock_nanoseconds_since_last_tick

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/leon2/clock/ckinit.c:1.5 rtems/c/src/lib/libbsp/sparc/leon2/clock/ckinit.c:1.5.2.1
--- rtems/c/src/lib/libbsp/sparc/leon2/clock/ckinit.c:1.5       Wed May  7 12:39:50 2008
+++ rtems/c/src/lib/libbsp/sparc/leon2/clock/ckinit.c   Fri Mar  4 08:07:17 2011
</font><font color='#997700'>@@ -59,17 +59,22 @@
</font>     LEON_REG.Timer_Control_1 = 0; \
   } while (0)
 
<font color='#000088'>+
</font> uint32_t bsp_clock_nanoseconds_since_last_tick(void)
 {
   uint32_t clicks;
<font color='#000088'>+  uint32_t usecs;
</font> 
<font color='#880000'>-  clicks = LEON_REG.Timer_Counter_1;
-
-  /* Down counter */
-  return (uint32_t)<span style="background-color: #FF0000"> </span>
-     (rtems_configuration_get_microseconds_per_tick() - clicks) * 1000;
</font><font color='#000088'>+  if ( LEON_Is_interrupt_pending( LEON_INTERRUPT_TIMER1 ) ) {
+    clicks = LEON_REG.Timer_Counter_1;
+    usecs = (2*rtems_configuration_get_microseconds_per_tick() - clicks);
+  } else {
+    usecs = (rtems_configuration_get_microseconds_per_tick() - clicks);
+  }
+  return usecs * 1000;
</font> }
 
<font color='#880000'>-#define Clock_driver_nanoseconds_since_last_tick bsp_clock_nanoseconds_since_last_tick
</font><font color='#000088'>+#define Clock_driver_nanoseconds_since_last_tick \
+        bsp_clock_nanoseconds_since_last_tick
</font> 
 #include "../../../shared/clockdrv_shell.c"

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/leon2/clock/ckinit.c:1.7 rtems/c/src/lib/libbsp/sparc/leon2/clock/ckinit.c:1.7.2.1
--- rtems/c/src/lib/libbsp/sparc/leon2/clock/ckinit.c:1.7       Sun Nov 29 09:33:26 2009
+++ rtems/c/src/lib/libbsp/sparc/leon2/clock/ckinit.c   Fri Mar  4 08:07:06 2011
</font><font color='#997700'>@@ -62,12 +62,15 @@
</font> uint32_t bsp_clock_nanoseconds_since_last_tick(void)
 {
   uint32_t clicks;
<font color='#000088'>+  uint32_t usecs;
</font> 
<font color='#880000'>-  clicks = LEON_REG.Timer_Counter_1;
-
-  /* Down counter */
-  return (uint32_t)
-     (rtems_configuration_get_microseconds_per_tick() - clicks) * 1000;
</font><font color='#000088'>+  if ( LEON_Is_interrupt_pending( LEON_INTERRUPT_TIMER1 ) ) {
+    clicks = LEON_REG.Timer_Counter_1;
+    usecs = (2*rtems_configuration_get_microseconds_per_tick() - clicks);
+  } else {
+    usecs = (rtems_configuration_get_microseconds_per_tick() - clicks);
+  }
+  return usecs * 1000;
</font> }
 
 #define Clock_driver_nanoseconds_since_last_tick bsp_clock_nanoseconds_since_last_tick
</pre>
<p> </p>
<a name='cs2'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>joel</strong></font>
 <font color='#225522'><em>(on branch rtems-4-10-branch)</em></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2011-03-04 Joel Sherrill <joel.sherrilL@OARcorp.com>

        PR 1748/bsps
        * clock/ckinit.c, include/leon.h: When the clock tick generates an
        interrupt WHILE we have interrupts disabled doing a get TOD or
        uptime, the get nanoseconds handler was returning a bogusly large
        number.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog.diff?r1=text&tr1=1.101&r2=text&tr2=1.102&diff_format=h">M</a></td><td width='1%'>1.102</td><td width='100%'>c/src/lib/libbsp/sparc/leon3/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog.diff?r1=text&tr1=1.64.2.3&r2=text&tr2=1.64.2.4&diff_format=h">M</a></td><td width='1%'>1.64.2.4</td><td width='100%'>c/src/lib/libbsp/sparc/leon3/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog.diff?r1=text&tr1=1.95.2.1&r2=text&tr2=1.95.2.2&diff_format=h">M</a></td><td width='1%'>1.95.2.2</td><td width='100%'>c/src/lib/libbsp/sparc/leon3/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.16&diff_format=h">M</a></td><td width='1%'>1.16</td><td width='100%'>c/src/lib/libbsp/sparc/leon3/clock/ckinit.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.13.2.1&diff_format=h">M</a></td><td width='1%'>1.13.2.1</td><td width='100%'>c/src/lib/libbsp/sparc/leon3/clock/ckinit.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.15.2.1&diff_format=h">M</a></td><td width='1%'>1.15.2.1</td><td width='100%'>c/src/lib/libbsp/sparc/leon3/clock/ckinit.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/leon3/include/leon.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.9&diff_format=h">M</a></td><td width='1%'>1.9</td><td width='100%'>c/src/lib/libbsp/sparc/leon3/include/leon.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/leon3/include/leon.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.7.4.1&diff_format=h">M</a></td><td width='1%'>1.7.4.1</td><td width='100%'>c/src/lib/libbsp/sparc/leon3/include/leon.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/leon3/include/leon.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.8.2.1&diff_format=h">M</a></td><td width='1%'>1.8.2.1</td><td width='100%'>c/src/lib/libbsp/sparc/leon3/include/leon.h</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog:1.101 rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog:1.102
--- rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog:1.101  Fri Feb 11 04:06:51 2011
+++ rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog        Fri Mar  4 08:06:53 2011
</font><font color='#997700'>@@ -1,3 +1,11 @@
</font><font color='#000088'>+2011-03-04    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       PR 1748/bsps
+       * clock/ckinit.c, include/leon.h: When the clock tick generates an
+       interrupt WHILE we have interrupts disabled doing a get TOD or
+       uptime, the get nanoseconds handler was returning a bogusly large
+       number.
+
</font> 2011-02-11        Ralf Corsépius <ralf.corsepius@rtems.org>
 
        * amba/amba.c, include/tm27.h, shmsupp/lock.c, startup/bspstart.c,

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog:1.64.2.3 rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog:1.64.2.4
--- rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog:1.64.2.3       Mon Mar  9 11:53:43 2009
+++ rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog        Fri Mar  4 08:07:19 2011
</font><font color='#997700'>@@ -1,3 +1,11 @@
</font><font color='#000088'>+2011-03-04    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       PR 1748/bsps
+       * clock/ckinit.c, include/leon.h: When the clock tick generates an
+       interrupt WHILE we have interrupts disabled doing a get TOD or
+       uptime, the get nanoseconds handler was returning a bogusly large
+       number.
+
</font> 2009-03-09        Antoine Lacroix <antoine.lacroix at sodern.fr>
 
        PR 1391/bsps

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog:1.95.2.1 rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog:1.95.2.2
--- rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog:1.95.2.1       Wed Feb  2 09:17:19 2011
+++ rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog        Fri Mar  4 08:07:08 2011
</font><font color='#997700'>@@ -1,3 +1,11 @@
</font><font color='#000088'>+2011-03-04    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       PR 1748/bsps
+       * clock/ckinit.c, include/leon.h: When the clock tick generates an
+       interrupt WHILE we have interrupts disabled doing a get TOD or
+       uptime, the get nanoseconds handler was returning a bogusly large
+       number.
+
</font> 2011-02-02        Ralf Corsépius <ralf.corsepius@rtems.org>
 
        * configure.ac: Require autoconf-2.68, automake-1.11.1.

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c:1.15 rtems/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c:1.16
--- rtems/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c:1.15      Sun Nov 29 09:33:27 2009
+++ rtems/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c   Fri Mar  4 08:06:53 2011
</font><font color='#997700'>@@ -97,16 +97,23 @@
</font> uint32_t bsp_clock_nanoseconds_since_last_tick(void)
 {
   uint32_t clicks;
<font color='#000088'>+  uint32_t usecs;
+
</font>   if ( !LEON3_Timer_Regs )
     return 0;
 
   clicks = LEON3_Timer_Regs->timer[0].value;
 
<font color='#880000'>-  /* Down counter */
-  return (uint32_t)
-     (rtems_configuration_get_microseconds_per_tick() - clicks) * 1000;
</font><font color='#000088'>+  if ( LEON_Is_interrupt_pending( clkirq ) ) {
+    clicks = LEON3_Timer_Regs->timer[0].value;
+    usecs = (2*rtems_configuration_get_microseconds_per_tick() - clicks);
+  } else {
+    usecs = (rtems_configuration_get_microseconds_per_tick() - clicks);
+  }
+  return usecs * 1000;
</font> }
 
<font color='#880000'>-#define Clock_driver_nanoseconds_since_last_tick bsp_clock_nanoseconds_since_last_tick
</font><font color='#000088'>+#define Clock_driver_nanoseconds_since_last_tick \
+        bsp_clock_nanoseconds_since_last_tick
</font> 
 #include "../../../shared/clockdrv_shell.h"

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c:1.13 rtems/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c:1.13.2.1
--- rtems/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c:1.13      Wed May  7 12:40:52 2008
+++ rtems/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c   Fri Mar  4 08:07:19 2011
</font><font color='#997700'>@@ -97,16 +97,18 @@
</font> uint32_t bsp_clock_nanoseconds_since_last_tick(void)
 {
   uint32_t clicks;
<font color='#880000'>-  if ( !LEON3_Timer_Regs )
-    return 0;
</font><font color='#000088'>+  uint32_t usecs;
</font> 
<font color='#880000'>-  clicks = LEON3_Timer_Regs->timer[0].value;
-
-  /* Down counter */
-  return (uint32_t)
-     (rtems_configuration_get_microseconds_per_tick() - clicks) * 1000;
</font><font color='#000088'>+  if ( LEON_Is_interrupt_pending( LEON_INTERRUPT_TIMER1 ) ) {
+    clicks = LEON_REG.Timer_Counter_1;
+    usecs = (2*rtems_configuration_get_microseconds_per_tick() - clicks);
+  } else {
+    usecs = (rtems_configuration_get_microseconds_per_tick() - clicks);
+  }
+  return usecs * 1000;
</font> }
 
<font color='#880000'>-#define Clock_driver_nanoseconds_since_last_tick bsp_clock_nanoseconds_since_last_tick
</font><font color='#000088'>+#define Clock_driver_nanoseconds_since_last_tick \
+        bsp_clock_nanoseconds_since_last_tick
</font> 
 #include "../../../shared/clockdrv_shell.c"

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c:1.15 rtems/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c:1.15.2.1
--- rtems/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c:1.15      Sun Nov 29 09:33:27 2009
+++ rtems/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c   Fri Mar  4 08:07:08 2011
</font><font color='#997700'>@@ -97,16 +97,24 @@
</font> uint32_t bsp_clock_nanoseconds_since_last_tick(void)
 {
   uint32_t clicks;
<font color='#000088'>+  uint32_t usecs;
+
</font>   if ( !LEON3_Timer_Regs )
     return 0;
 
   clicks = LEON3_Timer_Regs->timer[0].value;
 
<font color='#880000'>-  /* Down counter */
-  return (uint32_t)
-     (rtems_configuration_get_microseconds_per_tick() - clicks) * 1000;
</font><font color='#000088'>+  if ( LEON_Is_interrupt_pending( clkirq ) ) {
+    clicks = LEON3_Timer_Regs->timer[0].value;
+    usecs = (2*rtems_configuration_get_microseconds_per_tick() - clicks);
+  } else {
+    usecs = (rtems_configuration_get_microseconds_per_tick() - clicks);
+  }
+  return usecs * 1000;
</font> }
 
<font color='#880000'>-#define Clock_driver_nanoseconds_since_last_tick bsp_clock_nanoseconds_since_last_tick
</font><font color='#000088'>+
+#define Clock_driver_nanoseconds_since_last_tick \
+        bsp_clock_nanoseconds_since_last_tick
</font> 
 #include "../../../shared/clockdrv_shell.h"

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/leon3/include/leon.h:1.8 rtems/c/src/lib/libbsp/sparc/leon3/include/leon.h:1.9
--- rtems/c/src/lib/libbsp/sparc/leon3/include/leon.h:1.8       Sun Nov 29 09:33:27 2009
+++ rtems/c/src/lib/libbsp/sparc/leon3/include/leon.h   Fri Mar  4 08:06:54 2011
</font><font color='#997700'>@@ -245,11 +245,11 @@
</font>   } while (0)
 
 #define LEON_Is_interrupt_pending( _source ) \
<font color='#880000'>-  (LEON3_IrqCtrl_Regs.ipend & (1 << (_source)))
</font><font color='#000088'>+  (LEON3_IrqCtrl_Regs->ipend & (1 << (_source)))
</font> 
 #define LEON_Is_interrupt_masked( _source ) \
   do {\
<font color='#880000'>-     (LEON3_IrqCtrl_Regs.mask[LEON3_Cpu_Index] & (1 << (_source))); \
</font><font color='#000088'>+     (LEON3_IrqCtrl_Regs->mask[LEON3_Cpu_Index] & (1 << (_source))); \
</font>    } while (0)
 
 

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/leon3/include/leon.h:1.7 rtems/c/src/lib/libbsp/sparc/leon3/include/leon.h:1.7.4.1
--- rtems/c/src/lib/libbsp/sparc/leon3/include/leon.h:1.7       Wed Sep  5 19:01:30 2007
+++ rtems/c/src/lib/libbsp/sparc/leon3/include/leon.h   Fri Mar  4 08:07:19 2011
</font><font color='#997700'>@@ -245,11 +245,11 @@
</font>   } while (0)
  
 #define LEON_Is_interrupt_pending( _source ) \
<font color='#880000'>-  (LEON3_IrqCtrl_Regs.ipend & (1 << (_source)))
</font><font color='#000088'>+  (LEON3_IrqCtrl_Regs->ipend & (1 << (_source)))
</font>  
 #define LEON_Is_interrupt_masked( _source ) \
   do {\
<font color='#880000'>-     (LEON3_IrqCtrl_Regs.mask[LEON3_Cpu_Index] & (1 << (_source))); \
</font><font color='#000088'>+     (LEON3_IrqCtrl_Regs->mask[LEON3_Cpu_Index] & (1 << (_source))); \
</font>    } while (0)
 
  

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/leon3/include/leon.h:1.8 rtems/c/src/lib/libbsp/sparc/leon3/include/leon.h:1.8.2.1
--- rtems/c/src/lib/libbsp/sparc/leon3/include/leon.h:1.8       Sun Nov 29 09:33:27 2009
+++ rtems/c/src/lib/libbsp/sparc/leon3/include/leon.h   Fri Mar  4 08:07:08 2011
</font><font color='#997700'>@@ -245,11 +245,11 @@
</font>   } while (0)
 
 #define LEON_Is_interrupt_pending( _source ) \
<font color='#880000'>-  (LEON3_IrqCtrl_Regs.ipend & (1 << (_source)))
</font><font color='#000088'>+  (LEON3_IrqCtrl_Regs->ipend & (1 << (_source)))
</font> 
 #define LEON_Is_interrupt_masked( _source ) \
   do {\
<font color='#880000'>-     (LEON3_IrqCtrl_Regs.mask[LEON3_Cpu_Index] & (1 << (_source))); \
</font><font color='#000088'>+     (LEON3_IrqCtrl_Regs->mask[LEON3_Cpu_Index] & (1 << (_source))); \
</font>    } while (0)
 
 
</pre>
<p> </p>

<p>--<br />
<small>Generated by <a href="http://www.codewiz.org/projects/index.html#loginfo">Deluxe Loginfo</a> 2.122 by Bernardo Innocenti <bernie@develer.com></small></p>
</body>
</html>