<!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-08-02)</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>jennifer</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2011-08-02 Jennifer.Averett <Jennifer.Averett@OARcorp.com>
PR 1872
* score/src/apimutexlock.c, score/src/apimutexunlock.c: Added smp
support to apimutex.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/ChangeLog.diff?r1=text&tr1=1.2898&r2=text&tr2=1.2899&diff_format=h">M</a></td><td width='1%'>1.2899</td><td width='100%'>cpukit/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/score/src/apimutexlock.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.5&diff_format=h">M</a></td><td width='1%'>1.5</td><td width='100%'>cpukit/score/src/apimutexlock.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/score/src/apimutexunlock.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.3&diff_format=h">M</a></td><td width='1%'>1.3</td><td width='100%'>cpukit/score/src/apimutexunlock.c</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/cpukit/ChangeLog:1.2898 rtems/cpukit/ChangeLog:1.2899
--- rtems/cpukit/ChangeLog:1.2898 Tue Aug 2 08:37:20 2011
+++ rtems/cpukit/ChangeLog Tue Aug 2 08:38:24 2011
</font><font color='#997700'>@@ -1,3 +1,9 @@
</font><font color='#000088'>+2011-08-02 Jennifer.Averett <Jennifer.Averett@OARcorp.com>
+
+ PR 1872
+ * score/src/apimutexlock.c, score/src/apimutexunlock.c: Added smp
+ support to apimutex.
+
</font> 2011-08-02 Petr Benes <benesp16@fel.cvut.cz>
PR 1861/cpukit
<font color='#006600'>diff -u rtems/cpukit/score/src/apimutexlock.c:1.4 rtems/cpukit/score/src/apimutexlock.c:1.5
--- rtems/cpukit/score/src/apimutexlock.c:1.4 Sun Nov 29 07:51:52 2009
+++ rtems/cpukit/score/src/apimutexlock.c Tue Aug 2 08:38:25 2011
</font><font color='#997700'>@@ -22,6 +22,10 @@
</font> {
ISR_Level level;
<font color='#000088'>+ #if defined(RTEMS_SMP)
+ _Thread_Disable_dispatch();
+ #endif
+
</font> _ISR_Disable( level );
_CORE_mutex_Seize(
<font color='#006600'>diff -u rtems/cpukit/score/src/apimutexunlock.c:1.2 rtems/cpukit/score/src/apimutexunlock.c:1.3
--- rtems/cpukit/score/src/apimutexunlock.c:1.2 Fri Nov 9 15:52:09 2007
+++ rtems/cpukit/score/src/apimutexunlock.c Tue Aug 2 08:38:25 2011
</font><font color='#997700'>@@ -20,7 +20,10 @@
</font> API_Mutex_Control *the_mutex
)
{
<font color='#880000'>- _Thread_Disable_dispatch();
</font><font color='#000088'>+ /* Dispatch is already disabled in SMP while lock is held. */
+ #if !defined(RTEMS_SMP)
+ _Thread_Disable_dispatch();
+ #endif
</font> _CORE_mutex_Surrender(
&the_mutex->Mutex,
the_mutex->Object.id,
</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>jennifer</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2011-08-02 Jennifer Averett <Jennifer.Averett@OARcorp.com>
* score/include/rtems/score/coremutex.h: Move check dispatch for seize
into its own macro and add smp support.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/ChangeLog.diff?r1=text&tr1=1.2899&r2=text&tr2=1.2900&diff_format=h">M</a></td><td width='1%'>1.2900</td><td width='100%'>cpukit/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/score/include/rtems/score/coremutex.h.diff?r1=text&tr1=1.44&r2=text&tr2=1.45&diff_format=h">M</a></td><td width='1%'>1.45</td><td width='100%'>cpukit/score/include/rtems/score/coremutex.h</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/cpukit/ChangeLog:1.2899 rtems/cpukit/ChangeLog:1.2900
--- rtems/cpukit/ChangeLog:1.2899 Tue Aug 2 08:38:24 2011
+++ rtems/cpukit/ChangeLog Tue Aug 2 08:59:48 2011
</font><font color='#997700'>@@ -1,3 +1,8 @@
</font><font color='#000088'>+2011-08-02 Jennifer Averett <Jennifer.Averett@OARcorp.com>
+
+ * score/include/rtems/score/coremutex.h: Move check dispatch for seize
+ into its own macro and add smp support.
+
</font> 2011-08-02 Jennifer.Averett <Jennifer.Averett@OARcorp.com>
PR 1872
<font color='#006600'>diff -u rtems/cpukit/score/include/rtems/score/coremutex.h:1.44 rtems/cpukit/score/include/rtems/score/coremutex.h:1.45
--- rtems/cpukit/score/include/rtems/score/coremutex.h:1.44 Fri Jun 17 10:40:08 2011
+++ rtems/cpukit/score/include/rtems/score/coremutex.h Tue Aug 2 08:59:48 2011
</font><font color='#997700'>@@ -8,7 +8,7 @@
</font> */
/*
<font color='#880000'>- * COPYRIGHT (c) 1989-2009.
</font><font color='#000088'>+ * COPYRIGHT (c) 1989-2011.
</font> * On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
<font color='#997700'>@@ -339,6 +339,25 @@
</font> Watchdog_Interval timeout
);
<font color='#000088'>+
+/**
+ * @brief Sieze Interrupt Wrapper
+ *
+ * This macro is to verify that a mutex blocking seize is
+ * performed from a safe system state. For example, one<span style="background-color: #FF0000"> </span>
+ * cannot block inside an isr.
+ *
+ * @return this method returns true if dispatch is in an unsafe state.
+ */
+#ifdef RTEMS_SMP
+ #define _CORE_mutex_Check_dispatch_for_seize(_wait) 0
+#else
+ #define _CORE_mutex_Check_dispatch_for_seize(_wait) \
+ (_Thread_Dispatch_in_critical_section() \
+ && (_wait) \
+ && (_System_state_Get() >= SYSTEM_STATE_BEGIN_MULTITASKING))
+#endif
+
</font> /**
* @brief Sieze Interrupt Wrapper
*
<font color='#997700'>@@ -366,14 +385,10 @@
</font> * * If the caller is willing to wait
* then they are blocked.
*/
<font color='#880000'>-
</font> #define _CORE_mutex_Seize_body( \
_the_mutex, _id, _wait, _timeout, _level ) \
do { \
<font color='#880000'>- if ( _Thread_Dispatch_in_critical_section() \
- && (_wait) \
- && (_System_state_Get() >= SYSTEM_STATE_BEGIN_MULTITASKING ) \
- ) { \
</font><font color='#000088'>+ if ( _CORE_mutex_Check_dispatch_for_seize(_wait) ) { \
</font> _Internal_error_Occurred( \
INTERNAL_ERROR_CORE, \
false, \
</pre>
<p> </p>
<a name='cs3'></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>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2011-08-02 Ricardo Aguirre <el.mastin@ymail.com>
PR 1874/tests
* Makefile.am, configure.ac, psxtmtests_plan.csv: Add benchmark of
multiple pthread_rwlock operations that can be done as single shot
times.
* psxtmrwlock01/.cvsignore, psxtmrwlock01/Makefile.am,
psxtmrwlock01/init.c, psxtmrwlock01/psxtmrwlock01.doc: New files.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/psxtmtests/ChangeLog.diff?r1=text&tr1=1.37&r2=text&tr2=1.38&diff_format=h">M</a></td><td width='1%'>1.38</td><td width='100%'>testsuites/psxtmtests/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/psxtmtests/Makefile.am.diff?r1=text&tr1=1.20&r2=text&tr2=1.21&diff_format=h">M</a></td><td width='1%'>1.21</td><td width='100%'>testsuites/psxtmtests/Makefile.am</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/psxtmtests/configure.ac.diff?r1=text&tr1=1.23&r2=text&tr2=1.24&diff_format=h">M</a></td><td width='1%'>1.24</td><td width='100%'>testsuites/psxtmtests/configure.ac</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/psxtmtests/psxtmrwlock01/.cvsignore?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">testsuites/psxtmtests/psxtmrwlock01/.cvsignore</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/psxtmtests/psxtmrwlock01/Makefile.am?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">testsuites/psxtmtests/psxtmrwlock01/Makefile.am</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/psxtmtests/psxtmrwlock01/init.c?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">testsuites/psxtmtests/psxtmrwlock01/init.c</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/psxtmtests/psxtmrwlock01/psxtmrwlock01.doc?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">testsuites/psxtmtests/psxtmrwlock01/psxtmrwlock01.doc</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/psxtmtests/psxtmtests_plan.csv.diff?r1=text&tr1=1.22&r2=text&tr2=1.23&diff_format=h">M</a></td><td width='1%'>1.23</td><td width='100%'>testsuites/psxtmtests/psxtmtests_plan.csv</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/testsuites/psxtmtests/ChangeLog:1.37 rtems/testsuites/psxtmtests/ChangeLog:1.38
--- rtems/testsuites/psxtmtests/ChangeLog:1.37 Fri Jul 29 11:54:32 2011
+++ rtems/testsuites/psxtmtests/ChangeLog Tue Aug 2 08:23:32 2011
</font><font color='#997700'>@@ -1,3 +1,12 @@
</font><font color='#000088'>+2011-08-02 Ricardo Aguirre <el.mastin@ymail.com>
+
+ PR 1874/tests
+ * Makefile.am, configure.ac, psxtmtests_plan.csv: Add benchmark of
+ multiple pthread_rwlock operations that can be done as single shot
+ times.
+ * psxtmrwlock01/.cvsignore, psxtmrwlock01/Makefile.am,
+ psxtmrwlock01/init.c, psxtmrwlock01/psxtmrwlock01.doc: New files.
+
</font> 2011-07-29 Ricardo Aguirre <el.mastin@ymail.com>
PR 1863/tests
<font color='#006600'>diff -u rtems/testsuites/psxtmtests/Makefile.am:1.20 rtems/testsuites/psxtmtests/Makefile.am:1.21
--- rtems/testsuites/psxtmtests/Makefile.am:1.20 Fri Jul 29 11:54:32 2011
+++ rtems/testsuites/psxtmtests/Makefile.am Tue Aug 2 08:23:33 2011
</font><font color='#997700'>@@ -21,6 +21,7 @@
</font> SUBDIRS += psxtmmutex07
SUBDIRS += psxtmnanosleep01
SUBDIRS += psxtmnanosleep02
<font color='#000088'>+SUBDIRS += psxtmrwlock01
</font> SUBDIRS += psxtmsem01
SUBDIRS += psxtmsem02
SUBDIRS += psxtmsem03
<font color='#006600'>diff -u rtems/testsuites/psxtmtests/configure.ac:1.23 rtems/testsuites/psxtmtests/configure.ac:1.24
--- rtems/testsuites/psxtmtests/configure.ac:1.23 Fri Jul 29 11:54:32 2011
+++ rtems/testsuites/psxtmtests/configure.ac Tue Aug 2 08:23:33 2011
</font><font color='#997700'>@@ -93,6 +93,7 @@
</font> psxtmmutex07/Makefile
psxtmnanosleep01/Makefile
psxtmnanosleep02/Makefile
<font color='#000088'>+psxtmrwlock01//Makefile
</font> psxtmsem01/Makefile
psxtmsem02/Makefile
psxtmsem03/Makefile
<font color='#006600'>diff -u /dev/null rtems/testsuites/psxtmtests/psxtmrwlock01/.cvsignore:1.1
--- /dev/null Tue Aug 2 09:11:49 2011
+++ rtems/testsuites/psxtmtests/psxtmrwlock01/.cvsignore Tue Aug 2 08:23:33 2011
</font><font color='#997700'>@@ -0,0 +1,2 @@
</font><font color='#000088'>+Makefile
+Makefile.in
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/psxtmtests/psxtmrwlock01/Makefile.am:1.1
--- /dev/null Tue Aug 2 09:11:49 2011
+++ rtems/testsuites/psxtmtests/psxtmrwlock01/Makefile.am Tue Aug 2 08:23:33 2011
</font><font color='#997700'>@@ -0,0 +1,30 @@
</font><font color='#000088'>+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = psxtmrwlock01
+psxtmrwlock01_SOURCES = init.c ../../tmtests/include/timesys.h \
+ ../../support/src/tmtests_empty_function.c \
+ ../../support/src/tmtests_support.c
+
+dist_rtems_tests_DATA = psxtmrwlock01.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+OPERATION_COUNT = @OPERATION_COUNT@
+AM_CPPFLAGS += -I$(top_srcdir)/../tmtests/include
+AM_CPPFLAGS += -DOPERATION_COUNT=$(OPERATION_COUNT)
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+
+LINK_OBJS = $(psxtmrwlock01_OBJECTS) $(psxtmrwlock01_LDADD)
+LINK_LIBS = $(psxtmrwlock01_LDLIBS)
+
+psxtmrwlock01$(EXEEXT): $(psxtmrwlock01_OBJECTS) $(psxtmrwlock01_DEPENDENCIES)
+ @rm -f psxtmrwlock01$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/psxtmtests/psxtmrwlock01/init.c:1.1
--- /dev/null Tue Aug 2 09:11:49 2011
+++ rtems/testsuites/psxtmtests/psxtmrwlock01/init.c Tue Aug 2 08:23:33 2011
</font><font color='#997700'>@@ -0,0 +1,254 @@
</font><font color='#000088'>+/*
+ * COPYRIGHT (c) 1989-2011.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ *
+ * $Id$
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <errno.h>
+#include <timesys.h>
+#include <rtems/timerdrv.h>
+#include <pthread.h>
+#include "test_support.h"
+
+pthread_rwlock_t rwlock;
+
+void benchmark_pthread_rwlock_init(void)
+{
+ long end_time;
+ int status;
+ pthread_rwlockattr_t attr;
+
+ pthread_rwlockattr_init( &attr );
+ benchmark_timer_initialize();
+ status = pthread_rwlock_init( &rwlock, &attr );
+ end_time = benchmark_timer_read();
+ rtems_test_assert( status == 0 );
+
+ put_time(
+ "pthread_rwlock_init",
+ end_time,
+ 1, /* Only executed once */
+ 0,
+ 0
+ );
+}
+
+void benchmark_pthread_rwlock_rdlock(void)
+{
+ long end_time;
+ int status;
+
+ benchmark_timer_initialize();
+ status = pthread_rwlock_rdlock(&rwlock);
+ end_time = benchmark_timer_read();
+ rtems_test_assert( status == 0 );
+
+ put_time(
+ "pthread_rwlock_rdlock - available",
+ end_time,
+ 1, /* Only executed once */
+ 0,
+ 0
+ );
+}
+
+void benchmark_pthread_rwlock_unlock(bool do_print)
+{
+ long end_time;
+ int status;
+
+ benchmark_timer_initialize();
+ status = pthread_rwlock_unlock(&rwlock);
+ end_time = benchmark_timer_read();
+ if ( status == EPERM )
+ puts( "The current thread does not own the read-write lock");
+ else
+ rtems_test_assert( status == 0 );
+
+ if ( do_print ) {
+ put_time(
+ "pthread_rwlock_unlock - available",
+ end_time,
+ 1, /* Only executed once */
+ 0,
+ 0
+ );
+ }
+}
+
+void benchmark_pthread_rwlock_tryrdlock(void)
+{
+ long end_time;
+ int status;
+
+ benchmark_timer_initialize();
+ status = pthread_rwlock_tryrdlock(&rwlock);
+ end_time = benchmark_timer_read();
+ rtems_test_assert( status == 0 );
+
+ put_time(
+ "pthread_rwlock_tryrdlock - available",
+ end_time,
+ 1, /* Only executed once */
+ 0,
+ 0
+ );
+}
+
+void benchmark_pthread_rwlock_timedrdlock(void)
+{
+ long end_time;
+ int status;
+
+ benchmark_timer_initialize();
+ status = pthread_rwlock_timedrdlock(&rwlock, 0);
+ end_time = benchmark_timer_read();
+ rtems_test_assert( status == 0 );
+
+ put_time(
+ "pthread_rwlock_timedrdlock - available",
+ end_time,
+ 1, /* Only executed once */
+ 0,
+ 0
+ );
+}
+
+void benchmark_pthread_rwlock_wrlock(void)
+{
+ long end_time;
+ int status;
+
+ benchmark_timer_initialize();
+ status = pthread_rwlock_wrlock(&rwlock);
+ end_time = benchmark_timer_read();
+ rtems_test_assert( status == 0 );
+
+ put_time(
+ "pthread_rwlock_wrlock - available",
+ end_time,
+ 1, /* Only executed once */
+ 0,
+ 0
+ );
+}
+
+void benchmark_pthread_rwlock_trywrlock(void)
+{
+ long end_time;
+ int status;
+
+ benchmark_timer_initialize();
+ status = pthread_rwlock_trywrlock(&rwlock);
+ end_time = benchmark_timer_read();
+ rtems_test_assert( status == 0 );
+
+ put_time(
+ "pthread_rwlock_trywrlock - available",
+ end_time,
+ 1, /* Only executed once */
+ 0,
+ 0
+ );
+}
+
+void benchmark_pthread_rwlock_timedwrlock(void)
+{
+ long end_time;
+ int status;
+
+ benchmark_timer_initialize();
+ status = pthread_rwlock_timedwrlock(&rwlock,0);
+ end_time = benchmark_timer_read();
+ rtems_test_assert( status == 0 );
+
+ put_time(
+ "pthread_rwlock_timedwrlock - available",
+ end_time,
+ 1, /* Only executed once */
+ 0,
+ 0
+ );
+}
+
+void benchmark_pthread_rwlock_destroy(void)
+{
+ long end_time;
+ int status;
+
+ benchmark_timer_initialize();
+ status = pthread_rwlock_destroy(&rwlock);
+ end_time = benchmark_timer_read();
+ rtems_test_assert( status == 0 );
+
+ put_time(
+ "pthread_rwlock_destroy",
+ end_time,
+ 1, /* Only executed once */
+ 0,
+ 0
+ );
+}
+
+void *POSIX_Init(
+ void *argument
+)
+{
+
+ puts( "\n\n*** POSIX TIME PSXTMRWLOCK 01 ***" );
+
+ /* initializing rwlock */
+ benchmark_pthread_rwlock_init();
+ /* applying a read lock */
+ benchmark_pthread_rwlock_rdlock();
+ /* unlocking rwlock */
+ benchmark_pthread_rwlock_unlock( true );
+ /* trying to apply a read lock when it is available */
+ benchmark_pthread_rwlock_tryrdlock();
+ /* unlocking rwlock */
+ benchmark_pthread_rwlock_unlock( false );
+ /* applying a timed read lock */
+ benchmark_pthread_rwlock_timedrdlock();
+ /* unlocking rwlock */
+ benchmark_pthread_rwlock_unlock( false );
+ /* applying a write lock */
+ benchmark_pthread_rwlock_wrlock();
+ /* unlocking rwlock */
+ benchmark_pthread_rwlock_unlock( false );
+ /* trying to apply a write lock, when it is available */
+ benchmark_pthread_rwlock_trywrlock();
+ /* unlocking rwlock */
+ benchmark_pthread_rwlock_unlock( false );
+ /* applying a timed write lock */
+ benchmark_pthread_rwlock_timedwrlock();
+ /* unlocking rwlock */
+ benchmark_pthread_rwlock_unlock( false );
+ /* destroying rwlock */
+ benchmark_pthread_rwlock_destroy();
+
+ puts( "*** END OF POSIX TIME PSXTMRWLOCK 01 ***" );
+ rtems_test_exit(0);
+}
+
+/* configuration information */
+
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
+
+#define CONFIGURE_MAXIMUM_POSIX_THREADS 1
+#define CONFIGURE_MAXIMUM_POSIX_RWLOCKS 1
+#define CONFIGURE_POSIX_INIT_THREAD_TABLE
+
+#define CONFIGURE_INIT
+
+#include <rtems/confdefs.h>
+/* end of file */
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/psxtmtests/psxtmrwlock01/psxtmrwlock01.doc:1.1
--- /dev/null Tue Aug 2 09:11:49 2011
+++ rtems/testsuites/psxtmtests/psxtmrwlock01/psxtmrwlock01.doc Tue Aug 2 08:23:33 2011
</font><font color='#997700'>@@ -0,0 +1,23 @@
</font><font color='#000088'>+#
+# $Id$
+#
+# COPYRIGHT (c) 1989-2011.
+# On-Line Applications Research Corporation (OAR).
+#
+# The license and distribution terms for this file may be
+# found in the file LICENSE in this distribution or at
+# http://www.rtems.com/license/LICENSE.
+#
+
+This test benchmarks the following operations:
+
++ pthread_rwlock_init<span style="background-color: #FF0000"> </span>
++ pthread_rwlock_rdlock - available<span style="background-color: #FF0000"> </span>
++ pthread_rwlock_unlock
++ pthread_rwlock_tryrdlock - available<span style="background-color: #FF0000"> </span>
++ pthread_rwlock_timedrdlock - available<span style="background-color: #FF0000"> </span>
++ pthread_rwlock_wrlock - available<span style="background-color: #FF0000"> </span>
++ pthread_rwlock_trywrlock - available<span style="background-color: #FF0000"> </span>
++ pthread_rwlock_timedwrlock - available<span style="background-color: #FF0000"> </span>
++ pthread_rwlock_destroy<span style="background-color: #FF0000"> </span>
+
</font>
<font color='#006600'>diff -u rtems/testsuites/psxtmtests/psxtmtests_plan.csv:1.22 rtems/testsuites/psxtmtests/psxtmtests_plan.csv:1.23
--- rtems/testsuites/psxtmtests/psxtmtests_plan.csv:1.22 Fri Jul 29 11:54:32 2011
+++ rtems/testsuites/psxtmtests/psxtmtests_plan.csv Tue Aug 2 08:23:33 2011
</font><font color='#997700'>@@ -63,22 +63,22 @@
</font> "pthread_spin_trylock - not available",,"psxtmtest_single",
"pthread_spin_unlock",,,
,,,
<font color='#880000'>-"pthread_rwlock_init",,"psxtmtest_init_destroy",
-"pthread_rwlock_destroy",,"psxtmtest_init_destroy",
-"pthread_rwlock_rdlock - available",,"psxtmtest_single",
</font><font color='#000088'>+"pthread_rwlock_init","psxtmrwlock01","psxtmtest_init_destroy","Yes"
+"pthread_rwlock_destroy","psxtmrwlock01","psxtmtest_init_destroy","Yes"
+"pthread_rwlock_rdlock - available","psxtmrwlock01","psxtmtest_single","Yes"
</font> "pthread_rwlock_rdlock - not available, blocks",,"psxtmtest_blocking",
<font color='#880000'>-"pthread_rwlock_tryrdlock - available",,"psxtmtest_single",
</font><font color='#000088'>+"pthread_rwlock_tryrdlock - available","psxtmrwlock01","psxtmtest_single","Yes"
</font> "pthread_rwlock_tryrdlock - not available",,"psxtmtest_single",
<font color='#880000'>-"pthread_rwlock_timedrdlock - available",,"psxtmtest_single",
</font><font color='#000088'>+"pthread_rwlock_timedrdlock - available","psxtmrwlock01","psxtmtest_single","Yes"
</font> "pthread_rwlock_timedrdlock - not available, blocks",,"psxtmtest_blocking",
<font color='#880000'>-"pthread_rwlock_unlock - no threads waiting",,,
</font><font color='#000088'>+"pthread_rwlock_unlock - no threads waiting","psxtmrwlock01","psxtmtest_single","Yes"
</font> "pthread_rwlock_unlock - thread waiting, no preempt",,,
"pthread_rwlock_unlock - thread waiting, preempt",,,
<font color='#880000'>-"pthread_rwlock_wrlock - available",,"psxtmtest_single",
</font><font color='#000088'>+"pthread_rwlock_wrlock - available","psxtmrwlock01","psxtmtest_single","Yes"
</font> "pthread_rwlock_wrlock - not available, blocks",,"psxtmtest_blocking",
<font color='#880000'>-"pthread_rwlock_trywrlock - available",,"psxtmtest_single",
</font><font color='#000088'>+"pthread_rwlock_trywrlock - available","psxtmrwlock01","psxtmtest_single","Yes"
</font> "pthread_rwlock_trywrlock - not available",,"psxtmtest_single",
<font color='#880000'>-"pthread_rwlock_timedwrlock - available",,"psxtmtest_single",
</font><font color='#000088'>+"pthread_rwlock_timedwrlock - available","psxtmrwlock01","psxtmtest_single","Yes"
</font> "pthread_rwlock_timedwrlock - not available, blocks",,"psxtmtest_blocking",
,,,
"mq_open (first open)","psxtmmq01","psxtmtest_init_destroy",
</pre>
<p> </p>
<a name='cs4'></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>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2011-08-02 Petr Benes <benesp16@fel.cvut.cz>
PR 1861/cpukit
* score/src/rbtreeextract.c: Remove redundant code.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/ChangeLog.diff?r1=text&tr1=1.2897&r2=text&tr2=1.2898&diff_format=h">M</a></td><td width='1%'>1.2898</td><td width='100%'>cpukit/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/score/src/rbtreeextract.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.4&diff_format=h">M</a></td><td width='1%'>1.4</td><td width='100%'>cpukit/score/src/rbtreeextract.c</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/cpukit/ChangeLog:1.2897 rtems/cpukit/ChangeLog:1.2898
--- rtems/cpukit/ChangeLog:1.2897 Mon Aug 1 14:21:46 2011
+++ rtems/cpukit/ChangeLog Tue Aug 2 08:37:20 2011
</font><font color='#997700'>@@ -1,3 +1,8 @@
</font><font color='#000088'>+2011-08-02 Petr Benes <benesp16@fel.cvut.cz>
+
+ PR 1861/cpukit
+ * score/src/rbtreeextract.c: Remove redundant code.
+
</font> 2011-08-01 Jennifer Averett <Jennifer.Averett@OARcorp.com>
* score/include/rtems/score/isr.h: Cleaned up comments.
<font color='#006600'>diff -u rtems/cpukit/score/src/rbtreeextract.c:1.3 rtems/cpukit/score/src/rbtreeextract.c:1.4
--- rtems/cpukit/score/src/rbtreeextract.c:1.3 Wed Jul 27 08:27:48 2011
+++ rtems/cpukit/score/src/rbtreeextract.c Tue Aug 2 08:37:21 2011
</font><font color='#997700'>@@ -54,8 +54,7 @@
</font> }
/* sibling is black, see if both of its children are also black. */
<font color='#880000'>- if (sibling &&
- !_RBTree_Is_red(sibling->child[RBT_RIGHT]) &&
</font><font color='#000088'>+ if (!_RBTree_Is_red(sibling->child[RBT_RIGHT]) &&
</font> !_RBTree_Is_red(sibling->child[RBT_LEFT])) {
sibling->color = RBT_RED;
if (_RBTree_Is_red(parent)) {
<font color='#997700'>@@ -65,7 +64,7 @@
</font> the_node = parent; /* done if parent is red */
parent = the_node->parent;
sibling = _RBTree_Sibling(the_node);
<font color='#880000'>- } else if(sibling) {
</font><font color='#000088'>+ } else {
</font> /* at least one of sibling's children is red. we now proceed in two
* cases, either the_node is to the left or the right of the parent.
* In both cases, first check if one of sibling's children is black,
<font color='#997700'>@@ -105,7 +104,7 @@
</font> RBTree_Color victim_color;
RBTree_Direction dir;
<font color='#880000'>- if(!the_node) return;
</font><font color='#000088'>+ if (!the_node) return;
</font>
/* check if min needs to be updated */
if (the_node == the_rbtree->first[RBT_LEFT]) {
<font color='#997700'>@@ -147,7 +146,7 @@
</font> * should become NULL. This may cause the coloring to be violated.
* For now we store the color of the node being deleted in victim_color.
*/
<font color='#880000'>- leaf = target->child[RBT_LEFT];
</font><font color='#000088'>+ leaf = target->child[RBT_LEFT];
</font> if(leaf) {
leaf->parent = target->parent;
} else {
<font color='#997700'>@@ -199,17 +198,14 @@
</font> }
/* fix coloring. leaf has moved up the tree. The color of the deleted
<font color='#880000'>- * node is in victim_color. There are three cases:
</font><font color='#000088'>+ * node is in victim_color. There are two cases:
</font> * 1. Deleted a red node, its child must be black. Nothing must be done.
<font color='#880000'>- * 2. Deleted a black node and the child is red. Paint child black.
- * 3. Deleted a black node and its child is black. This requires some
- * care and rotations.
</font><font color='#000088'>+ * 2. Deleted a black node, its child must be red. Paint child black.
</font> */
if (victim_color == RBT_BLACK) { /* eliminate case 1 */
<font color='#880000'>- if (_RBTree_Is_red(leaf))
</font><font color='#000088'>+ if (leaf) {
</font> leaf->color = RBT_BLACK; /* case 2 */
<font color='#880000'>- else if(leaf)
- _RBTree_Extract_validate_unprotected(leaf); /* case 3 */
</font><font color='#000088'>+ }
</font> }
/* Wipe the_node */
</pre>
<p> </p>
<a name='cs5'></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>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2011-08-02 Petr Benes <benesp16@fel.cvut.cz>
PR 1862/testing
* sprbtree01/init.c, sprbtree01/sprbtree01.scn: Improve test coverage.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/sptests/ChangeLog.diff?r1=text&tr1=1.469&r2=text&tr2=1.470&diff_format=h">M</a></td><td width='1%'>1.470</td><td width='100%'>testsuites/sptests/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/sptests/sprbtree01/init.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.3&diff_format=h">M</a></td><td width='1%'>1.3</td><td width='100%'>testsuites/sptests/sprbtree01/init.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/sptests/sprbtree01/sprbtree01.scn.diff?r1=text&tr1=1.2&r2=text&tr2=1.3&diff_format=h">M</a></td><td width='1%'>1.3</td><td width='100%'>testsuites/sptests/sprbtree01/sprbtree01.scn</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/testsuites/sptests/ChangeLog:1.469 rtems/testsuites/sptests/ChangeLog:1.470
--- rtems/testsuites/sptests/ChangeLog:1.469 Mon Aug 1 11:15:45 2011
+++ rtems/testsuites/sptests/ChangeLog Tue Aug 2 08:38:40 2011
</font><font color='#997700'>@@ -1,3 +1,8 @@
</font><font color='#000088'>+2011-08-02 Petr Benes <benesp16@fel.cvut.cz>
+
+ PR 1862/testing
+ * sprbtree01/init.c, sprbtree01/sprbtree01.scn: Improve test coverage.
+
</font> 2011-08-01 Joel Sherrill <joel.sherrill@oarcorp.com>
* sp75/init.c, sp75/sp75.doc, sp75/sp75.scn: Correct test and
<font color='#006600'>diff -u rtems/testsuites/sptests/sprbtree01/init.c:1.2 rtems/testsuites/sptests/sprbtree01/init.c:1.3
--- rtems/testsuites/sptests/sprbtree01/init.c:1.2 Wed Jul 27 08:35:11 2011
+++ rtems/testsuites/sptests/sprbtree01/init.c Tue Aug 2 08:38:41 2011
</font><font color='#997700'>@@ -96,6 +96,18 @@
</font> rtems_rbtree_insert( &rbtree1, &node1.Node );
rtems_rbtree_insert( &rbtree1, &node2.Node );
<font color='#000088'>+ p = _RBTree_Insert_unprotected( &rbtree1, NULL );
+ if (p != (void *)(-1))
+ puts( "INIT - FAILED NULL NODE INSERT" );
+
+ _RBTree_Rotate(NULL, RBT_LEFT);
+ i = (node1.Node.parent == &node2.Node);
+ _RBTree_Rotate( &node1.Node,
+ !node1.Node.child[RBT_LEFT] ? RBT_RIGHT : RBT_LEFT
+ );
+ if ( (node1.Node.parent == &node2.Node) != i )
+ puts( "INIT - FAILED FALSE ROTATION" );
+
</font> if (!rb_assert(rbtree1.root) )
puts( "INIT - FAILED TREE CHECK" );
<font color='#997700'>@@ -324,6 +336,27 @@
</font> rtems_test_exit(0);
}
<font color='#000088'>+ /* Additional rtems_rbtree_extract test which removes a node
+ * with two children while target node has a left child only. */
+ for ( i = 0; i < 7; i++ ) {
+ node_array[i].id = i;
+ node_array[i].Node.value = i;
+ }
+ rtems_rbtree_insert( &rbtree1, &node_array[3].Node );
+ rtems_rbtree_insert( &rbtree1, &node_array[1].Node );
+ rtems_rbtree_insert( &rbtree1, &node_array[5].Node );
+ rtems_rbtree_insert( &rbtree1, &node_array[0].Node );
+ rtems_rbtree_insert( &rbtree1, &node_array[2].Node );
+ rtems_rbtree_insert( &rbtree1, &node_array[4].Node );
+ rtems_rbtree_insert( &rbtree1, &node_array[6].Node );
+ rtems_rbtree_extract( &rbtree1, &node_array[2].Node );
+ /* node_array[1] has now only a left child. */
+ if ( !node_array[1].Node.child[RBT_LEFT] ||
+ node_array[1].Node.child[RBT_RIGHT] )
+ puts( "INIT - LEFT CHILD ONLY NOT FOUND" );
+ rtems_rbtree_extract( &rbtree1, &node_array[3].Node );
+ while( (p = rtems_rbtree_get_max(&rbtree1)) );
+
</font> puts( "INIT - Verify rtems_rbtree_get_max with 100 nodes value [99,0]" );
for (i = 0; i < 100; i++) {
node_array[i].id = 99-i;
<font color='#997700'>@@ -368,32 +401,39 @@
</font> }
puts( "INIT - Verify rtems_rbtree_find" );
<font color='#880000'>- p = rtems_rbtree_find(&rbtree1, 50);
- if(rtems_rbtree_container_of(p,test_node,Node)->id != 50) {
</font><font color='#000088'>+ p = rtems_rbtree_find(&rbtree1, 30);
+ if(rtems_rbtree_container_of(p,test_node,Node)->id != 30) {
</font> puts ("INIT - ERROR ON RBTREE ID MISMATCH");
rtems_test_exit(0);
}
puts( "INIT - Verify rtems_rbtree_predecessor/successor");
p = rtems_rbtree_predecessor(p);
<font color='#880000'>- if(p && rtems_rbtree_container_of(p,test_node,Node)->id > 50) {
</font><font color='#000088'>+ if(p && rtems_rbtree_container_of(p,test_node,Node)->id > 30) {
</font> puts ("INIT - ERROR ON RBTREE ID MISMATCH");
rtems_test_exit(0);
}
<font color='#880000'>- p = rtems_rbtree_find(&rbtree1, 50);
</font><font color='#000088'>+ p = rtems_rbtree_find(&rbtree1, 30);
</font> p = rtems_rbtree_successor(p);
<font color='#880000'>- if(p && rtems_rbtree_container_of(p,test_node,Node)->id < 50) {
</font><font color='#000088'>+ if(p && rtems_rbtree_container_of(p,test_node,Node)->id < 30) {
</font> puts ("INIT - ERROR ON RBTREE ID MISMATCH");
rtems_test_exit(0);
}
<font color='#880000'>- p = rtems_rbtree_find(&rbtree1, 50);
</font><font color='#000088'>+ p = rtems_rbtree_find(&rbtree1, 30);
</font> puts( "INIT - Verify rtems_rbtree_find_header" );
if (rtems_rbtree_find_header(p) != &rbtree1) {
puts ("INIT - ERROR ON RBTREE HEADER MISMATCH");
rtems_test_exit(0);
}
<font color='#000088'>+ if ( _RBTree_Sibling( NULL ) != NULL )
+ puts ( "INIT - ERROR ON RBTREE NULL SIBLING MISMATCH" );
+ if ( _RBTree_Sibling( rbtree1.root ) != NULL )
+ puts ( "INIT - ERROR ON RBTREE NULL SIBLING MISMATCH" );
+ if ( _RBTree_Grandparent( NULL ) != NULL )
+ puts ( "INIT - ERROR ON RBTREE NULL GRANDPARENT MISMATCH" );
+
</font> puts( "INIT - Removing 100 nodes" );
for ( p = rtems_rbtree_get_max(&rbtree1), id = 99 ; p ;
<font color='#997700'>@@ -417,6 +457,15 @@
</font> rtems_test_exit(0);
}
<font color='#000088'>+ if (rtems_rbtree_find_header(p) != NULL) {
+ puts ("INIT - ERROR ON RBTREE HEADER MISMATCH");
+ rtems_test_exit(0);
+ }
+ if (rtems_rbtree_find_header(NULL) != NULL) {
+ puts ("INIT - ERROR ON RBTREE HEADER MISMATCH");
+ rtems_test_exit(0);
+ }
+
</font> puts("INIT - Insert 20 random numbers");
for (i = 0; i < 20; i++) {
node_array[i].id = numbers[i];
<font color='#997700'>@@ -450,6 +499,38 @@
</font> rtems_test_exit(0);
}
<font color='#000088'>+ puts( "INIT - Verify rtems_rbtree_initialize with 100 nodes value [0,99]" );
+ for (i = 0; i < 100; i++) {
+ node_array[i].id = i;
+ node_array[i].Node.value = i;
+ }
+ rtems_rbtree_initialize( &rbtree1, &node_array[0].Node, 100,
+ sizeof(test_node));
+
+ puts( "INIT - Removing 100 nodes" );
+
+ for ( p = rtems_rbtree_get_min(&rbtree1), id = 0 ; p ;
+ p = rtems_rbtree_get_min(&rbtree1) , id++ ) {
+ test_node *t = rtems_rbtree_container_of(p,test_node,Node);
+ if ( id > 99 ) {
+ puts( "INIT - TOO MANY NODES ON RBTREE" );
+ rtems_test_exit(0);
+ }
+
+ if ( t->id != id ) {
+ puts( "INIT - ERROR ON RBTREE ID MISMATCH" );
+ rtems_test_exit(0);
+ }
+
+ if (!rb_assert(rbtree1.root) )
+ puts( "INIT - FAILED TREE CHECK" );
+ }
+
+ if(!rtems_rbtree_is_empty(&rbtree1)) {
+ puts( "INIT - TREE NOT EMPTY" );
+ rtems_test_exit(0);
+ }
+
</font> puts( "*** END OF RTEMS RBTREE API TEST ***" );
rtems_test_exit(0);
}
<font color='#006600'>diff -u rtems/testsuites/sptests/sprbtree01/sprbtree01.scn:1.2 rtems/testsuites/sptests/sprbtree01/sprbtree01.scn:1.3
--- rtems/testsuites/sptests/sprbtree01/sprbtree01.scn:1.2 Wed Jul 27 08:35:11 2011
+++ rtems/testsuites/sptests/sprbtree01/sprbtree01.scn Tue Aug 2 08:38:41 2011
</font><font color='#997700'>@@ -17,6 +17,11 @@
</font> INIT - Removing 100 nodes
INIT - Verify rtems_rbtree_get_max with 100 nodes value [0,99]
INIT - Verify rtems_rbtree_find
<font color='#000088'>+INIT - Verify rtems_rbtree_predecessor/successor
</font> INIT - Verify rtems_rbtree_find_header
INIT - Removing 100 nodes
<font color='#000088'>+INIT - Insert 20 random numbers
+INIT - Removing 20 nodes
+INIT - Verify rtems_rbtree_initialize with 100 nodes value [0,99]
+INIT - Removing 100 nodes
</font> *** END OF RTEMS RBTREE API TEST ***
</pre>
<p> </p>
<a name='cs6'></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>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2011-08-02 Sebastien Bourdeauducq <sebastien.bourdeauducq@gmail.com>
PR 1869/bsps
* README: Merge content from lm32/README which was specific to
this BSP.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/lm32/lm32_evr/ChangeLog.diff?r1=text&tr1=1.19&r2=text&tr2=1.20&diff_format=h">M</a></td><td width='1%'>1.20</td><td width='100%'>c/src/lib/libbsp/lm32/lm32_evr/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/lm32/lm32_evr/README.diff?r1=text&tr1=1.2&r2=text&tr2=1.3&diff_format=h">M</a></td><td width='1%'>1.3</td><td width='100%'>c/src/lib/libbsp/lm32/lm32_evr/README</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/lm32/lm32_evr/ChangeLog:1.19 rtems/c/src/lib/libbsp/lm32/lm32_evr/ChangeLog:1.20
--- rtems/c/src/lib/libbsp/lm32/lm32_evr/ChangeLog:1.19 Wed Feb 2 08:58:26 2011
+++ rtems/c/src/lib/libbsp/lm32/lm32_evr/ChangeLog Tue Aug 2 09:04:27 2011
</font><font color='#997700'>@@ -1,3 +1,9 @@
</font><font color='#000088'>+2011-08-02 Sebastien Bourdeauducq <sebastien.bourdeauducq@gmail.com>
+
+ PR 1869/bsps
+ * README: Merge content from lm32/README which was specific to
+ this BSP.
+
</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/lm32/lm32_evr/README:1.2 rtems/c/src/lib/libbsp/lm32/lm32_evr/README:1.3
--- rtems/c/src/lib/libbsp/lm32/lm32_evr/README:1.2 Wed Feb 25 15:32:22 2009
+++ rtems/c/src/lib/libbsp/lm32/lm32_evr/README Tue Aug 2 09:04:27 2011
</font><font color='#997700'>@@ -1,6 +1,41 @@
</font> #
# $Id$
#
<font color='#000088'>+# The Lattice Mico32 port uses the system_config.h generated by the Mico
+# System Builder to retrieve the properties of the peripherals.
+#
+# Implemented (in shared/ subdirectory)
+# Polled console driver (uart)
+# Clock interrupt with 10 ms tick
+# Networking using Lattice tri-speed ethernet MAC
+#
+# Todo
+# Support more peripherals:
+# - uart driver using interrupts
+#
+# jukka.pietarinen@mrf.fi, 3.12.2008
+#<span style="background-color: #FF0000"> </span>
+
+BSP NAME: lm32_evr
+BOARD: cRIO-EVR, Micro-Research Finland Oy
+BUS: wishbone
+CPU FAMILY: lm32 (Lattice Mico32)
+CPU: small
+COPROCESSORS: none
+MODE: 32 bit mode
+
+DEBUG MONITOR: none
+
+PERIPHERALS
+===========
+TIMERS: clock
+ RESOLUTION: 10 ms
+SERIAL PORTS: uart
+REAL-TIME CLOCK: none
+DMA: none
+VIDEO: none
+SCSI: none
+NETWORKING: tsmac
</font>
To on the simulator included in lm32-gdb use these commands:
</pre>
<p> </p>
<a name='cs7'></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>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2011-08-02 Sebastien Bourdeauducq <sebastien.bourdeauducq@gmail.com>
PR 1869/bsps
* milkymist_networking/mm_crc32.c: Removed.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/lm32/shared/ChangeLog.diff?r1=text&tr1=1.1&r2=text&tr2=1.2&diff_format=h">M</a></td><td width='1%'>1.2</td><td width='100%'>c/src/lib/libbsp/lm32/shared/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/lm32/shared/milkymist_networking/mm_crc32.c?rev=1.1&content-type=text/vnd.viewcvs-markup">R</a></td><td width='1%'><font color="#880000">1.1</font></td><td width='100%'><font color="#880000">c/src/lib/libbsp/lm32/shared/milkymist_networking/mm_crc32.c</font></td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/lm32/shared/ChangeLog:1.1 rtems/c/src/lib/libbsp/lm32/shared/ChangeLog:1.2
--- rtems/c/src/lib/libbsp/lm32/shared/ChangeLog:1.1 Mon Aug 1 08:48:39 2011
+++ rtems/c/src/lib/libbsp/lm32/shared/ChangeLog Tue Aug 2 09:04:31 2011
</font><font color='#997700'>@@ -1,3 +1,8 @@
</font><font color='#000088'>+2011-08-02 Sebastien Bourdeauducq <sebastien.bourdeauducq@gmail.com>
+
+ PR 1869/bsps
+ * milkymist_networking/mm_crc32.c: Removed.
+
</font> 2011-08-01 Sebastien Bourdeauducq <sebastien.bourdeauducq@gmail.com>
PR 1869/bsps
</pre>
<p> </p>
<a name='cs8'></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>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2011-08-02 Sebastien Bourdeauducq <sebastien.bourdeauducq@gmail.com>
PR 1869/bsps
* ChangeLog: Spacing.
* README: Removed.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/lm32/ChangeLog.diff?r1=text&tr1=1.19&r2=text&tr2=1.20&diff_format=h">M</a></td><td width='1%'>1.20</td><td width='100%'>c/src/lib/libbsp/lm32/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/lm32/README?rev=1.1&content-type=text/vnd.viewcvs-markup">R</a></td><td width='1%'><font color="#880000">1.1</font></td><td width='100%'><font color="#880000">c/src/lib/libbsp/lm32/README</font></td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/lm32/ChangeLog:1.19 rtems/c/src/lib/libbsp/lm32/ChangeLog:1.20
--- rtems/c/src/lib/libbsp/lm32/ChangeLog:1.19 Fri Feb 11 06:13:12 2011
+++ rtems/c/src/lib/libbsp/lm32/ChangeLog Tue Aug 2 09:04:40 2011
</font><font color='#997700'>@@ -1,3 +1,79 @@
</font><font color='#000088'>+2011-08-02 Sebastien Bourdeauducq <sebastien.bourdeauducq@gmail.com>
+
+ PR 1869/bsps
+ * ChangeLog: Spacing.
+ * README: Removed.
+
+2011-08-01 Sébastien Bourdeauducq <sebastien@milkymist.org>
+
+ * c/src/lib/libbsp/lm32/README,
+ c/src/lib/libbsp/lm32/lm32_evr/README,
+ c/src/lib/libbsp/lm32/milkymist/Makefile.am,
+ c/src/lib/libbsp/lm32/milkymist/README,
+ c/src/lib/libbsp/lm32/milkymist/include/bsp.h,
+ c/src/lib/libbsp/lm32/milkymist/include/system_conf.h,
+ c/src/lib/libbsp/lm32/milkymist/include/tm27.h,
+ c/src/lib/libbsp/lm32/milkymist/make/custom/milkymist.cfg,
+ c/src/lib/libbsp/lm32/milkymist/preinstall.am,
+ c/src/lib/libbsp/lm32/milkymist/startup/bspclean.c,
+ c/src/lib/libbsp/lm32/milkymist/startup/linkcmds,
+ c/src/lib/libbsp/lm32/shared/include/irq.h,
+ c/src/lib/libbsp/lm32/shared/irq/irq.c,
+ c/src/lib/libbsp/lm32/shared/milkymist_ac97/ac97.c,
+ c/src/lib/libbsp/lm32/shared/milkymist_ac97/milkymist_ac97.h,
+ c/src/lib/libbsp/lm32/shared/milkymist_buttons/buttons.c,
+ c/src/lib/libbsp/lm32/shared/milkymist_buttons/milkymist_buttons.h,
+ c/src/lib/libbsp/lm32/shared/milkymist_clock/ckinit.c,
+ c/src/lib/libbsp/lm32/shared/milkymist_clock/clock.h,
+ c/src/lib/libbsp/lm32/shared/milkymist_console/console.c,
+ c/src/lib/libbsp/lm32/shared/milkymist_console/uart.c,
+ c/src/lib/libbsp/lm32/shared/milkymist_console/uart.h,
+ c/src/lib/libbsp/lm32/shared/milkymist_dmx/dmx.c,
+ c/src/lib/libbsp/lm32/shared/milkymist_dmx/milkymist_dmx.h,
+ c/src/lib/libbsp/lm32/shared/milkymist_flash/flash.c,
+ c/src/lib/libbsp/lm32/shared/milkymist_flash/milkymist_flash.h,
+ c/src/lib/libbsp/lm32/shared/milkymist_framebuffer/framebuffer.c,
+ c/src/lib/libbsp/lm32/shared/milkymist_gpio/gpio.c,
+ c/src/lib/libbsp/lm32/shared/milkymist_gpio/milkymist_gpio.h,
+ c/src/lib/libbsp/lm32/shared/milkymist_ir/ir.c,
+ c/src/lib/libbsp/lm32/shared/milkymist_ir/milkymist_ir.h,
+ c/src/lib/libbsp/lm32/shared/milkymist_memcard/memcard.c,
+ c/src/lib/libbsp/lm32/shared/milkymist_memcard/milkymist_memcard.h,
+ c/src/lib/libbsp/lm32/shared/milkymist_midi/midi.c,
+ c/src/lib/libbsp/lm32/shared/milkymist_midi/milkymist_midi.h,
+ c/src/lib/libbsp/lm32/shared/milkymist_networking/mm_crc32.c,
+ c/src/lib/libbsp/lm32/shared/milkymist_networking/network.c,
+ c/src/lib/libbsp/lm32/shared/milkymist_networking/network.h,
+ c/src/lib/libbsp/lm32/shared/milkymist_pfpu/milkymist_pfpu.h,
+ c/src/lib/libbsp/lm32/shared/milkymist_pfpu/pfpu.c,
+ c/src/lib/libbsp/lm32/shared/milkymist_timer/timer.c,
+ c/src/lib/libbsp/lm32/shared/milkymist_tmu/milkymist_tmu.h,
+ c/src/lib/libbsp/lm32/shared/milkymist_tmu/tmu.c,
+ c/src/lib/libbsp/lm32/shared/milkymist_usbinput/comloc.h,
+ c/src/lib/libbsp/lm32/shared/milkymist_usbinput/milkymist_usbinput.h,
+ c/src/lib/libbsp/lm32/shared/milkymist_usbinput/softusb-input.h,
+ c/src/lib/libbsp/lm32/shared/milkymist_usbinput/usbinput.c,
+ c/src/lib/libbsp/lm32/shared/milkymist_versions/milkymist_versions.h,
+ c/src/lib/libbsp/lm32/shared/milkymist_versions/versions.c,
+ c/src/lib/libbsp/lm32/shared/milkymist_video/milkymist_video.h,
+ c/src/lib/libbsp/lm32/shared/milkymist_video/video.c,
+ c/src/lib/libbsp/lm32/shared/start/start.S,
+ c/src/lib/libbsp/lm32/shared/startup/bspstart.c,
+ c/src/lib/libbsp/lm32/shared/startup/setvec.c:
+ Full port to the Milkymist One. Supports Milkymist SoC 1.0.x.
+ Includes new or updated drivers for:
+ - Multi-standard video input (PAL/SECAM/NTSC)
+ - Two DMX512 (RS485) ports
+ - MIDI IN and MIDI OUT ports
+ - VGA output
+ - AC'97 audio
+ - NOR flash
+ - 10/100 Ethernet
+ - Memory card (experimental and incomplete)
+ - USB host connectors (input devices only)
+ - RC5 infrared receiver
+ - RS232 debug port
+
</font> 2011-02-11 Ralf Corsépius <ralf.corsepius@rtems.org>
* shared/milkymist_networking/network.c:
</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>