<!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 (2010-06-07)</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>2010-06-07 Bharath Suri <bharath.s.jois@gmail.com>

        PR PR1542
        * Makefile.am, configure.ac: Coverage improvement: fifo_open.
        * spfifo01/spfifo01.doc, spfifo01/spfifo01.scn, spfifo01/test.c,
        spfifo02/Makefile.am, spfifo02/main.c, spfifo02/spfifo02.doc,
        spfifo02/spfifo02.scn, spfifo02/test.c, spfifo03/Makefile.am,
        spfifo03/main.c, spfifo03/spfifo03.doc, spfifo03/spfifo03.scn,
        spfifo03/test.c, spfifo04/Makefile.am, spfifo04/main.c,
        spfifo04/spfifo04.doc, spfifo04/spfifo04.scn, spfifo04/test.c: New
        files.
</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.366&r2=text&tr2=1.367&diff_format=h">M</a></td><td width='1%'>1.367</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/Makefile.am.diff?r1=text&tr1=1.83&r2=text&tr2=1.84&diff_format=h">M</a></td><td width='1%'>1.84</td><td width='100%'>testsuites/sptests/Makefile.am</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/sptests/configure.ac.diff?r1=text&tr1=1.88&r2=text&tr2=1.89&diff_format=h">M</a></td><td width='1%'>1.89</td><td width='100%'>testsuites/sptests/configure.ac</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/sptests/spfifo01/spfifo01.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/sptests/spfifo01/spfifo01.doc</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/sptests/spfifo01/spfifo01.scn?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/sptests/spfifo01/spfifo01.scn</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/sptests/spfifo01/test.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/sptests/spfifo01/test.c</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/sptests/spfifo02/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/sptests/spfifo02/Makefile.am</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/sptests/spfifo02/main.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/sptests/spfifo02/main.c</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/sptests/spfifo02/spfifo02.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/sptests/spfifo02/spfifo02.doc</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/sptests/spfifo02/spfifo02.scn?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/sptests/spfifo02/spfifo02.scn</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/sptests/spfifo02/test.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/sptests/spfifo02/test.c</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/sptests/spfifo03/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/sptests/spfifo03/Makefile.am</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/sptests/spfifo03/main.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/sptests/spfifo03/main.c</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/sptests/spfifo03/spfifo03.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/sptests/spfifo03/spfifo03.doc</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/sptests/spfifo03/spfifo03.scn?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/sptests/spfifo03/spfifo03.scn</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/sptests/spfifo03/test.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/sptests/spfifo03/test.c</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/sptests/spfifo04/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/sptests/spfifo04/Makefile.am</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/sptests/spfifo04/main.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/sptests/spfifo04/main.c</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/sptests/spfifo04/spfifo04.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/sptests/spfifo04/spfifo04.doc</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/sptests/spfifo04/spfifo04.scn?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/sptests/spfifo04/spfifo04.scn</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/sptests/spfifo04/test.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/sptests/spfifo04/test.c</font></td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/testsuites/sptests/ChangeLog:1.366 rtems/testsuites/sptests/ChangeLog:1.367
--- rtems/testsuites/sptests/ChangeLog:1.366    Mon Jun  7 04:33:16 2010
+++ rtems/testsuites/sptests/ChangeLog  Mon Jun  7 14:09:27 2010
</font><font color='#997700'>@@ -1,3 +1,15 @@
</font><font color='#000088'>+2010-06-07    Bharath Suri <bharath.s.jois@gmail.com>
+
+       PR PR1542
+       * Makefile.am, configure.ac: Coverage improvement: fifo_open.
+       * spfifo01/spfifo01.doc, spfifo01/spfifo01.scn, spfifo01/test.c,
+       spfifo02/Makefile.am, spfifo02/main.c, spfifo02/spfifo02.doc,
+       spfifo02/spfifo02.scn, spfifo02/test.c, spfifo03/Makefile.am,
+       spfifo03/main.c, spfifo03/spfifo03.doc, spfifo03/spfifo03.scn,
+       spfifo03/test.c, spfifo04/Makefile.am, spfifo04/main.c,
+       spfifo04/spfifo04.doc, spfifo04/spfifo04.scn, spfifo04/test.c: New
+       files.
+
</font> 2010-06-07        Sebastian Huber <Sebastian.Huber@embedded-brains.de>
 
        * sp09/screen12.c: Update for heap extend changes.

<font color='#006600'>diff -u rtems/testsuites/sptests/Makefile.am:1.83 rtems/testsuites/sptests/Makefile.am:1.84
--- rtems/testsuites/sptests/Makefile.am:1.83   Wed Mar 10 12:14:43 2010
+++ rtems/testsuites/sptests/Makefile.am        Mon Jun  7 14:09:27 2010
</font><font color='#997700'>@@ -18,6 +18,7 @@
</font>     spstkalloc spthreadq01 spwatchdog spwkspace \
     spfatal01 spfatal02 spfatal03 spfatal04 spfatal05 spfatal06 spfatal07 \
     spfatal08 spfatal09 spfatal10 spfatal11 spfatal12 spfatal13 \
<font color='#000088'>+    spfifo01 spfifo02 spfifo03 spfifo04 \
</font>     spintrcritical01 spintrcritical02 spintrcritical03 spintrcritical04 \
     spintrcritical05 spintrcritical06 spintrcritical07 spintrcritical08 \
     spintrcritical09 spintrcritical10 spintrcritical11 spintrcritical12 \

<font color='#006600'>diff -u rtems/testsuites/sptests/configure.ac:1.88 rtems/testsuites/sptests/configure.ac:1.89
--- rtems/testsuites/sptests/configure.ac:1.88  Wed Mar 10 12:14:43 2010
+++ rtems/testsuites/sptests/configure.ac       Mon Jun  7 14:09:27 2010
</font><font color='#997700'>@@ -111,6 +111,10 @@
</font> spfatal11/Makefile
 spfatal12/Makefile
 spfatal13/Makefile
<font color='#000088'>+spfifo01/Makefile
+spfifo02/Makefile
+spfifo03/Makefile
+spfifo04/Makefile
</font> spintrcritical01/Makefile
 spintrcritical02/Makefile
 spintrcritical03/Makefile

<font color='#006600'>diff -u /dev/null rtems/testsuites/sptests/spfifo01/spfifo01.doc:1.1
--- /dev/null   Mon Jun  7 14:11:22 2010
+++ rtems/testsuites/sptests/spfifo01/spfifo01.doc      Mon Jun  7 14:09:27 2010
</font><font color='#997700'>@@ -0,0 +1,24 @@
</font><font color='#000088'>+#
+#  $Id$
+#
+#  COPYRIGHT (c) 1989-1999.
+#  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 file describes the directives and concepts tested by this test set.
+
+Configuration:
+
+Pipes not enabled.
+
+Expected:
+
+With pipes not enabled, the semaphore required for creation of new
+pipe will not be available (this semaphore is created at init if pipes
+are enabled)
+
+With this, fifo_open fails with EINTR
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/sptests/spfifo01/spfifo01.scn:1.1
--- /dev/null   Mon Jun  7 14:11:22 2010
+++ rtems/testsuites/sptests/spfifo01/spfifo01.scn      Mon Jun  7 14:09:27 2010
</font><font color='#997700'>@@ -0,0 +1,29 @@
</font><font color='#000088'>+Could not open '/dev/kqemu' - QEMU acceleration layer not activated: No such file or directory
+Initialized console on port COM1 9600-8-N-1
+<span style="background-color: #FF0000"><CR></span>
+ <span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+*** FIFO / PIPE OPEN TEST - 1 ***<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Configuration: Pipes not enabled<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Creating directory /tmp<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Creating fifo /tmp/fifo<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Attempt to open the fifo file<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Must result in failure since pipes are not enabled in the configuration<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Remove the entry /tmp/fifo01<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Remove directory /tmp<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+*** END OF FIFO / PIPE OPEN TEST - 1 ***<span style="background-color: #FF0000"><CR></span>
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/sptests/spfifo01/test.c:1.1
--- /dev/null   Mon Jun  7 14:11:22 2010
+++ rtems/testsuites/sptests/spfifo01/test.c    Mon Jun  7 14:09:27 2010
</font><font color='#997700'>@@ -0,0 +1,73 @@
</font><font color='#000088'>+/*  test_main
+ *
+ *  This routine serves as a test routine.
+ *  Exercises the fifo_open
+ *
+ *  Input parameters:   NONE
+ *
+ *  Output parameters:  NONE
+ *
+ *  COPYRIGHT (c) 1989-1999.
+ *  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$
+ */
+
+/* Includes */
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <errno.h>
+
+#include <tmacros.h>
+#include <rtems.h>
+#include <rtems/libio.h>
+
+
+void test_main(void)
+{
+
+  int status = -1;
+  int fd = 0;
+
+  puts("\n\n*** FIFO / PIPE OPEN TEST - 1 ***");
+  puts(
+"\n\nConfiguration: Pipes not enabled"
+       );
+
+  puts("\n\nCreating directory /tmp");
+  status = mkdir("/tmp", 0777);
+  rtems_test_assert(status == 0);
+
+  puts("\n\nCreating fifo /tmp/fifo");
+  status = mkfifo("/tmp/fifo01", 0777);
+  rtems_test_assert(status == 0);
+
+  puts("\n\nAttempt to open the fifo file\n");
+  puts(
+       "Must result in failure since \
+pipes are not enabled in the configuration"
+       );
+
+  fd = open("/tmp/fifo01", O_RDONLY);
+  rtems_test_assert(fd == -1);
+  rtems_test_assert(errno == EINTR); // Should this
+                                     // be ENOMEM?
+  puts("\n\nRemove the entry /tmp/fifo01");
+  status = unlink("/tmp/fifo01");
+  rtems_test_assert(status == 0);
+
+  puts("\n\nRemove directory /tmp");
+  status = rmdir("/tmp");
+  rtems_test_assert(status == 0);
+
+  puts("\n\n*** END OF FIFO / PIPE OPEN TEST - 1 ***");
+}
+<span style="background-color: #FF0000">  </span>
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/sptests/spfifo02/Makefile.am:1.1
--- /dev/null   Mon Jun  7 14:11:22 2010
+++ rtems/testsuites/sptests/spfifo02/Makefile.am       Mon Jun  7 14:09:27 2010
</font><font color='#997700'>@@ -0,0 +1,27 @@
</font><font color='#000088'>+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = spfifo02
+spfifo02_SOURCES = main.c test.c
+
+dist_rtems_tests_DATA = spfifo02.scn
+dist_rtems_tests_DATA += spfifo02.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+
+LINK_OBJS = $(spfifo02_OBJECTS) $(spfifo02_LDADD)
+LINK_LIBS = $(spfifo02_LDLIBS)
+
+spfifo02$(EXEEXT): $(spfifo02_OBJECTS) $(spfifo02_DEPENDENCIES)
+       @rm -f spfifo02$(EXEEXT)
+       $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/sptests/spfifo02/main.c:1.1
--- /dev/null   Mon Jun  7 14:11:22 2010
+++ rtems/testsuites/sptests/spfifo02/main.c    Mon Jun  7 14:09:27 2010
</font><font color='#997700'>@@ -0,0 +1,50 @@
</font><font color='#000088'>+/*  Init
+ *
+ *  This routine is the initialization task for this test program.
+ *  It is a user initialization task and has the responsibility
+ *  of invoking the test routine
+ *
+ *  Input parameters:
+ *    not_used
+ *
+ *  Output parameters:  NONE
+ *
+ *  COPYRIGHT (c) 1989-1999.
+ *  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$
+ */
+
+/* Includes */
+#include <bsp.h>
+#include <tmacros.h>
+
+void test_main(void);
+
+rtems_task Init(
+  rtems_task_argument not_used
+)
+{
+  test_main();
+  rtems_test_exit(0);
+}
+
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+
+#define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
+#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 6
+
+#define CONFIGURE_MAXIMUM_TASKS 1
+
+#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+#define CONFIGURE_PIPES_ENABLED
+#define CONFIGURE_INIT
+
+#include <rtems/confdefs.h>
+
+/* end of file */
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/sptests/spfifo02/spfifo02.doc:1.1
--- /dev/null   Mon Jun  7 14:11:22 2010
+++ rtems/testsuites/sptests/spfifo02/spfifo02.doc      Mon Jun  7 14:09:27 2010
</font><font color='#997700'>@@ -0,0 +1,22 @@
</font><font color='#000088'>+#
+#  $Id$
+#
+#  COPYRIGHT (c) 1989-1999.
+#  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 file describes the directives and concepts tested by this test set.
+
+Configuration:
+
+Pipes enabled. Maximum number of barriers is not defined and hence =
+0.
+
+Expected:
+
+Pipe requires 2 barriers to be created. With max number of barriers
+set to 0, fifo_open fails with EINTR
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/sptests/spfifo02/spfifo02.scn:1.1
--- /dev/null   Mon Jun  7 14:11:22 2010
+++ rtems/testsuites/sptests/spfifo02/spfifo02.scn      Mon Jun  7 14:09:27 2010
</font><font color='#997700'>@@ -0,0 +1,31 @@
</font><font color='#000088'>+Could not open '/dev/kqemu' - QEMU acceleration layer not activated: No such file or directory
+Initialized console on port COM1 9600-8-N-1
+<span style="background-color: #FF0000"><CR></span>
+ <span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+*** FIFO / PIPE OPEN TEST - 2 ***<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Configuration: Pipes configured, but number of barriers configured = 0<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Creating directory /tmp<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Creating fifo /tmp/fifo<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Attempt to open the fifo file<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Must result in failure since <span style="background-color: #FF0000"><CR></span>
+number of barriers = 0 => not all resources<span style="background-color: #FF0000"><CR></span>
+were acquired<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Remove the entry /tmp/fifo01<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Remove directory /tmp<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+*** END OF FIFO / PIPE OPEN TEST - 2 ***<span style="background-color: #FF0000"><CR></span>
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/sptests/spfifo02/test.c:1.1
--- /dev/null   Mon Jun  7 14:11:23 2010
+++ rtems/testsuites/sptests/spfifo02/test.c    Mon Jun  7 14:09:27 2010
</font><font color='#997700'>@@ -0,0 +1,75 @@
</font><font color='#000088'>+/*  test_main
+ *
+ *  This routine serves as a test routine.
+ *  Exercises the fifo_open
+ *
+ *  Input parameters:   NONE
+ *
+ *  Output parameters:  NONE
+ *
+ *  COPYRIGHT (c) 1989-1999.
+ *  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$
+ */
+
+/* Includes */
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <errno.h>
+
+#include <tmacros.h>
+#include <rtems.h>
+#include <rtems/libio.h>
+
+
+void test_main(void)
+{
+
+  int status = -1;
+  int fd = 0;
+
+  puts("\n\n*** FIFO / PIPE OPEN TEST - 2 ***");
+  puts(
+"\n\nConfiguration: Pipes configured, \
+but number of barriers configured = 0"
+       );
+
+  puts("\n\nCreating directory /tmp");
+  status = mkdir("/tmp", 0777);
+  rtems_test_assert(status == 0);
+
+  puts("\n\nCreating fifo /tmp/fifo");
+  status = mkfifo("/tmp/fifo01", 0777);
+  rtems_test_assert(status == 0);
+
+  puts("\n\nAttempt to open the fifo file\n");
+  puts(
+"Must result in failure since \n\
+number of barriers = 0 => not all resources\n\
+were acquired"
+       );
+
+  fd = open("/tmp/fifo01", O_RDONLY);
+  rtems_test_assert(fd == -1);
+  rtems_test_assert(errno == EINTR); // Should this
+                                     // be ENOMEM?
+  puts("\n\nRemove the entry /tmp/fifo01");
+  status = unlink("/tmp/fifo01");
+  rtems_test_assert(status == 0);
+
+  puts("\n\nRemove directory /tmp");
+  status = rmdir("/tmp");
+  rtems_test_assert(status == 0);
+
+  puts("\n\n*** END OF FIFO / PIPE OPEN TEST - 2 ***");
+}
+<span style="background-color: #FF0000">  </span>
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/sptests/spfifo03/Makefile.am:1.1
--- /dev/null   Mon Jun  7 14:11:23 2010
+++ rtems/testsuites/sptests/spfifo03/Makefile.am       Mon Jun  7 14:09:27 2010
</font><font color='#997700'>@@ -0,0 +1,27 @@
</font><font color='#000088'>+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = spfifo03
+spfifo03_SOURCES = main.c test.c
+
+dist_rtems_tests_DATA = spfifo03.scn
+dist_rtems_tests_DATA += spfifo03.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+
+LINK_OBJS = $(spfifo03_OBJECTS) $(spfifo03_LDADD)
+LINK_LIBS = $(spfifo03_LDLIBS)
+
+spfifo03$(EXEEXT): $(spfifo03_OBJECTS) $(spfifo03_DEPENDENCIES)
+       @rm -f spfifo03$(EXEEXT)
+       $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/sptests/spfifo03/main.c:1.1
--- /dev/null   Mon Jun  7 14:11:23 2010
+++ rtems/testsuites/sptests/spfifo03/main.c    Mon Jun  7 14:09:27 2010
</font><font color='#997700'>@@ -0,0 +1,51 @@
</font><font color='#000088'>+/*  Init
+ *
+ *  This routine is the initialization task for this test program.
+ *  It is a user initialization task and has the responsibility
+ *  of invoking the test routine
+ *
+ *  Input parameters:
+ *    not_used
+ *
+ *  Output parameters:  NONE
+ *
+ *  COPYRIGHT (c) 1989-1999.
+ *  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$
+ */
+
+/* Includes */
+#include <bsp.h>
+#include <tmacros.h>
+
+void test_main(void);
+
+rtems_task Init(
+  rtems_task_argument not_used
+)
+{
+  test_main();
+  rtems_test_exit(0);
+}
+
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+
+#define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
+#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 6
+
+#define CONFIGURE_MAXIMUM_TASKS 1
+
+#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+#define CONFIGURE_PIPES_ENABLED
+#define CONFIGURE_INIT
+#define CONFIGURE_MAXIMUM_BARRIERS               1
+
+#include <rtems/confdefs.h>
+
+/* end of file */
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/sptests/spfifo03/spfifo03.doc:1.1
--- /dev/null   Mon Jun  7 14:11:23 2010
+++ rtems/testsuites/sptests/spfifo03/spfifo03.doc      Mon Jun  7 14:09:27 2010
</font><font color='#997700'>@@ -0,0 +1,21 @@
</font><font color='#000088'>+#
+#  $Id$
+#
+#  COPYRIGHT (c) 1989-1999.
+#  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 file describes the directives and concepts tested by this test set.
+
+Configuration:
+
+Pipes enabled. Maximum number of barriers is set to 1.
+
+Expected:
+
+Pipe requires 2 barriers to be created. With max number of barriers
+set to 1, fifo_open fails with EINTR
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/sptests/spfifo03/spfifo03.scn:1.1
--- /dev/null   Mon Jun  7 14:11:23 2010
+++ rtems/testsuites/sptests/spfifo03/spfifo03.scn      Mon Jun  7 14:09:28 2010
</font><font color='#997700'>@@ -0,0 +1,32 @@
</font><font color='#000088'>+Could not open '/dev/kqemu' - QEMU acceleration layer not activated: No such file or directory
+Initialized console on port COM1 9600-8-N-1
+<span style="background-color: #FF0000"><CR></span>
+ <span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+*** FIFO / PIPE OPEN TEST - 3 ***<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Configuration: Pipes configured, but number of barriers configured = 1<span style="background-color: #FF0000"><CR></span>
+Required number of barriers = 2<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Creating directory /tmp<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Creating fifo /tmp/fifo<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Attempt to open the fifo file<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Must result in failure since <span style="background-color: #FF0000"><CR></span>
+number of barriers = 1 => not all resources<span style="background-color: #FF0000"><CR></span>
+were acquired<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Remove the entry /tmp/fifo01<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Remove directory /tmp<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+*** END OF FIFO / PIPE OPEN TEST - 3 ***<span style="background-color: #FF0000"><CR></span>
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/sptests/spfifo03/test.c:1.1
--- /dev/null   Mon Jun  7 14:11:23 2010
+++ rtems/testsuites/sptests/spfifo03/test.c    Mon Jun  7 14:09:28 2010
</font><font color='#997700'>@@ -0,0 +1,76 @@
</font><font color='#000088'>+/*  test_main
+ *
+ *  This routine serves as a test routine.
+ *  Exercises the fifo_open
+ *
+ *  Input parameters:   NONE
+ *
+ *  Output parameters:  NONE
+ *
+ *  COPYRIGHT (c) 1989-1999.
+ *  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$
+ */
+
+/* Includes */
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <errno.h>
+
+#include <tmacros.h>
+#include <rtems.h>
+#include <rtems/libio.h>
+
+
+void test_main(void)
+{
+
+  int status = -1;
+  int fd = 0;
+
+  puts("\n\n*** FIFO / PIPE OPEN TEST - 3 ***");
+  puts(
+"\n\nConfiguration: Pipes configured, \
+but number of barriers configured = 1\n\
+Required number of barriers = 2"
+       );
+
+  puts("\n\nCreating directory /tmp");
+  status = mkdir("/tmp", 0777);
+  rtems_test_assert(status == 0);
+
+  puts("\n\nCreating fifo /tmp/fifo");
+  status = mkfifo("/tmp/fifo01", 0777);
+  rtems_test_assert(status == 0);
+
+  puts("\n\nAttempt to open the fifo file\n");
+  puts(
+"Must result in failure since \n\
+number of barriers = 1 => not all resources\n\
+were acquired"
+       );
+
+  fd = open("/tmp/fifo01", O_RDONLY);
+  rtems_test_assert(fd == -1);
+  rtems_test_assert(errno == EINTR); // Should this
+                                     // be ENOMEM?
+  puts("\n\nRemove the entry /tmp/fifo01");
+  status = unlink("/tmp/fifo01");
+  rtems_test_assert(status == 0);
+
+  puts("\n\nRemove directory /tmp");
+  status = rmdir("/tmp");
+  rtems_test_assert(status == 0);
+
+  puts("\n\n*** END OF FIFO / PIPE OPEN TEST - 3 ***");
+}
+<span style="background-color: #FF0000">  </span>
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/sptests/spfifo04/Makefile.am:1.1
--- /dev/null   Mon Jun  7 14:11:23 2010
+++ rtems/testsuites/sptests/spfifo04/Makefile.am       Mon Jun  7 14:09:28 2010
</font><font color='#997700'>@@ -0,0 +1,26 @@
</font><font color='#000088'>+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = spfifo04
+spfifo04_SOURCES = main.c test.c
+
+dist_rtems_tests_DATA = spfifo04.scn
+dist_rtems_tests_DATA += spfifo04.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+
+LINK_OBJS = $(spfifo04_OBJECTS) $(spfifo04_LDADD)
+LINK_LIBS = $(spfifo04_LDLIBS)
+
+spfifo04$(EXEEXT): $(spfifo04_OBJECTS) $(spfifo04_DEPENDENCIES)
+       @rm -f spfifo04$(EXEEXT)
+       $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/sptests/spfifo04/main.c:1.1
--- /dev/null   Mon Jun  7 14:11:23 2010
+++ rtems/testsuites/sptests/spfifo04/main.c    Mon Jun  7 14:09:28 2010
</font><font color='#997700'>@@ -0,0 +1,51 @@
</font><font color='#000088'>+/*  Init
+ *
+ *  This routine is the initialization task for this test program.
+ *  It is a user initialization task and has the responsibility
+ *  of invoking the test routine
+ *
+ *  Input parameters:
+ *    not_used
+ *
+ *  Output parameters:  NONE
+ *
+ *  COPYRIGHT (c) 1989-1999.
+ *  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$
+ */
+
+/* Includes */
+#include <bsp.h>
+#include <tmacros.h>
+
+void test_main(void);
+
+rtems_task Init(
+  rtems_task_argument not_used
+)
+{
+  test_main();
+  rtems_test_exit(0);
+}
+
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+
+#define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
+#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 6
+
+#define CONFIGURE_MAXIMUM_TASKS 1
+
+#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+#define CONFIGURE_PIPES_ENABLED
+#define CONFIGURE_INIT
+#define CONFIGURE_MAXIMUM_BARRIERS               2
+
+#include <rtems/confdefs.h>
+
+/* end of file */
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/sptests/spfifo04/spfifo04.doc:1.1
--- /dev/null   Mon Jun  7 14:11:23 2010
+++ rtems/testsuites/sptests/spfifo04/spfifo04.doc      Mon Jun  7 14:09:28 2010
</font><font color='#997700'>@@ -0,0 +1,51 @@
</font><font color='#000088'>+#
+#  $Id$
+#
+#  COPYRIGHT (c) 1989-1999.
+#  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 file describes the directives and concepts tested by this test set.
+
+Configuration:
+
+Pipes enabled.
+Maximum number of barriers is set to 2.
+
+Coverage concepts:
+
+With number of barriers set to 2, and provided there is sufficient
+memory available, fifo_open -> pipe_new must be able to create a new
+pipe_control_t successfully.
+
+This test
+
+- Creates a directory /tmp
+- Creates a fifo file /tmp/fifo01
+
+- Opens the fifo in read-write mode, covering one of the cases of the
+  switch statement (this should be successful)
+- Closes the fifo
+
+- Opens the file in read-only, non-blocing mode, covering another case
+  of the switch (this should be successful)
+- Closes the fifo
+
+- Opens the file in write-only, non-blocking mode, covering yet
+  another case in the switch. (this should not be successful, instead,
+  since we opened the fifo in a WRONLY and NONBLOCK mode, we receive
+  an ENXIO error)
+
+- fifo_open (pipe_new) maintains a static character variable, which it
+  uses to create semaphores and barriers. The value of this character
+  goes from a -> z -> a -> z... To hit the case where z is wrapped
+  back to a, fifo_open must be called a minimum total of 26
+  times. This is achieved by repeated opens on the fifo file created.
+- After every successful open, the file is closed
+
+- Remove fifo file
+- Remove tmp directory
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/sptests/spfifo04/spfifo04.scn:1.1
--- /dev/null   Mon Jun  7 14:11:23 2010
+++ rtems/testsuites/sptests/spfifo04/spfifo04.scn      Mon Jun  7 14:09:28 2010
</font><font color='#997700'>@@ -0,0 +1,50 @@
</font><font color='#000088'>+Could not open '/dev/kqemu' - QEMU acceleration layer not activated: No such file or directory
+Initialized console on port COM1 9600-8-N-1
+<span style="background-color: #FF0000"><CR></span>
+ <span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+*** FIFO / PIPE OPEN TEST - 4 ***<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Configuration: Pipes configured, but number of barriers configured = 2<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Creating directory /tmp<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Creating fifo /tmp/fifo<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Attempt to open the fifo file in RDWR mode<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Should be successful and non-negativefile descriptor expected<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Closing the fifo file<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Attempt to open the fifo file in RDONLY and NONBLOCK mode<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Should be successful and non-negativefile descriptor expected<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Closing the fifo file<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Attempt to open the fifo file in WRONLY and NONBLOCK mode<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Should return with an error ENXIO<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Multiple opens<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... <span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Remove the entry /tmp/fifo01<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+Remove directory /tmp<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+<span style="background-color: #FF0000"><CR></span>
+*** END OF FIFO / PIPE OPEN TEST - 4 ***<span style="background-color: #FF0000"><CR></span>
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/sptests/spfifo04/test.c:1.1
--- /dev/null   Mon Jun  7 14:11:23 2010
+++ rtems/testsuites/sptests/spfifo04/test.c    Mon Jun  7 14:09:28 2010
</font><font color='#997700'>@@ -0,0 +1,117 @@
</font><font color='#000088'>+/*  test_main
+ *
+ *  This routine serves as a test routine.
+ *  Exercises the fifo_open
+ *
+ *  Input parameters:   NONE
+ *
+ *  Output parameters:  NONE
+ *
+ *  COPYRIGHT (c) 1989-1999.
+ *  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$
+ */
+
+/* Includes */
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <errno.h>
+
+#include <tmacros.h>
+#include <rtems.h>
+#include <rtems/libio.h>
+
+#define NUM_OPEN_REQ        26
+
+void test_main(void)
+{
+
+  int status = -1;
+  int fd = 0;
+  int index = 0;
+  int num_opens = 0;
+
+  puts("\n\n*** FIFO / PIPE OPEN TEST - 4 ***");
+  puts(
+"\n\nConfiguration: Pipes configured, \
+but number of barriers configured = 2\n"
+       );
+
+  puts("\n\nCreating directory /tmp");
+  status = mkdir("/tmp", 0777);
+  rtems_test_assert(status == 0);
+
+  puts("\n\nCreating fifo /tmp/fifo");
+  status = mkfifo("/tmp/fifo01", 0777);
+  rtems_test_assert(status == 0);
+
+  puts("\n\nAttempt to open the fifo file in RDWR mode\n");
+  puts("Should be successful and non-negative\
+file descriptor expected");
+
+  fd = open("/tmp/fifo01", O_RDWR);
+  rtems_test_assert(fd > 0);
+  ++num_opens;
+
+  puts("\n\nClosing the fifo file");
+  status = close(fd);
+  rtems_test_assert(status == 0);
+
+  puts("\n\nAttempt to open the fifo file in \
+RDONLY and NONBLOCK mode\n");
+  puts("Should be successful and non-negative\
+file descriptor expected");
+
+  fd = open("/tmp/fifo01", O_RDONLY | O_NONBLOCK);
+  rtems_test_assert(fd > 0);
+  ++num_opens;
+
+  puts("\n\nClosing the fifo file");
+  status = close(fd);
+  rtems_test_assert(status == 0);
+<span style="background-color: #FF0000">  </span>
+  puts("\n\nAttempt to open the fifo file in \
+WRONLY and NONBLOCK mode\n");
+  puts("Should return with an error ENXIO");
+
+  fd = open("/tmp/fifo01", O_WRONLY | O_NONBLOCK);
+  rtems_test_assert(fd == -1);
+  rtems_test_assert(errno == ENXIO);
+  ++num_opens;
+
+  // Number of attempts to open fifo till now = 3
+  // Number of attempts to move the static char
+  // from 'a' -> 'z' = 26
+  // => Number of opens required = 23
+  puts("\n\nMultiple opens\n");
+  for(index = 0; index < NUM_OPEN_REQ - num_opens; ++index) {
+
+    fd = open("/tmp/fifo01", O_RDONLY | O_NONBLOCK);
+    rtems_test_assert(fd > 0);
+
+    status = close(fd);
+    rtems_test_assert(status == 0);
+
+    printf("%d... ", index+1);
+  }
+
+  puts("\n\nRemove the entry /tmp/fifo01");
+  status = unlink("/tmp/fifo01");
+  rtems_test_assert(status == 0);
+
+  puts("\n\nRemove directory /tmp");
+  status = rmdir("/tmp");
+  rtems_test_assert(status == 0);
+
+  puts("\n\n*** END OF FIFO / PIPE OPEN TEST - 4 ***");
+}
+
</font></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>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-06-07 Joel Sherrill <joel.sherrill@oarcorp.com>

        * termios01/init.c, termios01/termios01.scn, termios02/init.c,
        termios02/termios02.scn: Add tests for cfigetspeed(), cfogetspeed(),
        cfisetspeed(), cfosetspeed(), ctermid(), tcflow(), tcflush(),
        tcsendbreak(), tcsetpgrp(), and tcgetpgrp(). Some of these methods
        are minimal implementations so the tests will have to grow as the
        methods grow.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/libtests/ChangeLog.diff?r1=text&tr1=1.177&r2=text&tr2=1.178&diff_format=h">M</a></td><td width='1%'>1.178</td><td width='100%'>testsuites/libtests/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/libtests/termios01/init.c.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%'>testsuites/libtests/termios01/init.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/libtests/termios01/termios01.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/libtests/termios01/termios01.scn</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/libtests/termios02/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/libtests/termios02/init.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/libtests/termios02/termios02.scn.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%'>testsuites/libtests/termios02/termios02.scn</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/testsuites/libtests/ChangeLog:1.177 rtems/testsuites/libtests/ChangeLog:1.178
--- rtems/testsuites/libtests/ChangeLog:1.177   Mon Jun  7 04:33:32 2010
+++ rtems/testsuites/libtests/ChangeLog Mon Jun  7 13:33:09 2010
</font><font color='#997700'>@@ -1,3 +1,12 @@
</font><font color='#000088'>+2010-06-07    Joel Sherrill <joel.sherrill@oarcorp.com>
+
+       * termios01/init.c, termios01/termios01.scn, termios02/init.c,
+       termios02/termios02.scn: Add tests for cfigetspeed(), cfogetspeed(),
+       cfisetspeed(), cfosetspeed(), ctermid(), tcflow(), tcflush(),
+       tcsendbreak(), tcsetpgrp(), and tcgetpgrp(). Some of these methods
+       are minimal implementations so the tests will have to grow as the
+       methods grow.
+
</font> 2010-06-07        Sebastian Huber <sebastian.huber@embedded-brains.de>
 
        * heapwalk/init.c, malloctest/init.c: Update for heap extend changes.

<font color='#006600'>diff -u rtems/testsuites/libtests/termios01/init.c:1.8 rtems/testsuites/libtests/termios01/init.c:1.9
--- rtems/testsuites/libtests/termios01/init.c:1.8      Thu Dec 10 20:12:57 2009
+++ rtems/testsuites/libtests/termios01/init.c  Mon Jun  7 13:33:09 2010
</font><font color='#997700'>@@ -135,14 +135,17 @@
</font>   rtems_test_assert( i == -1 );
 
   if ( i != -1 )
<font color='#880000'>-  for (i=0 ; baud_table[i].constant != -1 ; i++ ) {
-    printf( "termios_baud_to_index(B%" PRIdrtems_termios_baud_t ") - OK\n", baud_table[i].baud );
-    index = rtems_termios_baud_to_index( baud_table[i].constant );
-    if ( index != i ) {
-      printf( "ERROR - returned %d should be %d\n", index, i );
-      rtems_test_exit(0);
</font><font color='#000088'>+    for (i=0 ; baud_table[i].constant != -1 ; i++ ) {
+      printf(
+        "termios_baud_to_index(B%" PRIdrtems_termios_baud_t ") - OK\n",
+        baud_table[i].baud
+      );
+      index = rtems_termios_baud_to_index( baud_table[i].constant );
+      if ( index != i ) {
+        printf( "ERROR - returned %d should be %d\n", index, i );
+        rtems_test_exit(0);
+      }
</font>     }
<font color='#880000'>-  }
</font> }
 
 /*
<font color='#997700'>@@ -377,6 +380,71 @@
</font>   }
 }
 
<font color='#000088'>+void test_termios_cfoutspeed(void)
+{
+  int i;
+  int sc;
+  speed_t speed;
+  struct termios term;
+  tcflag_t        bad;
+
+  bad = CBAUD << 1;
+  memset( &term, '\0', sizeof(term) );
+  puts( "cfsetospeed(BAD BAUD) - EINVAL" );
+  sc = cfsetospeed( &term, bad );
+  rtems_test_assert( sc == -1 );
+  rtems_test_assert( errno == EINVAL );
+
+  for (i=0 ; baud_table[i].constant != -1 ; i++ ) {
+    memset( &term, '\0', sizeof(term) );
+    printf(
+      "cfsetospeed(B%" PRIdrtems_termios_baud_t ") - OK\n",
+      baud_table[i].baud
+    );
+    sc = cfsetospeed( &term, baud_table[i].constant );
+    rtems_test_assert( !sc );
+    printf(
+      "cfgetospeed(B%" PRIdrtems_termios_baud_t ") - OK\n",
+      baud_table[i].baud
+    );
+    speed = cfgetospeed( &term );
+    rtems_test_assert( speed == baud_table[i].constant );
+  }
+}
+
+void test_termios_cfinspeed(void)
+{
+  int             i;
+  int             sc;
+  speed_t         speed;
+  struct termios  term;
+  tcflag_t        bad;
+
+  bad = CBAUD << 1;
+  memset( &term, '\0', sizeof(term) );
+  puts( "cfsetispeed(BAD BAUD) - EINVAL" );
+  sc = cfsetispeed( &term, bad );
+  rtems_test_assert( sc == -1 );
+  rtems_test_assert( errno == EINVAL );
+
+  for (i=0 ; baud_table[i].constant != -1 ; i++ ) {
+    memset( &term, '\0', sizeof(term) );
+    printf(
+      "cfsetispeed(B%" PRIdrtems_termios_baud_t ") - OK\n",
+      baud_table[i].baud
+    );
+    sc = cfsetispeed( &term, baud_table[i].constant );
+    rtems_test_assert( !sc );
+
+    printf(
+      "cfgetispeed(B%" PRIdrtems_termios_baud_t ") - OK\n",
+      baud_table[i].baud
+    );
+    speed = cfgetispeed( &term );
+    rtems_test_assert( speed == baud_table[i].constant );
+  }
+}
+
</font> rtems_task Init(
   rtems_task_argument ignored
 )
<font color='#997700'>@@ -481,6 +549,10 @@
</font> 
   test_termios_set_stop_bits(test);
 
<font color='#000088'>+  test_termios_cfoutspeed();
+
+  test_termios_cfinspeed();
+
</font>   puts( "Init - close - " TERMIOS_TEST_DRIVER_DEVICE_NAME " - OK" );
   rc = close( test );
   if ( rc != 0 ) {

<font color='#006600'>diff -u rtems/testsuites/libtests/termios01/termios01.scn:1.2 rtems/testsuites/libtests/termios01/termios01.scn:1.3
--- rtems/testsuites/libtests/termios01/termios01.scn:1.2       Sat Aug 15 17:29:38 2009
+++ rtems/testsuites/libtests/termios01/termios01.scn   Mon Jun  7 13:33:09 2010
</font><font color='#997700'>@@ -196,5 +196,87 @@
</font> set_attributes - B38400 8-NONE-2
 tcsetattr(TCSADRAIN, 2 bits) - OK
 set_attributes - B38400 8-NONE-2
<font color='#000088'>+cfsetospeed(BAD BAUD) - EINVAL
+cfsetospeed(B0) - OK
+cfgetospeed(B0) - OK
+cfsetospeed(B50) - OK
+cfgetospeed(B50) - OK
+cfsetospeed(B75) - OK
+cfgetospeed(B75) - OK
+cfsetospeed(B110) - OK
+cfgetospeed(B110) - OK
+cfsetospeed(B134) - OK
+cfgetospeed(B134) - OK
+cfsetospeed(B150) - OK
+cfgetospeed(B150) - OK
+cfsetospeed(B200) - OK
+cfgetospeed(B200) - OK
+cfsetospeed(B300) - OK
+cfgetospeed(B300) - OK
+cfsetospeed(B600) - OK
+cfgetospeed(B600) - OK
+cfsetospeed(B1200) - OK
+cfgetospeed(B1200) - OK
+cfsetospeed(B1800) - OK
+cfgetospeed(B1800) - OK
+cfsetospeed(B2400) - OK
+cfgetospeed(B2400) - OK
+cfsetospeed(B4800) - OK
+cfgetospeed(B4800) - OK
+cfsetospeed(B9600) - OK
+cfgetospeed(B9600) - OK
+cfsetospeed(B19200) - OK
+cfgetospeed(B19200) - OK
+cfsetospeed(B38400) - OK
+cfgetospeed(B38400) - OK
+cfsetospeed(B57600) - OK
+cfgetospeed(B57600) - OK
+cfsetospeed(B115200) - OK
+cfgetospeed(B115200) - OK
+cfsetospeed(B230400) - OK
+cfgetospeed(B230400) - OK
+cfsetospeed(B460800) - OK
+cfgetospeed(B460800) - OK
+cfsetispeed(BAD BAUD) - EINVAL
+cfsetispeed(B0) - OK
+cfgetispeed(B0) - OK
+cfsetispeed(B50) - OK
+cfgetispeed(B50) - OK
+cfsetispeed(B75) - OK
+cfgetispeed(B75) - OK
+cfsetispeed(B110) - OK
+cfgetispeed(B110) - OK
+cfsetispeed(B134) - OK
+cfgetispeed(B134) - OK
+cfsetispeed(B150) - OK
+cfgetispeed(B150) - OK
+cfsetispeed(B200) - OK
+cfgetispeed(B200) - OK
+cfsetispeed(B300) - OK
+cfgetispeed(B300) - OK
+cfsetispeed(B600) - OK
+cfgetispeed(B600) - OK
+cfsetispeed(B1200) - OK
+cfgetispeed(B1200) - OK
+cfsetispeed(B1800) - OK
+cfgetispeed(B1800) - OK
+cfsetispeed(B2400) - OK
+cfgetispeed(B2400) - OK
+cfsetispeed(B4800) - OK
+cfgetispeed(B4800) - OK
+cfsetispeed(B9600) - OK
+cfgetispeed(B9600) - OK
+cfsetispeed(B19200) - OK
+cfgetispeed(B19200) - OK
+cfsetispeed(B38400) - OK
+cfgetispeed(B38400) - OK
+cfsetispeed(B57600) - OK
+cfgetispeed(B57600) - OK
+cfsetispeed(B115200) - OK
+cfgetispeed(B115200) - OK
+cfsetispeed(B230400) - OK
+cfgetispeed(B230400) - OK
+cfsetispeed(B460800) - OK
+cfgetispeed(B460800) - OK
</font> Init - close - /dev/test - OK
 *** END OF TEST TERMIOS 01 ***

<font color='#006600'>diff -u rtems/testsuites/libtests/termios02/init.c:1.2 rtems/testsuites/libtests/termios02/init.c:1.3
--- rtems/testsuites/libtests/termios02/init.c:1.2      Tue Dec  8 11:52:49 2009
+++ rtems/testsuites/libtests/termios02/init.c  Mon Jun  7 13:33:09 2010
</font><font color='#997700'>@@ -1,5 +1,5 @@
</font> /*
<font color='#880000'>- *  COPYRIGHT (c) 1989-2009.
</font><font color='#000088'>+ *  COPYRIGHT (c) 1989-2010.
</font>  *  On-Line Applications Research Corporation (OAR).
  *
  *  The license and distribution terms for this file may be
<font color='#997700'>@@ -12,33 +12,119 @@
</font> #include "tmacros.h"
 #include <termios.h>
 #include <errno.h>
<font color='#000088'>+#include <unistd.h>
</font> 
 rtems_task Init(
   rtems_task_argument ignored
 )
 {
   int sc;
<font color='#000088'>+  pid_t pid;
+  char *term_name_p;
+  char term_name[32];
</font> 
<font color='#880000'>-  printf( "\n\n*** TERMIOS 02 TEST ***\n" );
</font><font color='#000088'>+  puts( "\n\n*** TERMIOS 02 TEST ***" );
</font> 
<font color='#880000'>-  printf( "tcdrain(12) - EBADF\n" );
</font><font color='#000088'>+  puts( "tcdrain(12) - EBADF" );
</font>   sc = tcdrain(12);
   rtems_test_assert( sc == -1 );
   rtems_test_assert( errno == EBADF );
 
<font color='#880000'>-  printf( "tcdrain(stdin) - OK\n" );
</font><font color='#000088'>+  puts( "tcdrain(stdin) - OK" );
</font>   sc = tcdrain(0);
   rtems_test_assert( !sc );
 
<font color='#880000'>-  printf( "tcdrain(stdout) - OK\n" );
</font><font color='#000088'>+  puts( "tcdrain(stdout) - OK" );
</font>   tcdrain(1);
   rtems_test_assert( !sc );
 
<font color='#880000'>-  printf( "tcdrain(stderr) - OK\n" );
</font><font color='#000088'>+  puts( "tcdrain(stderr) - OK" );
</font>   tcdrain(2);
   rtems_test_assert( !sc );
 
<font color='#880000'>-  printf( "*** END OF TERMIOS 02 TEST ***\n" );
</font><font color='#000088'>+  puts( "" );<span style="background-color: #FF0000"> </span>
+
+  /***** TEST TCFLOW *****/
+  puts( "tcflow(stdin, TCOOFF) - ENOTSUP" );
+  sc = tcflow( 0, TCOOFF );
+  rtems_test_assert( sc == -1 );
+  rtems_test_assert( errno = ENOTSUP );
+
+  puts( "tcflow(stdin, TCOON) - ENOTSUP" );
+  sc = tcflow( 0, TCOON );
+  rtems_test_assert( sc == -1 );
+  rtems_test_assert( errno = ENOTSUP );
+
+  puts( "tcflow(stdin, TCIOFF) - ENOTSUP" );
+  sc = tcflow( 0, TCIOFF );
+  rtems_test_assert( sc == -1 );
+  rtems_test_assert( errno = ENOTSUP );
+
+  puts( "tcflow(stdin, TCION) - ENOTSUP" );
+  sc = tcflow( 0, TCION );
+  rtems_test_assert( sc == -1 );
+  rtems_test_assert( errno = ENOTSUP );
+
+  puts( "tcflow(stdin, 22) - EINVAL" );
+  sc = tcflow( 0, 22 );
+  rtems_test_assert( sc == -1 );
+  rtems_test_assert( errno = EINVAL );
+
+  puts( "" );<span style="background-color: #FF0000"> </span>
+
+  /***** TEST TCFLUSH *****/
+  puts( "tcflush(stdin, TCIFLUSH) - ENOTSUP" );
+  sc = tcflush( 0, TCIFLUSH );
+  rtems_test_assert( sc == -1 );
+  rtems_test_assert( errno = ENOTSUP );
+
+  puts( "tcflush(stdin, TCOFLUSH) - ENOTSUP" );
+  sc = tcflush( 0, TCOFLUSH );
+  rtems_test_assert( sc == -1 );
+  rtems_test_assert( errno = ENOTSUP );
+
+  puts( "tcflush(stdin, TCIOFLUSH) - ENOTSUP" );
+  sc = tcflush( 0, TCIOFLUSH );
+  rtems_test_assert( sc == -1 );
+  rtems_test_assert( errno = ENOTSUP );
+
+  puts( "tcflush(stdin, 22) - EINVAL" );
+  sc = tcflush( 0, 22 );
+  rtems_test_assert( sc == -1 );
+  rtems_test_assert( errno = EINVAL );
+
+  puts( "" );
+
+  /***** TEST TCGETPGRP *****/
+  puts( "tcgetpgrp( 1 ) - OK" );
+  pid = tcgetpgrp(1);
+  rtems_test_assert( pid == getpid() );
+
+  puts( "tcsetpgrp( 1, 3 ) - OK" );
+  sc = tcsetpgrp( 1, 3 );
+  rtems_test_assert( !sc );
+
+  puts( "" );
+
+  /***** TEST TCSENDBREAK *****/
+  puts( "tcsendbreak( 1, 0 ) - OK" );
+  sc = tcsendbreak( 1, 0 );
+  rtems_test_assert( !sc );
+
+  puts( "" );
+
+  /***** TEST CTERMID *****/
+  puts( "ctermid( NULL ) - OK" );
+  term_name_p = ctermid( NULL );
+  rtems_test_assert( term_name_p );
+  printf( "ctermid ==> %s\n", term_name_p );
+
+  puts( "ctermid( term_name ) - OK" );
+  term_name_p = ctermid( term_name );
+  rtems_test_assert( term_name_p == term_name );
+  printf( "ctermid ==> %s\n", term_name_p );
+
+  puts( "*** END OF TERMIOS 02 TEST ***" );
</font>   exit( 0 );
 }
 

<font color='#006600'>diff -u rtems/testsuites/libtests/termios02/termios02.scn:1.1 rtems/testsuites/libtests/termios02/termios02.scn:1.2
--- rtems/testsuites/libtests/termios02/termios02.scn:1.1       Thu Oct  1 18:52:36 2009
+++ rtems/testsuites/libtests/termios02/termios02.scn   Mon Jun  7 13:33:09 2010
</font><font color='#997700'>@@ -3,4 +3,25 @@
</font> tcdrain(stdin) - OK
 tcdrain(stdout) - OK
 tcdrain(stderr) - OK
<font color='#000088'>+
+tcflow(stdin, TCOOFF) - ENOTSUP
+tcflow(stdin, TCOON) - ENOTSUP
+tcflow(stdin, TCIOFF) - ENOTSUP
+tcflow(stdin, TCION) - ENOTSUP
+tcflow(stdin, 22) - EINVAL
+
+tcflush(stdin, TCIFLUSH) - ENOTSUP
+tcflush(stdin, TCOFLUSH) - ENOTSUP
+tcflush(stdin, TCIOFLUSH) - ENOTSUP
+tcflush(stdin, 22) - EINVAL
+
+tcgetpgrp( 1 ) - OK
+tcsetpgrp( 1, 3 ) - OK
+
+tcsendbreak( 1, 0 ) - OK
+
+ctermid( NULL ) - OK
+ctermid ==> /dev/console
+ctermid( term_name ) - OK
+ctermid ==> /dev/console
</font> *** END OF TERMIOS 02 TEST ***
</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>2010-06-07 Joel Sherrill <joel.sherrill@oarcorp.com>

        * libcsupport/src/tcflow.c, libcsupport/src/tcflush.c: Add switches
        to detect bad input.
        * libcsupport/src/tcsetpgrp.c: Fix typo.
</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.2349&r2=text&tr2=1.2350&diff_format=h">M</a></td><td width='1%'>1.2350</td><td width='100%'>cpukit/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libcsupport/src/tcflow.c.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%'>cpukit/libcsupport/src/tcflow.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libcsupport/src/tcflush.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.7&diff_format=h">M</a></td><td width='1%'>1.7</td><td width='100%'>cpukit/libcsupport/src/tcflush.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libcsupport/src/tcsetpgrp.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.7&diff_format=h">M</a></td><td width='1%'>1.7</td><td width='100%'>cpukit/libcsupport/src/tcsetpgrp.c</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/cpukit/ChangeLog:1.2349 rtems/cpukit/ChangeLog:1.2350
--- rtems/cpukit/ChangeLog:1.2349       Mon Jun  7 10:35:22 2010
+++ rtems/cpukit/ChangeLog      Mon Jun  7 13:37:16 2010
</font><font color='#997700'>@@ -1,3 +1,9 @@
</font><font color='#000088'>+2010-06-07    Joel Sherrill <joel.sherrill@oarcorp.com>
+
+       * libcsupport/src/tcflow.c, libcsupport/src/tcflush.c: Add switches
+       to detect bad input.
+       * libcsupport/src/tcsetpgrp.c: Fix typo.
+
</font> 2010-06-07        Sebastian Huber <sebastian.huber@embedded-brains.de>
 
        * libcsupport/include/rtems/libio_.h: Declare

<font color='#006600'>diff -u rtems/cpukit/libcsupport/src/tcflow.c:1.8 rtems/cpukit/libcsupport/src/tcflow.c:1.9
--- rtems/cpukit/libcsupport/src/tcflow.c:1.8   Sun Nov 29 07:35:32 2009
+++ rtems/cpukit/libcsupport/src/tcflow.c       Mon Jun  7 13:37:16 2010
</font><font color='#997700'>@@ -1,7 +1,7 @@
</font> /*
  *  tcflow() - POSIX 1003.1b 7.2.2 - Line Control Functions
  *
<font color='#880000'>- *  COPYRIGHT (c) 1989-1999.
</font><font color='#000088'>+ *  COPYRIGHT (c) 1989-2010.
</font>  *  On-Line Applications Research Corporation (OAR).
  *
  *  The license and distribution terms for this file may be
<font color='#997700'>@@ -18,12 +18,27 @@
</font> #if defined(RTEMS_NEWLIB)
 #include <termios.h>
 #include <unistd.h>
<font color='#000088'>+#include <errno.h>
+#include <rtems/seterr.h>
</font> 
 int tcflow (
   int fd __attribute__((unused)),
<font color='#880000'>-  int action __attribute__((unused)))
</font><font color='#000088'>+  int action
+)
</font> {
<font color='#880000'>-  return 0;
</font><font color='#000088'>+  switch (action) {
+    case TCOOFF:
+    case TCOON:
+    case TCIOFF:
+    case TCION:
+    default:
+      rtems_set_errno_and_return_minus_one( EINVAL );
+  }
+
+  /* fd is not validated */
+
+  /* When this is supported, implement it here */
+  rtems_set_errno_and_return_minus_one( ENOTSUP );
</font> }
 
 #endif

<font color='#006600'>diff -u rtems/cpukit/libcsupport/src/tcflush.c:1.6 rtems/cpukit/libcsupport/src/tcflush.c:1.7
--- rtems/cpukit/libcsupport/src/tcflush.c:1.6  Tue Sep 15 04:42:46 2009
+++ rtems/cpukit/libcsupport/src/tcflush.c      Mon Jun  7 13:37:16 2010
</font><font color='#997700'>@@ -1,7 +1,7 @@
</font> /*
  *  tcflush() - POSIX 1003.1b 7.2.2 - Line Control Functions
  *
<font color='#880000'>- *  COPYRIGHT (c) 1989-1999.
</font><font color='#000088'>+ *  COPYRIGHT (c) 1989-2010.
</font>  *  On-Line Applications Research Corporation (OAR).
  *
  *  The license and distribution terms for this file may be
<font color='#997700'>@@ -24,12 +24,26 @@
</font> #include <termios.h>
 /* #include <sys/ioctl.h> */
 
<font color='#000088'>+#include <rtems/seterr.h>
</font> #include <rtems/libio.h>
 
 int tcflush (
   int fd __attribute__((unused)),
<font color='#880000'>-  int queue __attribute__((unused)) )
</font><font color='#000088'>+  int queue
+)
</font> {
<font color='#000088'>+  switch (queue) {
+    case TCIFLUSH:
+    case TCOFLUSH:
+    case TCIOFLUSH:
+    default:
+      rtems_set_errno_and_return_minus_one( EINVAL );
+  }
+
+  /* fd is not validated */
+
+  /* When this is supported, implement it here */
+  rtems_set_errno_and_return_minus_one( ENOTSUP );
</font>   return 0;
 }
 

<font color='#006600'>diff -u rtems/cpukit/libcsupport/src/tcsetpgrp.c:1.6 rtems/cpukit/libcsupport/src/tcsetpgrp.c:1.7
--- rtems/cpukit/libcsupport/src/tcsetpgrp.c:1.6        Tue Sep 15 04:42:46 2009
+++ rtems/cpukit/libcsupport/src/tcsetpgrp.c    Mon Jun  7 13:37:16 2010
</font><font color='#997700'>@@ -1,7 +1,7 @@
</font> /*
  *  tcsetprgrp() - POSIX 1003.1b 7.2.4 - Set Foreground Process Group ID
  *
<font color='#880000'>- *  COPYRIGHT (c) 1989-1999.
</font><font color='#000088'>+ *  COPYRIGHT (c) 1989-2010.
</font>  *  On-Line Applications Research Corporation (OAR).
  *
  *  The license and distribution terms for this file may be
<font color='#997700'>@@ -26,7 +26,7 @@
</font> 
 #include <rtems/libio.h>
 
<font color='#880000'>-int tcsetprgrp(
</font><font color='#000088'>+int tcsetpgrp(
</font>   int fd __attribute__((unused)),
   pid_t pid __attribute__((unused)) )
 {
</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>