<!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-08-03)</title>
</head>
<body text='#000000' bgcolor='#ffffff'>
<a name='cs1'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>joel</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-08-03 Joel Sherrill <joel.sherrilL@OARcorp.com>

        * console/console.c: Add BSP_poll_char. Reformat.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/m68k/av5282/ChangeLog.diff?r1=text&tr1=1.54&r2=text&tr2=1.55&diff_format=h">M</a></td><td width='1%'>1.55</td><td width='100%'>c/src/lib/libbsp/m68k/av5282/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/m68k/av5282/console/console.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.8&diff_format=h">M</a></td><td width='1%'>1.8</td><td width='100%'>c/src/lib/libbsp/m68k/av5282/console/console.c</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/m68k/av5282/ChangeLog:1.54 rtems/c/src/lib/libbsp/m68k/av5282/ChangeLog:1.55
--- rtems/c/src/lib/libbsp/m68k/av5282/ChangeLog:1.54   Tue Apr 27 12:33:53 2010
+++ rtems/c/src/lib/libbsp/m68k/av5282/ChangeLog        Tue Aug  3 09:15:39 2010
</font><font color='#997700'>@@ -1,3 +1,7 @@
</font><font color='#000088'>+2010-08-03    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       * console/console.c: Add BSP_poll_char. Reformat.
+
</font> 2010-04-27        Joel Sherrill <joel.sherrilL@OARcorp.com>
 
        * network/network.c, startup/bspstart.c: Remove warnings. hwaddr

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/m68k/av5282/console/console.c:1.7 rtems/c/src/lib/libbsp/m68k/av5282/console/console.c:1.8
--- rtems/c/src/lib/libbsp/m68k/av5282/console/console.c:1.7    Thu Dec 17 02:42:15 2009
+++ rtems/c/src/lib/libbsp/m68k/av5282/console/console.c        Tue Aug  3 09:15:39 2010
</font><font color='#997700'>@@ -1,7 +1,9 @@
</font>  /*
   *  Multi UART console serial I/O.
   *
<font color='#880000'>-  * TO DO: Add DMA input/output
</font><font color='#000088'>+  *  TO DO: Add DMA input/output
+  *
+  *  $Id$
</font>   */
 
 #include <stdio.h>
<font color='#997700'>@@ -25,728 +27,715 @@
</font> static ssize_t IntUartPollWrite(int minor, const char *buf, size_t len);
 static ssize_t IntUartInterruptWrite (int minor, const char *buf, size_t len);
 
<font color='#880000'>-static void
-_BSP_null_char( char c )
</font><font color='#000088'>+static void _BSP_null_char( char c )
</font> {
<font color='#880000'>-   int level;
</font><font color='#000088'>+  rtems_interrupt_level level;
</font> 
<font color='#880000'>-    if (c == '\n')
-        _BSP_null_char('\r');
-       rtems_interrupt_disable(level);
-    while ( (MCF5282_UART_USR(CONSOLE_PORT) & MCF5282_UART_USR_TXRDY) == 0 )
-        continue;
-    MCF5282_UART_UTB(CONSOLE_PORT) = c;
-    while ( (MCF5282_UART_USR(CONSOLE_PORT) & MCF5282_UART_USR_TXRDY) == 0 )
-        continue;
-       rtems_interrupt_enable(level);
</font><font color='#000088'>+  if (c == '\n')
+    _BSP_null_char('\r');
+  rtems_interrupt_disable(level);
+  while ( (MCF5282_UART_USR(CONSOLE_PORT) & MCF5282_UART_USR_TXRDY) == 0 )
+    continue;
+
+  MCF5282_UART_UTB(CONSOLE_PORT) = c;
+  while ( (MCF5282_UART_USR(CONSOLE_PORT) & MCF5282_UART_USR_TXRDY) == 0 )
+    continue;
+
+  rtems_interrupt_enable(level);
</font> }
<font color='#880000'>-BSP_output_char_function_type BSP_output_char = _BSP_null_char;
</font><font color='#000088'>+BSP_output_char_function_type     BSP_output_char = _BSP_null_char;
+BSP_polling_getchar_function_type BSP_poll_char = NULL;
+
</font> 
 #define MAX_UART_INFO     3
 #define RX_BUFFER_SIZE    512
 
 struct IntUartInfoStruct
 {
<font color='#880000'>-   int                    iomode;
-       volatile int           uimr;
-       int                    baud;
-       int                    databits;
-       int                    parity;
-       int                    stopbits;
-       int                    hwflow;
-       int                    rx_in;
-       int                    rx_out;
-       char                   rx_buffer[RX_BUFFER_SIZE];
-       void                  *ttyp;
</font><font color='#000088'>+  int           iomode;
+  volatile int  uimr;
+  int           baud;
+  int           databits;
+  int           parity;
+  int           stopbits;
+  int           hwflow;
+  int           rx_in;
+  int           rx_out;
+  char          rx_buffer[RX_BUFFER_SIZE];
+  void         *ttyp;
</font> };
 
 struct IntUartInfoStruct IntUartInfo[MAX_UART_INFO];
 
<font color='#880000'>-/***************************************************************************
-   Function : IntUartSet
-
-   Description : This updates the hardware UART settings.
- ***************************************************************************/
-static void
-IntUartSet(int minor, int baud, int databits, int parity, int stopbits, int hwflow)
-{
-       int                         divisor;
-       uint32_t                                        clock_speed;
-       uint8_t                   umr1 = 0;
-       uint8_t                   umr2 = 0;
-       struct IntUartInfoStruct   *info = &IntUartInfo[minor];
-       int                         level;
-
-       rtems_interrupt_disable(level);
-
-
-       /* disable interrupts, clear RTS line, and disable the UARTS */
-       MCF5282_UART_UIMR(minor) = 0;
-       MCF5282_UART_UOP0(minor) = 1;
-       MCF5282_UART_UCR(minor) = (MCF5282_UART_UCR_TX_DISABLED | MCF5282_UART_UCR_RX_DISABLED);
-
-       /* save the current values */
-       info->uimr     = 0;
-       info->baud     = baud;
-       info->databits = databits;
-       info->parity   = parity;
-       info->stopbits = stopbits;
-       info->hwflow   = hwflow;
-
-    clock_speed = get_CPU_clock_speed();
-    /* determine the baud divisor value */
-    divisor = (clock_speed / ( 32 * baud ));
-    if ( divisor < 2 )
-        divisor = 2;
-
-       /* check to see if doing hardware flow control */
-       if ( hwflow )
-       {
-               /* set hardware flow options */
-               umr1 |= MCF5282_UART_UMR1_RXRTS;
-               umr2 |= MCF5282_UART_UMR2_TXCTS;
-       }
-
-       /* determine the new umr values */
-       umr1 |= (parity | databits);
-       umr2 |= (stopbits);
-
-       /* reset the uart */
-       MCF5282_UART_UCR(minor) = MCF5282_UART_UCR_RESET_ERROR;
-       MCF5282_UART_UCR(minor) = MCF5282_UART_UCR_RESET_RX;
-       MCF5282_UART_UCR(minor) = MCF5282_UART_UCR_RESET_TX;
-
-       /* reset the uart mode register and update values */
-       MCF5282_UART_UCR(minor) = MCF5282_UART_UCR_RESET_MR;
-       MCF5282_UART_UMR(minor) = umr1;
-       MCF5282_UART_UMR(minor) = umr2;
-
-       /* set the baud rate values */
-       MCF5282_UART_UCSR(minor) = (MCF5282_UART_UCSR_RCS_SYS_CLK | MCF5282_UART_UCSR_TCS_SYS_CLK);
-       MCF5282_UART_UBG1(minor) = (divisor & 0xff00) >> 8;
-       MCF5282_UART_UBG2(minor) = (divisor & 0x00ff);
-
-       /* enable the uart */
-    MCF5282_UART_UCR(minor) = (MCF5282_UART_UCR_TX_ENABLED | MCF5282_UART_UCR_RX_ENABLED);
-
-       /* check to see if interrupts need to be enabled */
-       if ( info->iomode != TERMIOS_POLLED )
-       {
-               /* enable rx interrupts */
-               info->uimr |= MCF5282_UART_UIMR_FFULL;
-               MCF5282_UART_UIMR(minor) = info->uimr;
-       }
-
-       /* check to see if doing hardware flow control */
-       if ( hwflow )
-       {
-               /* assert the RTS line */
-               MCF5282_UART_UOP1(minor) = 1;
-       }
-
-       rtems_interrupt_enable(level);
-
-}
-
-
-/***************************************************************************
-   Function : IntUartSetAttributes
-
-   Description : This provides the hardware-dependent portion of tcsetattr().
-   value and sets it. At the moment this just sets the baud rate.
-
-   Note: The highest baudrate is 115200 as this stays within
-   an error of +/- 5% at 25MHz processor clock
- ***************************************************************************/
-static int
-IntUartSetAttributes(int minor, const struct termios *t)
-{
-       /* set default index values */
-       int                         baud     = (int)19200;
-       int                         databits = (int)MCF5282_UART_UMR1_BC_8;
-       int                         parity   = (int)MCF5282_UART_UMR1_PM_NONE;
-       int                         stopbits = (int)MCF5282_UART_UMR2_STOP_BITS_1;
-       int                         hwflow   = (int)0;
-       struct IntUartInfoStruct   *info     = &IntUartInfo[minor];
-
-       /* check to see if input is valid */
-       if ( t != (const struct termios *)0 )
-       {
-               /* determine baud rate index */
-<span style="background-color: #FF0000">  </span>                baud = rtems_termios_baud_to_number(t->c_cflag & CBAUD);
-
-               /* determine data bits */
-               switch ( t->c_cflag & CSIZE )
-               {
-                       case CS5:
-                               databits = (int)MCF5282_UART_UMR1_BC_5;
-                               break;
-                       case CS6:
-                               databits = (int)MCF5282_UART_UMR1_BC_6;
-                               break;
-                       case CS7:
-                               databits = (int)MCF5282_UART_UMR1_BC_7;
-                               break;
-                       case CS8:
-                               databits = (int)MCF5282_UART_UMR1_BC_8;
-                               break;
-               }
-
-               /* determine if parity is enabled */
-               if ( t->c_cflag & PARENB )
-               {
-                       if ( t->c_cflag & PARODD )
-                       {
-                               /* odd parity */
-                               parity = (int)MCF5282_UART_UMR1_PM_ODD;
-                       }
-                       else
-                       {
-                               /* even parity */
-                               parity = (int)MCF5282_UART_UMR1_PM_EVEN;
-                       }
-               }
-
-               /* determine stop bits */
-               if ( t->c_cflag & CSTOPB )
-               {
-                       /* two stop bits */
-                       stopbits = (int)MCF5282_UART_UMR2_STOP_BITS_2;
-               }
-
-               /* check to see if hardware flow control */
-               if ( t->c_cflag & CRTSCTS )
-               {
-                       hwflow = 1;
-               }
-       }
-
-       /* check to see if values have changed */
-       if ( ( baud     != info->baud     ) ||
-                ( databits != info->databits ) ||
-                ( parity   != info->parity   ) ||
-                ( stopbits != info->stopbits ) ||
-                ( hwflow   != info->hwflow   ) )
-       {
-
-               /* call function to set values */
-               IntUartSet(minor, baud, databits, parity, stopbits, hwflow);
-       }
-
-       return( RTEMS_SUCCESSFUL );
-
-}
-
-/***************************************************************************
-   Function : IntUartInterruptHandler
-
-   Description : This is the interrupt handler for the internal uart. It
-   determines which channel caused the interrupt before queueing any received
-   chars and dequeueing chars waiting for transmission.
- ***************************************************************************/
-static rtems_isr
-IntUartInterruptHandler(rtems_vector_number v)
-{
-       unsigned int                chan = v - UART_INTC0_IRQ_VECTOR(0);
-       struct IntUartInfoStruct   *info = &IntUartInfo[chan];
-
-       /* check to see if received data */
-       if ( MCF5282_UART_UISR(chan) & MCF5282_UART_UISR_RXRDY )
-       {
-               /* read data and put into the receive buffer */
-               while ( MCF5282_UART_USR(chan) & MCF5282_UART_USR_RXRDY )
-               {
-
-                       if ( MCF5282_UART_USR(chan) & MCF5282_UART_USR_ERROR )
-                       {
-                               /* clear the error */
-                               MCF5282_UART_UCR(chan) = MCF5282_UART_UCR_RESET_ERROR;
-                       }
-                       /* put data in rx buffer and check for errors */
-                       info->rx_buffer[info->rx_in] = MCF5282_UART_URB(chan);
-
-                       /* update buffer values */
-                       info->rx_in++;
-
-                       if ( info->rx_in >= RX_BUFFER_SIZE )
-                       {
-                               info->rx_in = 0;
-                       }
-               }
-               /* Make sure the port has been opened */
-               if ( info->ttyp )
-               {
-
-                       /* check to see if task driven */
-                       if ( info->iomode == TERMIOS_TASK_DRIVEN )
-                       {
-                               /* notify rx task that rx buffer has data */
-                               rtems_termios_rxirq_occured(info->ttyp);
-                       }
-                       else
-                       {
-                               /* Push up the received data */
-                               rtems_termios_enqueue_raw_characters(info->ttyp, info->rx_buffer, info->rx_in);
-                               info->rx_in    = 0;
-                       }
-               }
-       }
-
-       /* check to see if data needs to be transmitted */
-       if ( ( info->uimr & MCF5282_UART_UIMR_TXRDY ) &&
-                ( MCF5282_UART_UISR(chan) & MCF5282_UART_UISR_TXRDY ) )
-       {
-
-               /* disable tx interrupts */
-               info->uimr &= ~MCF5282_UART_UIMR_TXRDY;
-               MCF5282_UART_UIMR(chan) = info->uimr;
-
-               /* tell upper level that character has been sent */
-               if ( info->ttyp )
-                       rtems_termios_dequeue_characters(info->ttyp, 1);
-       }
-}
-
-
-
-/***************************************************************************
-   Function : IntUartInitialize
-
-   Description : This initialises the internal uart hardware for all
-   internal uarts. If the internal uart is to be interrupt driven then the
-   interrupt vectors are hooked.
- ***************************************************************************/
-static void
-IntUartInitialize(void)
-{
-       unsigned int        chan;
-       struct IntUartInfoStruct   *info;
-       rtems_isr_entry old_handler;
-    int level;
-
-       for ( chan = 0; chan < MAX_UART_INFO; chan++ )
-       {
-               info = &IntUartInfo[chan];
-
-               info->ttyp     = NULL;
-               info->rx_in    = 0;
-               info->rx_out   = 0;
-               info->baud     = -1;
-               info->databits = -1;
-               info->parity   = -1;
-               info->stopbits = -1;
-               info->hwflow   = -1;
-               info->iomode   = TERMIOS_POLLED;
-
-               MCF5282_UART_UACR(chan) = 0;
-               MCF5282_UART_UIMR(chan) = 0;
-               if ( info->iomode != TERMIOS_POLLED )
-               {
-                       rtems_interrupt_catch (IntUartInterruptHandler,
-                                                                  UART_INTC0_IRQ_VECTOR(chan),
-                                                                  &old_handler);
-               }
-
-               /* set uart default values */
-               IntUartSetAttributes(chan, NULL);
-
-        /* unmask interrupt */
-               rtems_interrupt_disable(level);
-        switch(chan) {
-        case 0:
-            MCF5282_INTC0_ICR13 = MCF5282_INTC_ICR_IL(UART0_IRQ_LEVEL) |
-                                  MCF5282_INTC_ICR_IP(UART0_IRQ_PRIORITY);
-            MCF5282_INTC0_IMRL &= ~(MCF5282_INTC_IMRL_INT13 |
-                                    MCF5282_INTC_IMRL_MASKALL);
-            break;
-
-        case 1:
-            MCF5282_INTC0_ICR14 = MCF5282_INTC_ICR_IL(UART1_IRQ_LEVEL) |
-                                  MCF5282_INTC_ICR_IP(UART1_IRQ_PRIORITY);
-            MCF5282_INTC0_IMRL &= ~(MCF5282_INTC_IMRL_INT14 |
-                                    MCF5282_INTC_IMRL_MASKALL);
-            break;
-
-        case 2:
-            MCF5282_INTC0_ICR15 = MCF5282_INTC_ICR_IL(UART2_IRQ_LEVEL) |
-                                  MCF5282_INTC_ICR_IP(UART2_IRQ_PRIORITY);
-            MCF5282_INTC0_IMRL &= ~(MCF5282_INTC_IMRL_INT15 |
-                                    MCF5282_INTC_IMRL_MASKALL);
-            break;
-        }
-               rtems_interrupt_enable(level);
</font><font color='#000088'>+/*
+ * Function : IntUartSet
+ *
+ * Description : This updates the hardware UART settings.
+ */
+static void IntUartSet(
+  int minor,
+  int baud,
+  int databits,
+  int parity,
+  int stopbits,
+  int hwflow
+)
+{
+  int                       divisor;
+  uint32_t                  clock_speed;
+  uint8_t                   umr1 = 0;
+  uint8_t                   umr2 = 0;
+  struct IntUartInfoStruct *info = &IntUartInfo[minor];
+  rtems_interrupt_level     level;
+
+  rtems_interrupt_disable(level);
+
+  /* disable interrupts, clear RTS line, and disable the UARTS */
+  MCF5282_UART_UIMR(minor) = 0;
+  MCF5282_UART_UOP0(minor) = 1;
+  MCF5282_UART_UCR(minor) =
+    (MCF5282_UART_UCR_TX_DISABLED | MCF5282_UART_UCR_RX_DISABLED);
+
+  /* save the current values */
+  info->uimr     = 0;
+  info->baud     = baud;
+  info->databits = databits;
+  info->parity   = parity;
+  info->stopbits = stopbits;
+  info->hwflow   = hwflow;
+
+  clock_speed = get_CPU_clock_speed();
+  /* determine the baud divisor value */
+  divisor = (clock_speed / ( 32 * baud ));
+  if ( divisor < 2 )
+    divisor = 2;
+
+  /* check to see if doing hardware flow control */
+  if ( hwflow ) {
+    /* set hardware flow options */
+    umr1 |= MCF5282_UART_UMR1_RXRTS;
+    umr2 |= MCF5282_UART_UMR2_TXCTS;
+  }
+
+  /* determine the new umr values */
+  umr1 |= (parity | databits);
+  umr2 |= (stopbits);
+
+  /* reset the uart */
+  MCF5282_UART_UCR(minor) = MCF5282_UART_UCR_RESET_ERROR;
+  MCF5282_UART_UCR(minor) = MCF5282_UART_UCR_RESET_RX;
+  MCF5282_UART_UCR(minor) = MCF5282_UART_UCR_RESET_TX;
+
+  /* reset the uart mode register and update values */
+  MCF5282_UART_UCR(minor) = MCF5282_UART_UCR_RESET_MR;
+  MCF5282_UART_UMR(minor) = umr1;
+  MCF5282_UART_UMR(minor) = umr2;
+
+  /* set the baud rate values */
+  MCF5282_UART_UCSR(minor) =
+    (MCF5282_UART_UCSR_RCS_SYS_CLK | MCF5282_UART_UCSR_TCS_SYS_CLK);
+  MCF5282_UART_UBG1(minor) = (divisor & 0xff00) >> 8;
+  MCF5282_UART_UBG2(minor) = (divisor & 0x00ff);
+
+  /* enable the uart */
+  MCF5282_UART_UCR(minor) =
+    (MCF5282_UART_UCR_TX_ENABLED | MCF5282_UART_UCR_RX_ENABLED);
+
+  /* check to see if interrupts need to be enabled */
+  if ( info->iomode != TERMIOS_POLLED ) {
+    /* enable rx interrupts */
+    info->uimr |= MCF5282_UART_UIMR_FFULL;
+    MCF5282_UART_UIMR(minor) = info->uimr;
+  }
+
+  /* check to see if doing hardware flow control */
+  if ( hwflow ) {
+    /* assert the RTS line */
+    MCF5282_UART_UOP1(minor) = 1;
+  }
+
+  rtems_interrupt_enable(level);
+}
+
+/*
+ * Function : IntUartSetAttributes
+ *
+ * Description : This provides the hardware-dependent portion of tcsetattr().
+ * value and sets it. At the moment this just sets the baud rate.
+ *
+ * Note: The highest baudrate is 115200 as this stays within
+ * an error of +/- 5% at 25MHz processor clock
+ */
+static int IntUartSetAttributes(
+  int                   minor,
+  const struct termios *t
+)
+{
+  /* set default index values */
+  int                         baud     = (int)19200;
+  int                         databits = (int)MCF5282_UART_UMR1_BC_8;
+  int                         parity   = (int)MCF5282_UART_UMR1_PM_NONE;
+  int                         stopbits = (int)MCF5282_UART_UMR2_STOP_BITS_1;
+  int                         hwflow   = (int)0;
+  struct IntUartInfoStruct   *info     = &IntUartInfo[minor];
+
+  /* check to see if input is valid */
+  if ( t != (const struct termios *)0 ) {
+    /* determine baud rate index */
+    baud = rtems_termios_baud_to_number(t->c_cflag & CBAUD);
+
+    /* determine data bits */
+    switch ( t->c_cflag & CSIZE ) {
+      case CS5:
+        databits = (int)MCF5282_UART_UMR1_BC_5;
+        break;
+      case CS6:
+        databits = (int)MCF5282_UART_UMR1_BC_6;
+        break;
+      case CS7:
+        databits = (int)MCF5282_UART_UMR1_BC_7;
+        break;
+      case CS8:
+        databits = (int)MCF5282_UART_UMR1_BC_8;
+        break;
+    }
+
+    /* determine if parity is enabled */
+    if ( t->c_cflag & PARENB ) {
+      if ( t->c_cflag & PARODD ) {
+        /* odd parity */
+        parity = (int)MCF5282_UART_UMR1_PM_ODD;
+      } else {
+        /* even parity */
+        parity = (int)MCF5282_UART_UMR1_PM_EVEN;
+      }
+    }
+
+    /* determine stop bits */
+    if ( t->c_cflag & CSTOPB ) {
+      /* two stop bits */
+      stopbits = (int)MCF5282_UART_UMR2_STOP_BITS_2;
+    }
+
+    /* check to see if hardware flow control */
+    if ( t->c_cflag & CRTSCTS ) {
+      hwflow = 1;
+    }
+  }
+
+  /* check to see if values have changed */
+  if ( ( baud     != info->baud     ) ||
+     ( databits != info->databits ) ||
+     ( parity   != info->parity   ) ||
+     ( stopbits != info->stopbits ) ||
+     ( hwflow   != info->hwflow   ) ) {
+
+    /* call function to set values */
+    IntUartSet(minor, baud, databits, parity, stopbits, hwflow);
+  }
+
+  return RTEMS_SUCCESSFUL;
+}
+
+/*
+ * Function : IntUartInterruptHandler
+ *
+ * Description : This is the interrupt handler for the internal uart. It
+ * determines which channel caused the interrupt before queueing any received
+ * chars and dequeueing chars waiting for transmission.
+ */<span style="background-color: #FF0000"> </span>
+static rtems_isr IntUartInterruptHandler(rtems_vector_number v)
+{
+  unsigned int                chan = v - UART_INTC0_IRQ_VECTOR(0);
+  struct IntUartInfoStruct   *info = &IntUartInfo[chan];
+
+  /* check to see if received data */
+  if ( MCF5282_UART_UISR(chan) & MCF5282_UART_UISR_RXRDY ) {
+    /* read data and put into the receive buffer */
+    while ( MCF5282_UART_USR(chan) & MCF5282_UART_USR_RXRDY ) {
+
+      if ( MCF5282_UART_USR(chan) & MCF5282_UART_USR_ERROR ) {
+        /* clear the error */
+        MCF5282_UART_UCR(chan) = MCF5282_UART_UCR_RESET_ERROR;
+      }
+      /* put data in rx buffer and check for errors */
+      info->rx_buffer[info->rx_in] = MCF5282_UART_URB(chan);
+
+      /* update buffer values */
+      info->rx_in++;
+
+      if ( info->rx_in >= RX_BUFFER_SIZE ) {
+        info->rx_in = 0;
+      }
+    }
+
+    /* Make sure the port has been opened */
+    if ( info->ttyp ) {
+
+      /* check to see if task driven */
+      if ( info->iomode == TERMIOS_TASK_DRIVEN ) {
+        /* notify rx task that rx buffer has data */
+        rtems_termios_rxirq_occured(info->ttyp);
+      } else {
+        /* Push up the received data */
+        rtems_termios_enqueue_raw_characters(
+            info->ttyp, info->rx_buffer, info->rx_in);
+        info->rx_in    = 0;
+      }
+    }
+  }
+
+  /* check to see if data needs to be transmitted */
+  if ( ( info->uimr & MCF5282_UART_UIMR_TXRDY ) &&
+     ( MCF5282_UART_UISR(chan) & MCF5282_UART_UISR_TXRDY ) )
+  {
+
+    /* disable tx interrupts */
+    info->uimr &= ~MCF5282_UART_UIMR_TXRDY;
+    MCF5282_UART_UIMR(chan) = info->uimr;
+
+    /* tell upper level that character has been sent */
+    if ( info->ttyp )
+      rtems_termios_dequeue_characters(info->ttyp, 1);
+  }
+}
+
+/*
+ * Function : IntUartInitialize
+ *
+ * Description : This initialises the internal uart hardware for all
+ * internal uarts. If the internal uart is to be interrupt driven then the
+ * interrupt vectors are hooked.
+ */<span style="background-color: #FF0000"> </span>
+static void IntUartInitialize(void)
+{
+  unsigned int              chan;
+  struct IntUartInfoStruct *info;
+  rtems_isr_entry           old_handler;
+  rtems_interrupt_level     level;
+
+  for ( chan = 0; chan < MAX_UART_INFO; chan++ ) {
+    info = &IntUartInfo[chan];
+
+    info->ttyp     = NULL;
+    info->rx_in    = 0;
+    info->rx_out   = 0;
+    info->baud     = -1;
+    info->databits = -1;
+    info->parity   = -1;
+    info->stopbits = -1;
+    info->hwflow   = -1;
+    info->iomode   = TERMIOS_POLLED;
+
+    MCF5282_UART_UACR(chan) = 0;
+    MCF5282_UART_UIMR(chan) = 0;
+    if ( info->iomode != TERMIOS_POLLED ) {
+      rtems_interrupt_catch (IntUartInterruptHandler,
+                   UART_INTC0_IRQ_VECTOR(chan),
+                   &old_handler);
+    }
+
+    /* set uart default values */
+    IntUartSetAttributes(chan, NULL);
+
+    /* unmask interrupt */
+    rtems_interrupt_disable(level);
+    switch(chan) {
+      case 0:
+        MCF5282_INTC0_ICR13 = MCF5282_INTC_ICR_IL(UART0_IRQ_LEVEL) |
+                              MCF5282_INTC_ICR_IP(UART0_IRQ_PRIORITY);
+        MCF5282_INTC0_IMRL &= ~(MCF5282_INTC_IMRL_INT13 |
+                              MCF5282_INTC_IMRL_MASKALL);
+        break;
+
+    case 1:
+      MCF5282_INTC0_ICR14 = MCF5282_INTC_ICR_IL(UART1_IRQ_LEVEL) |
+                            MCF5282_INTC_ICR_IP(UART1_IRQ_PRIORITY);
+      MCF5282_INTC0_IMRL &= ~(MCF5282_INTC_IMRL_INT14 |
+                            MCF5282_INTC_IMRL_MASKALL);
+    break;
+
+    case 2:
+      MCF5282_INTC0_ICR15 = MCF5282_INTC_ICR_IL(UART2_IRQ_LEVEL) |
+                            MCF5282_INTC_ICR_IP(UART2_IRQ_PRIORITY);
+      MCF5282_INTC0_IMRL &= ~(MCF5282_INTC_IMRL_INT15 |
+                           MCF5282_INTC_IMRL_MASKALL);
+      break;
+    }
+    rtems_interrupt_enable(level);
</font> 
<font color='#880000'>-   } /* of chan loop */
</font><font color='#000088'>+  } /* of chan loop */
</font> 
 
 } /* IntUartInitialise */
 
 
<font color='#880000'>-/***************************************************************************
-   Function : IntUartInterruptWrite
-
-   Description : This writes a single character to the appropriate uart
-   channel. This is either called during an interrupt or in the user's task
-   to initiate a transmit sequence. Calling this routine enables Tx
-   interrupts.
- ***************************************************************************/
-static ssize_t
-IntUartInterruptWrite (int minor, const char *buf, size_t len)
-{
-       int level;
-
-       rtems_interrupt_disable(level);
-
-       /* write out character */
-       MCF5282_UART_UTB(minor) = *buf;
-
-       /* enable tx interrupt */
-       IntUartInfo[minor].uimr |= MCF5282_UART_UIMR_TXRDY;
-       MCF5282_UART_UIMR(minor) = IntUartInfo[minor].uimr;
-
-       rtems_interrupt_enable(level);
-       return( 0 );
-}
-
-/***************************************************************************
-   Function : IntUartInterruptOpen
-
-   Description : This enables interrupts when the tty is opened.
- ***************************************************************************/
-static int
-IntUartInterruptOpen(int major, int minor, void *arg)
-{
-       struct IntUartInfoStruct   *info = &IntUartInfo[minor];
-
-       /* enable the uart */
-       MCF5282_UART_UCR(minor) = (MCF5282_UART_UCR_TX_ENABLED | MCF5282_UART_UCR_RX_ENABLED);
-
-       /* check to see if interrupts need to be enabled */
-       if ( info->iomode != TERMIOS_POLLED )
-       {
-               /* enable rx interrupts */
-               info->uimr |= MCF5282_UART_UIMR_FFULL;
-               MCF5282_UART_UIMR(minor) = info->uimr;
-       }
-
-       /* check to see if doing hardware flow control */
-       if ( info->hwflow )
-       {
-               /* assert the RTS line */
-               MCF5282_UART_UOP1(minor) = 1;
-       }
-
-       return( 0 );
-}
-
-
-
-/***************************************************************************
-   Function : IntUartInterruptClose
-
-   Description : This disables interrupts when the tty is closed.
- ***************************************************************************/
-static int
-IntUartInterruptClose(int major, int minor, void *arg)
-{
-       struct IntUartInfoStruct   *info = &IntUartInfo[minor];
-
-       /* disable the interrupts and the uart */
-       MCF5282_UART_UIMR(minor) = 0;
-       MCF5282_UART_UCR(minor) = (MCF5282_UART_UCR_TX_DISABLED | MCF5282_UART_UCR_RX_DISABLED);
-
-       /* reset values */
-       info->ttyp     = NULL;
-       info->uimr       = 0;
-       info->rx_in    = 0;
-       info->rx_out   = 0;
-
-       return( 0 );
-}
-
-/***************************************************************************
-   Function : IntUartTaskRead
-
-   Description : This reads all available characters from the internal uart
-   and places them into the termios buffer.  The rx interrupts will be
-   re-enabled after all data has been read.
- ***************************************************************************/
-static int
-IntUartTaskRead(int minor)
-{
-       char                        buffer[RX_BUFFER_SIZE];
-       int                         count;
-       int                         rx_in;
-       int                         index = 0;
-       struct IntUartInfoStruct   *info  = &IntUartInfo[minor];
-
-       /* determine number of values to copy out */
-       rx_in = info->rx_in;
-       if ( info->rx_out <= rx_in )
-       {
-               count = rx_in - info->rx_out;
-       }
-       else
-       {
-               count = (RX_BUFFER_SIZE - info->rx_out) + rx_in;
-       }
-
-       /* copy data into local buffer from rx buffer */
-       while ( ( index < count ) && ( index < RX_BUFFER_SIZE ) )
-       {
-               /* copy data byte */
-               buffer[index] = info->rx_buffer[info->rx_out];
-               index++;
-
-               /* increment rx buffer values */
-               info->rx_out++;
-               if ( info->rx_out >= RX_BUFFER_SIZE )
-               {
-                       info->rx_out = 0;
-               }
-       }
-
-       /* check to see if buffer is not empty */
-       if ( count > 0 )
-       {
-               /* set characters into termios buffer  */
-               rtems_termios_enqueue_raw_characters(info->ttyp, buffer, count);
-       }
-
-       return( EOF );
-}
-
-
-
-/***************************************************************************
-   Function : IntUartPollRead
-
-   Description : This reads a character from the internal uart. It returns
-   to the caller without blocking if not character is waiting.
- ***************************************************************************/
-static int
-IntUartPollRead (int minor)
-{
-       if ( (MCF5282_UART_USR(minor) & MCF5282_UART_USR_RXRDY) == 0 )
-               return(-1);
-
-       return(MCF5282_UART_URB(minor));
-}
-
-
-/***************************************************************************
-   Function : IntUartPollWrite
-
-   Description : This writes out each character in the buffer to the
-   appropriate internal uart channel waiting till each one is sucessfully
-   transmitted.
- ***************************************************************************/
-static ssize_t
-IntUartPollWrite (int minor, const char *buf, size_t len)
-{
-       size_t retval = len;
-       /* loop over buffer */
-       while ( len-- )
-       {
-               /* block until we can transmit */
-               while ( (MCF5282_UART_USR(minor) & MCF5282_UART_USR_TXRDY) == 0 )
-                       continue;
-               /* transmit data byte */
-               MCF5282_UART_UTB(minor) = *buf++;
-       }
-       return retval;
-}
-
-/***************************************************************************
-   Function : console_initialize
-
-   Description : This initialises termios, both sets of uart hardware before
-   registering /dev/tty devices for each channel and the system /dev/console.
- ***************************************************************************/
</font><font color='#000088'>+/*
+ * Function : IntUartInterruptWrite
+ *
+ * Description : This writes a single character to the appropriate uart
+ * channel. This is either called during an interrupt or in the user's task
+ * to initiate a transmit sequence. Calling this routine enables Tx
+ * interrupts.
+ */
+static ssize_t IntUartInterruptWrite(
+  int         minor,
+  const char *buf,
+  size_t      len
+)
+{
+  rtems_interrupt_level     level;
+
+  rtems_interrupt_disable(level);
+
+  /* write out character */
+  MCF5282_UART_UTB(minor) = *buf;
+
+  /* enable tx interrupt */
+  IntUartInfo[minor].uimr |= MCF5282_UART_UIMR_TXRDY;
+  MCF5282_UART_UIMR(minor) = IntUartInfo[minor].uimr;
+
+  rtems_interrupt_enable(level);
+  return 0;
+}
+
+/*
+ * Function : IntUartInterruptOpen
+ *
+ * Description : This enables interrupts when the tty is opened.
+ */
+static int IntUartInterruptOpen(
+  int   major,
+  int   minor,
+  void *arg
+)
+{
+  struct IntUartInfoStruct   *info = &IntUartInfo[minor];
+
+  /* enable the uart */
+  MCF5282_UART_UCR(minor) = (MCF5282_UART_UCR_TX_ENABLED |
+                             MCF5282_UART_UCR_RX_ENABLED);
+
+  /* check to see if interrupts need to be enabled */
+  if ( info->iomode != TERMIOS_POLLED ) {
+    /* enable rx interrupts */
+    info->uimr |= MCF5282_UART_UIMR_FFULL;
+    MCF5282_UART_UIMR(minor) = info->uimr;
+  }
+
+  /* check to see if doing hardware flow control */
+  if ( info->hwflow ) {
+    /* assert the RTS line */
+    MCF5282_UART_UOP1(minor) = 1;
+  }
+
+  return 0;
+}
+
+/*
+ * Function : IntUartInterruptClose
+ *
+ * Description : This disables interrupts when the tty is closed.
+ */
+static int IntUartInterruptClose(
+  int   major,
+  int   minor,
+  void *arg
+)
+{
+  struct IntUartInfoStruct   *info = &IntUartInfo[minor];
+
+  /* disable the interrupts and the uart */
+  MCF5282_UART_UIMR(minor) = 0;
+  MCF5282_UART_UCR(minor) =
+    (MCF5282_UART_UCR_TX_DISABLED | MCF5282_UART_UCR_RX_DISABLED);
+
+  /* reset values */
+  info->ttyp     = NULL;
+  info->uimr       = 0;
+  info->rx_in    = 0;
+  info->rx_out   = 0;
+
+  return 0;
+}
+
+/*
+ * Function : IntUartTaskRead
+ *
+ * Description : This reads all available characters from the internal uart
+ * and places them into the termios buffer.  The rx interrupts will be
+ * re-enabled after all data has been read.
+ */
+static int IntUartTaskRead(int minor)
+{
+  char                        buffer[RX_BUFFER_SIZE];
+  int                         count;
+  int                         rx_in;
+  int                         index = 0;
+  struct IntUartInfoStruct   *info  = &IntUartInfo[minor];
+
+  /* determine number of values to copy out */
+  rx_in = info->rx_in;
+  if ( info->rx_out <= rx_in ) {
+    count = rx_in - info->rx_out;
+  } else {
+    count = (RX_BUFFER_SIZE - info->rx_out) + rx_in;
+  }
+
+  /* copy data into local buffer from rx buffer */
+  while ( ( index < count ) && ( index < RX_BUFFER_SIZE ) ) {
+    /* copy data byte */
+    buffer[index] = info->rx_buffer[info->rx_out];
+    index++;
+
+    /* increment rx buffer values */
+    info->rx_out++;
+    if ( info->rx_out >= RX_BUFFER_SIZE ) {
+      info->rx_out = 0;
+    }
+  }
+
+  /* check to see if buffer is not empty */
+  if ( count > 0 ) {
+    /* set characters into termios buffer  */
+    rtems_termios_enqueue_raw_characters(info->ttyp, buffer, count);
+  }
+
+  return EOF;
+}
+
+
+
+/*
+ * Function : IntUartPollRead
+ *
+ * Description : This reads a character from the internal uart. It returns
+ * to the caller without blocking if not character is waiting.
+ */
+static int IntUartPollRead(int minor)
+{
+  if ( (MCF5282_UART_USR(minor) & MCF5282_UART_USR_RXRDY) == 0 )
+    return-1;
+
+  return MCF5282_UART_URB(minor);
+}
+
+
+/*
+ * Function : IntUartPollWrite
+ *
+ * Description : This writes out each character in the buffer to the
+ * appropriate internal uart channel waiting till each one is sucessfully
+ * transmitted.
+ */
+static ssize_t IntUartPollWrite(
+  int         minor,
+  const char *buf,
+  size_t      len
+)
+{
+  size_t retval = len;
+  /* loop over buffer */
+
+  while ( len-- ) {
+    /* block until we can transmit */
+    while ( (MCF5282_UART_USR(minor) & MCF5282_UART_USR_TXRDY) == 0 )
+      continue;
+    /* transmit data byte */
+    MCF5282_UART_UTB(minor) = *buf++;
+  }
+  return retval;
+}
+
+/*
+ * Function : console_initialize
+ *
+ * Description : This initialises termios, both sets of uart hardware before
+ * registering /dev/tty devices for each channel and the system /dev/console.
+ */
</font> rtems_device_driver console_initialize(
<font color='#880000'>-   rtems_device_major_number  major,
-       rtems_device_minor_number  minor,
-       void  *arg )
-{
-       rtems_status_code status;
-
-
-       /* Set up TERMIOS */
-       rtems_termios_initialize ();
-
-       /* set io modes for the different channels and initialize device */
-    IntUartInfo[minor].iomode = TERMIOS_IRQ_DRIVEN;
-       IntUartInitialize();
-
-       /* Register the console port */
-       status = rtems_io_register_name ("/dev/console", major, CONSOLE_PORT);
-       if ( status != RTEMS_SUCCESSFUL )
-       {
-               rtems_fatal_error_occurred (status);
-       }
-
-       /* Register the other port */
-       if ( CONSOLE_PORT != 0 )
-       {
-               status = rtems_io_register_name ("/dev/tty00", major, 0);
-               if ( status != RTEMS_SUCCESSFUL )
-               {
-                       rtems_fatal_error_occurred (status);
-               }
-       }
-       if ( CONSOLE_PORT != 1 )
-       {
-               status = rtems_io_register_name ("/dev/tty01", major, 1);
-               if ( status != RTEMS_SUCCESSFUL )
-               {
-                       rtems_fatal_error_occurred (status);
-               }
-       }
-
-       return(RTEMS_SUCCESSFUL);
-}
-
-/***************************************************************************
-   Function : console_open
-
-   Description : This actually opens the device depending on the minor
-   number set during initialisation. The device specific access routines are
-   passed to termios when the devices is opened depending on whether it is
-   polled or not.
- ***************************************************************************/
</font><font color='#000088'>+  rtems_device_major_number  major,
+  rtems_device_minor_number  minor,
+  void                      *arg
+)
+{
+  rtems_status_code status;
+
+  /* Set up TERMIOS */
+  rtems_termios_initialize ();
+
+  /* set io modes for the different channels and initialize device */
+  IntUartInfo[minor].iomode = TERMIOS_IRQ_DRIVEN;
+  IntUartInitialize();
+
+  /* Register the console port */
+  status = rtems_io_register_name ("/dev/console", major, CONSOLE_PORT);
+  if ( status != RTEMS_SUCCESSFUL ) {
+    rtems_fatal_error_occurred (status);
+  }
+
+  /* Register the other port */
+  if ( CONSOLE_PORT != 0 ) {
+    status = rtems_io_register_name ("/dev/tty00", major, 0);
+    if ( status != RTEMS_SUCCESSFUL ) {
+      rtems_fatal_error_occurred (status);
+    }
+  }
+  if ( CONSOLE_PORT != 1 ) {
+    status = rtems_io_register_name ("/dev/tty01", major, 1);
+    if ( status != RTEMS_SUCCESSFUL ) {
+      rtems_fatal_error_occurred (status);
+    }
+  }
+
+  return RTEMS_SUCCESSFUL;
+}
+
+/*
+ * Function : console_open
+ *
+ * Description : This actually opens the device depending on the minor
+ * number set during initialisation. The device specific access routines are
+ * passed to termios when the devices is opened depending on whether it is
+ * polled or not.
+ */
</font> rtems_device_driver console_open(
<font color='#880000'>-   rtems_device_major_number major,
-       rtems_device_minor_number minor,
-       void  * arg)
-{
-       rtems_status_code                status = RTEMS_INVALID_NUMBER;
-       rtems_libio_open_close_args_t   *args   = (rtems_libio_open_close_args_t *)arg;
-       struct IntUartInfoStruct        *info;
-
-       static const rtems_termios_callbacks IntUartPollCallbacks = {
-               NULL,                             /* firstOpen */
-               NULL,                             /* lastClose */
-               IntUartPollRead,          /* pollRead */
-               IntUartPollWrite,         /* write */
-               IntUartSetAttributes, /* setAttributes */
-               NULL,                             /* stopRemoteTx */
-               NULL,                             /* startRemoteTx */
-               TERMIOS_POLLED            /* mode */
-       };
-       static const rtems_termios_callbacks IntUartIntrCallbacks = {
-               IntUartInterruptOpen,  /* firstOpen */
-               IntUartInterruptClose, /* lastClose */
-               NULL,                              /* pollRead */
-               IntUartInterruptWrite, /* write */
-               IntUartSetAttributes,  /* setAttributes */
-               NULL,                              /* stopRemoteTx */
-               NULL,                              /* startRemoteTx */
-               TERMIOS_IRQ_DRIVEN         /* mode */
-       };
-
-       static const rtems_termios_callbacks IntUartTaskCallbacks = {
-               IntUartInterruptOpen,  /* firstOpen */
-               IntUartInterruptClose, /* lastClose */
-               IntUartTaskRead,           /* pollRead */
-               IntUartInterruptWrite, /* write */
-               IntUartSetAttributes,  /* setAttributes */
-               NULL,                              /* stopRemoteTx */
-               NULL,                              /* startRemoteTx */
-               TERMIOS_TASK_DRIVEN        /* mode */
-       };
-
-       /* open the port depending on the minor device number */
-       if ( ( minor >= 0 ) && ( minor < MAX_UART_INFO ) )
-       {
-               info = &IntUartInfo[minor];
-               switch ( info->iomode )
-               {
-                       case TERMIOS_POLLED:
-                               status = rtems_termios_open(major, minor, arg, &IntUartPollCallbacks);
-                               break;
-                       case TERMIOS_IRQ_DRIVEN:
-                               status = rtems_termios_open(major, minor, arg, &IntUartIntrCallbacks);
-                               info->ttyp = args->iop->data1;
-                               break;
-                       case TERMIOS_TASK_DRIVEN:
-                               status = rtems_termios_open(major, minor, arg, &IntUartTaskCallbacks);
-                               info->ttyp = args->iop->data1;
-                               break;
-               }
-       }
-
-       return( status );
-}
-
-/***************************************************************************
-   Function : console_close
-
-   Description : This closes the device via termios
- ***************************************************************************/
</font><font color='#000088'>+  rtems_device_major_number major,
+  rtems_device_minor_number minor,
+  void  * arg
+)
+{
+  rtems_status_code               status = RTEMS_INVALID_NUMBER;
+  rtems_libio_open_close_args_t  *args   = (rtems_libio_open_close_args_t *)arg;
+  struct IntUartInfoStruct       *info;
+
+  static const rtems_termios_callbacks IntUartPollCallbacks = {
+    NULL,                 /* firstOpen */
+    NULL,                 /* lastClose */
+    IntUartPollRead,      /* pollRead */
+    IntUartPollWrite,     /* write */
+    IntUartSetAttributes, /* setAttributes */
+    NULL,                 /* stopRemoteTx */
+    NULL,                 /* startRemoteTx */
+    TERMIOS_POLLED        /* mode */
+  };
+  static const rtems_termios_callbacks IntUartIntrCallbacks = {
+    IntUartInterruptOpen,  /* firstOpen */
+    IntUartInterruptClose, /* lastClose */
+    NULL,                  /* pollRead */
+    IntUartInterruptWrite, /* write */
+    IntUartSetAttributes,  /* setAttributes */
+    NULL,                  /* stopRemoteTx */
+    NULL,                  /* startRemoteTx */
+    TERMIOS_IRQ_DRIVEN     /* mode */
+  };
+
+  static const rtems_termios_callbacks IntUartTaskCallbacks = {
+    IntUartInterruptOpen,  /* firstOpen */
+    IntUartInterruptClose, /* lastClose */
+    IntUartTaskRead,       /* pollRead */
+    IntUartInterruptWrite, /* write */
+    IntUartSetAttributes,  /* setAttributes */
+    NULL,                  /* stopRemoteTx */
+    NULL,                  /* startRemoteTx */
+    TERMIOS_TASK_DRIVEN    /* mode */
+  };
+
+  /* open the port depending on the minor device number */
+  if ( ( minor >= 0 ) && ( minor < MAX_UART_INFO ) ) {
+    info = &IntUartInfo[minor];
+    switch ( info->iomode ) {
+      case TERMIOS_POLLED:
+        status = rtems_termios_open(major, minor, arg, &IntUartPollCallbacks);
+        break;
+      case TERMIOS_IRQ_DRIVEN:
+        status = rtems_termios_open(major, minor, arg, &IntUartIntrCallbacks);
+        info->ttyp = args->iop->data1;
+        break;
+      case TERMIOS_TASK_DRIVEN:
+        status = rtems_termios_open(major, minor, arg, &IntUartTaskCallbacks);
+        info->ttyp = args->iop->data1;
+        break;
+    }
+  }
+
+  return status;
+}
+
+/*
+ * Function : console_close
+ *
+ * Description : This closes the device via termios
+ */
</font> rtems_device_driver console_close(
<font color='#880000'>-   rtems_device_major_number major,
-       rtems_device_minor_number minor,
-       void   * arg)
-{
-    return(rtems_termios_close (arg));
</font><font color='#000088'>+  rtems_device_major_number major,
+  rtems_device_minor_number minor,
+  void   * arg
+)
+{
+  return rtems_termios_close(arg);
</font> }
 
<font color='#880000'>-/******************
-*********************************************************
-   Function : console_read
-
-   Description : Read from the device via termios
- ***************************************************************************/
</font><font color='#000088'>+/*
+ * Function : console_read
+ *
+ * Description : Read from the device via termios
+ */
</font> rtems_device_driver console_read(
<font color='#880000'>-   rtems_device_major_number major,
-       rtems_device_minor_number minor,
-       void  * arg)
-{
-    return(rtems_termios_read (arg));
</font><font color='#000088'>+  rtems_device_major_number  major,
+  rtems_device_minor_number  minor,
+  void                      *arg
+)
+{
+  return rtems_termios_read(arg);
</font> }
 
<font color='#880000'>-/***************************************************************************
-   Function : console_write
-
-   Description : Write to the device via termios
- ***************************************************************************/
</font><font color='#000088'>+/*
+ * Function : console_write
+ *
+ * Description : Write to the device via termios
+ */
</font> rtems_device_driver console_write(
<font color='#880000'>-   rtems_device_major_number major,
-       rtems_device_minor_number minor,
-       void  * arg)
-{
-    return(rtems_termios_write (arg));
</font><font color='#000088'>+  rtems_device_major_number  major,
+  rtems_device_minor_number  minor,
+  void                      *arg
+)
+{
+  return rtems_termios_write(arg);
</font> }
 
<font color='#880000'>-/***************************************************************************
-   Function : console_ioctl
-
-   Description : Pass the IOCtl call to termios
- ***************************************************************************/
</font><font color='#000088'>+/*
+ * Function : console_ioctl
+ *
+ * Description : Pass the IOCtl call to termios
+ */
</font> rtems_device_driver console_control(
<font color='#880000'>-   rtems_device_major_number major,
-       rtems_device_minor_number minor,
-       void  * arg)
</font><font color='#000088'>+  rtems_device_major_number  major,
+  rtems_device_minor_number  minor,
+  void                      *arg
+)
</font> {
<font color='#880000'>-    return( rtems_termios_ioctl (arg) );
</font><font color='#000088'>+  return rtems_termios_ioctl(arg);
</font> }
<font color='#000088'>+
</font> int DEBUG_OUTCHAR(int c)
 {
<font color='#880000'>-    if(c == '\n')
-        DEBUG_OUTCHAR('\r');
-    _BSP_null_char(c);
-    return c;
</font><font color='#000088'>+  if (c == '\n')
+    DEBUG_OUTCHAR('\r');
+  _BSP_null_char(c);
+  return c;
</font> }
 void DEBUG_OUTSTR(const char *msg)
 {
<font color='#880000'>-    while (*msg)
-        DEBUG_OUTCHAR(*msg++);
</font><font color='#000088'>+  while (*msg)
+    DEBUG_OUTCHAR(*msg++);
</font> }
 void DEBUG_OUTNUM(int i)
 {
<font color='#880000'>-    int n;
-    static const char map[] = "0123456789ABCDEF";
-    DEBUG_OUTCHAR(' ');
-    for (n = 28 ; n >= 0 ; n -= 4)
-        DEBUG_OUTCHAR(map[(i >> n) & 0xF]);
</font><font color='#000088'>+  int n;
+  static const char map[] = "0123456789ABCDEF";
+
+  DEBUG_OUTCHAR(' ');
+  for (n = 28 ; n >= 0 ; n -= 4)
+      DEBUG_OUTCHAR(map[(i >> n) & 0xF]);
</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-08-03 Joel Sherrill <joel.sherrilL@OARcorp.com>

        * console/debugio.c: Add BSP_poll_char.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/m68k/mcf52235/ChangeLog.diff?r1=text&tr1=1.34&r2=text&tr2=1.35&diff_format=h">M</a></td><td width='1%'>1.35</td><td width='100%'>c/src/lib/libbsp/m68k/mcf52235/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/m68k/mcf52235/console/debugio.c.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/m68k/mcf52235/console/debugio.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/m68k/mcf5225x/ChangeLog.diff?r1=text&tr1=1.5&r2=text&tr2=1.6&diff_format=h">M</a></td><td width='1%'>1.6</td><td width='100%'>c/src/lib/libbsp/m68k/mcf5225x/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/m68k/mcf5225x/console/debugio.c.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/m68k/mcf5225x/console/debugio.c</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/m68k/mcf52235/ChangeLog:1.34 rtems/c/src/lib/libbsp/m68k/mcf52235/ChangeLog:1.35
--- rtems/c/src/lib/libbsp/m68k/mcf52235/ChangeLog:1.34 Mon Jun 21 17:55:18 2010
+++ rtems/c/src/lib/libbsp/m68k/mcf52235/ChangeLog      Tue Aug  3 09:15:52 2010
</font><font color='#997700'>@@ -1,3 +1,7 @@
</font><font color='#000088'>+2010-08-03    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       * console/debugio.c: Add BSP_poll_char.
+
</font> 2010-06-21        Joel Sherrill <joel.sherrill@oarcorp.com>
 
        * README: Remove more ITRON references.

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/m68k/mcf52235/console/debugio.c:1.1 rtems/c/src/lib/libbsp/m68k/mcf52235/console/debugio.c:1.2
--- rtems/c/src/lib/libbsp/m68k/mcf52235/console/debugio.c:1.1  Mon Aug 18 11:47:54 2008
+++ rtems/c/src/lib/libbsp/m68k/mcf52235/console/debugio.c      Tue Aug  3 09:15:52 2010
</font><font color='#997700'>@@ -28,5 +28,6 @@
</font>   rtems_interrupt_enable(level);
 }
 
<font color='#880000'>-BSP_output_char_function_type BSP_output_char = _BSP_null_char;
</font><font color='#000088'>+BSP_output_char_function_type     BSP_output_char = _BSP_null_char;
+BSP_polling_getchar_function_type BSP_poll_char = NULL;
</font> 

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/m68k/mcf5225x/ChangeLog:1.5 rtems/c/src/lib/libbsp/m68k/mcf5225x/ChangeLog:1.6
--- rtems/c/src/lib/libbsp/m68k/mcf5225x/ChangeLog:1.5  Mon Jun 21 17:55:20 2010
+++ rtems/c/src/lib/libbsp/m68k/mcf5225x/ChangeLog      Tue Aug  3 09:15:54 2010
</font><font color='#997700'>@@ -1,3 +1,7 @@
</font><font color='#000088'>+2010-08-03    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       * console/debugio.c: Add BSP_poll_char.
+
</font> 2010-06-21        Joel Sherrill <joel.sherrill@oarcorp.com>
 
        * README: Remove more ITRON references.

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/m68k/mcf5225x/console/debugio.c:1.1 rtems/c/src/lib/libbsp/m68k/mcf5225x/console/debugio.c:1.2
--- rtems/c/src/lib/libbsp/m68k/mcf5225x/console/debugio.c:1.1  Mon Apr  5 12:06:57 2010
+++ rtems/c/src/lib/libbsp/m68k/mcf5225x/console/debugio.c      Tue Aug  3 09:15:54 2010
</font><font color='#997700'>@@ -37,4 +37,5 @@
</font>   rtems_interrupt_enable(level);
 }
 
<font color='#880000'>-BSP_output_char_function_type BSP_output_char = _BSP_null_char;
</font><font color='#000088'>+BSP_output_char_function_type     BSP_output_char = _BSP_null_char;
+BSP_polling_getchar_function_type BSP_poll_char = NULL;
</font></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-08-03 Joel Sherrill <joel.sherrilL@OARcorp.com>

        * startup/bspstart.c: Add BSP_poll_char.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/powerpc/haleakala/ChangeLog.diff?r1=text&tr1=1.33&r2=text&tr2=1.34&diff_format=h">M</a></td><td width='1%'>1.34</td><td width='100%'>c/src/lib/libbsp/powerpc/haleakala/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/powerpc/haleakala/startup/bspstart.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.10&diff_format=h">M</a></td><td width='1%'>1.10</td><td width='100%'>c/src/lib/libbsp/powerpc/haleakala/startup/bspstart.c</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/powerpc/haleakala/ChangeLog:1.33 rtems/c/src/lib/libbsp/powerpc/haleakala/ChangeLog:1.34
--- rtems/c/src/lib/libbsp/powerpc/haleakala/ChangeLog:1.33     Tue Jun 29 13:52:52 2010
+++ rtems/c/src/lib/libbsp/powerpc/haleakala/ChangeLog  Tue Aug  3 09:16:35 2010
</font><font color='#997700'>@@ -1,3 +1,7 @@
</font><font color='#000088'>+2010-08-03    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       * startup/bspstart.c: Add BSP_poll_char.
+
</font> 2010-06-29        Joel Sherrill <joel.sherrill@oarcorp.com>
 
        * configure.ac: Remove AC_CHECK_SIZEOF([void *]).

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/powerpc/haleakala/startup/bspstart.c:1.9 rtems/c/src/lib/libbsp/powerpc/haleakala/startup/bspstart.c:1.10
--- rtems/c/src/lib/libbsp/powerpc/haleakala/startup/bspstart.c:1.9     Thu Dec 17 02:42:16 2009
+++ rtems/c/src/lib/libbsp/powerpc/haleakala/startup/bspstart.c Tue Aug  3 09:16:35 2010
</font><font color='#997700'>@@ -159,7 +159,8 @@
</font> }
 
 /* We will provide our own printk output function as it may get used early */
<font color='#880000'>-BSP_output_char_function_type BSP_output_char = DirectUARTWrite;
</font><font color='#000088'>+BSP_output_char_function_type     BSP_output_char = DirectUARTWrite;
+BSP_polling_getchar_function_type BSP_poll_char = NULL;
</font> 
 /*===================================================================*/
 
</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>2010-08-03 Joel Sherrill <joel.sherrilL@OARcorp.com>

        * console/console.c: Add BSP_poll_char.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/m68k/genmcf548x/ChangeLog.diff?r1=text&tr1=1.41&r2=text&tr2=1.42&diff_format=h">M</a></td><td width='1%'>1.42</td><td width='100%'>c/src/lib/libbsp/m68k/genmcf548x/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/m68k/genmcf548x/console/console.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.6&diff_format=h">M</a></td><td width='1%'>1.6</td><td width='100%'>c/src/lib/libbsp/m68k/genmcf548x/console/console.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/m68k/mcf5235/ChangeLog.diff?r1=text&tr1=1.59&r2=text&tr2=1.60&diff_format=h">M</a></td><td width='1%'>1.60</td><td width='100%'>c/src/lib/libbsp/m68k/mcf5235/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/m68k/mcf5235/console/console.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.10&diff_format=h">M</a></td><td width='1%'>1.10</td><td width='100%'>c/src/lib/libbsp/m68k/mcf5235/console/console.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/m68k/mcf5329/ChangeLog.diff?r1=text&tr1=1.31&r2=text&tr2=1.32&diff_format=h">M</a></td><td width='1%'>1.32</td><td width='100%'>c/src/lib/libbsp/m68k/mcf5329/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/m68k/mcf5329/console/console.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.6&diff_format=h">M</a></td><td width='1%'>1.6</td><td width='100%'>c/src/lib/libbsp/m68k/mcf5329/console/console.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/m68k/mvme167/ChangeLog.diff?r1=text&tr1=1.128&r2=text&tr2=1.129&diff_format=h">M</a></td><td width='1%'>1.129</td><td width='100%'>c/src/lib/libbsp/m68k/mvme167/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/m68k/mvme167/console/console.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.19&diff_format=h">M</a></td><td width='1%'>1.19</td><td width='100%'>c/src/lib/libbsp/m68k/mvme167/console/console.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/powerpc/mbx8xx/ChangeLog.diff?r1=text&tr1=1.172&r2=text&tr2=1.173&diff_format=h">M</a></td><td width='1%'>1.173</td><td width='100%'>c/src/lib/libbsp/powerpc/mbx8xx/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/powerpc/mbx8xx/console/console.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.22&diff_format=h">M</a></td><td width='1%'>1.22</td><td width='100%'>c/src/lib/libbsp/powerpc/mbx8xx/console/console.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/powerpc/mpc8260ads/ChangeLog.diff?r1=text&tr1=1.151&r2=text&tr2=1.152&diff_format=h">M</a></td><td width='1%'>1.152</td><td width='100%'>c/src/lib/libbsp/powerpc/mpc8260ads/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/powerpc/mpc8260ads/console/console.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.8&diff_format=h">M</a></td><td width='1%'>1.8</td><td width='100%'>c/src/lib/libbsp/powerpc/mpc8260ads/console/console.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/powerpc/ss555/ChangeLog.diff?r1=text&tr1=1.66&r2=text&tr2=1.67&diff_format=h">M</a></td><td width='1%'>1.67</td><td width='100%'>c/src/lib/libbsp/powerpc/ss555/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/powerpc/ss555/console/console.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.6&diff_format=h">M</a></td><td width='1%'>1.6</td><td width='100%'>c/src/lib/libbsp/powerpc/ss555/console/console.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/powerpc/tqm8xx/ChangeLog.diff?r1=text&tr1=1.52&r2=text&tr2=1.53&diff_format=h">M</a></td><td width='1%'>1.53</td><td width='100%'>c/src/lib/libbsp/powerpc/tqm8xx/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/powerpc/tqm8xx/console/console.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.10&diff_format=h">M</a></td><td width='1%'>1.10</td><td width='100%'>c/src/lib/libbsp/powerpc/tqm8xx/console/console.c</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/m68k/genmcf548x/ChangeLog:1.41 rtems/c/src/lib/libbsp/m68k/genmcf548x/ChangeLog:1.42
--- rtems/c/src/lib/libbsp/m68k/genmcf548x/ChangeLog:1.41       Sat Mar 27 03:09:33 2010
+++ rtems/c/src/lib/libbsp/m68k/genmcf548x/ChangeLog    Tue Aug  3 09:15:46 2010
</font><font color='#997700'>@@ -1,3 +1,7 @@
</font><font color='#000088'>+2010-08-03    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       * console/console.c: Add BSP_poll_char.
+
</font> 2010-03-26      Thomas Doerfler <Thomas.Doerfler@embedded-brains.de>
 
        * clock/clock.c: get desired clock rate for proper source

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/m68k/genmcf548x/console/console.c:1.5 rtems/c/src/lib/libbsp/m68k/genmcf548x/console/console.c:1.6
--- rtems/c/src/lib/libbsp/m68k/genmcf548x/console/console.c:1.5        Thu Dec 17 02:42:16 2009
+++ rtems/c/src/lib/libbsp/m68k/genmcf548x/console/console.c    Tue Aug  3 09:15:46 2010
</font><font color='#997700'>@@ -86,12 +86,12 @@
</font>         continue;
        rtems_interrupt_enable(level);
 }
<font color='#880000'>-BSP_output_char_function_type BSP_output_char = _BSP_null_char;
</font><font color='#000088'>+BSP_output_char_function_type     BSP_output_char = _BSP_null_char;
+BSP_polling_getchar_function_type BSP_poll_char = NULL;
</font> 
 #define MAX_UART_INFO     4
 #define RX_BUFFER_SIZE    248
 
<font color='#880000'>-
</font> struct IntUartInfoStruct
 {
        int                    iomode;

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/m68k/mcf5235/ChangeLog:1.59 rtems/c/src/lib/libbsp/m68k/mcf5235/ChangeLog:1.60
--- rtems/c/src/lib/libbsp/m68k/mcf5235/ChangeLog:1.59  Wed Apr 28 14:43:25 2010
+++ rtems/c/src/lib/libbsp/m68k/mcf5235/ChangeLog       Tue Aug  3 09:15:56 2010
</font><font color='#997700'>@@ -1,3 +1,7 @@
</font><font color='#000088'>+2010-08-03    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       * console/console.c: Add BSP_poll_char.
+
</font> 2010-04-28        Joel Sherrill <joel.sherrilL@OARcorp.com>
 
        * startup/init5235.c: Remove warnings.

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/m68k/mcf5235/console/console.c:1.9 rtems/c/src/lib/libbsp/m68k/mcf5235/console/console.c:1.10
--- rtems/c/src/lib/libbsp/m68k/mcf5235/console/console.c:1.9   Thu Dec 17 02:42:16 2009
+++ rtems/c/src/lib/libbsp/m68k/mcf5235/console/console.c       Tue Aug  3 09:15:56 2010
</font><font color='#997700'>@@ -40,7 +40,8 @@
</font>         continue;
        rtems_interrupt_enable(level);
 }
<font color='#880000'>-BSP_output_char_function_type BSP_output_char = _BSP_null_char;
</font><font color='#000088'>+BSP_output_char_function_type     BSP_output_char = _BSP_null_char;
+BSP_polling_getchar_function_type BSP_poll_char = NULL;
</font> 
 #define MAX_UART_INFO     3
 #define RX_BUFFER_SIZE    512

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/m68k/mcf5329/ChangeLog:1.31 rtems/c/src/lib/libbsp/m68k/mcf5329/ChangeLog:1.32
--- rtems/c/src/lib/libbsp/m68k/mcf5329/ChangeLog:1.31  Mon Apr 12 23:21:15 2010
+++ rtems/c/src/lib/libbsp/m68k/mcf5329/ChangeLog       Tue Aug  3 09:15:57 2010
</font><font color='#997700'>@@ -1,3 +1,7 @@
</font><font color='#000088'>+2010-08-03    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       * console/console.c: Add BSP_poll_char.
+
</font> 2010-04-13        Ralf Corsépius <ralf.corsepius@rtems.org>
 
        * console/console.c: Fix broken comment formatting.

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/m68k/mcf5329/console/console.c:1.5 rtems/c/src/lib/libbsp/m68k/mcf5329/console/console.c:1.6
--- rtems/c/src/lib/libbsp/m68k/mcf5329/console/console.c:1.5   Mon Apr 12 23:20:05 2010
+++ rtems/c/src/lib/libbsp/m68k/mcf5329/console/console.c       Tue Aug  3 09:15:57 2010
</font><font color='#997700'>@@ -40,7 +40,8 @@
</font>   rtems_interrupt_enable(level);
 }
 
<font color='#880000'>-BSP_output_char_function_type BSP_output_char = _BSP_null_char;
</font><font color='#000088'>+BSP_output_char_function_type     BSP_output_char = _BSP_null_char;
+BSP_polling_getchar_function_type BSP_poll_char = NULL;
</font> 
 #define MAX_UART_INFO     3
 #define RX_BUFFER_SIZE    512

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/m68k/mvme167/ChangeLog:1.128 rtems/c/src/lib/libbsp/m68k/mvme167/ChangeLog:1.129
--- rtems/c/src/lib/libbsp/m68k/mvme167/ChangeLog:1.128 Wed Apr 28 14:43:35 2010
+++ rtems/c/src/lib/libbsp/m68k/mvme167/ChangeLog       Tue Aug  3 09:16:00 2010
</font><font color='#997700'>@@ -1,3 +1,7 @@
</font><font color='#000088'>+2010-08-03    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       * console/console.c: Add BSP_poll_char.
+
</font> 2010-04-28        Joel Sherrill <joel.sherrilL@OARcorp.com>
 
        * timer/timer.c: Remove warnings.

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/m68k/mvme167/console/console.c:1.18 rtems/c/src/lib/libbsp/m68k/mvme167/console/console.c:1.19
--- rtems/c/src/lib/libbsp/m68k/mvme167/console/console.c:1.18  Thu Dec 17 02:42:16 2009
+++ rtems/c/src/lib/libbsp/m68k/mvme167/console/console.c       Tue Aug  3 09:16:00 2010
</font><font color='#997700'>@@ -160,7 +160,8 @@
</font> 
 /* Printk function */
 static void _BSP_output_char( char c );
<font color='#880000'>-BSP_output_char_function_type BSP_output_char = _BSP_output_char;
</font><font color='#000088'>+BSP_output_char_function_type     BSP_output_char = _BSP_output_char;
+BSP_polling_getchar_function_type BSP_poll_char = NULL;
</font> 
 /* '\r' character in memory. This used to live on
  * the stack but storing the '\r' character is

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/powerpc/mbx8xx/ChangeLog:1.172 rtems/c/src/lib/libbsp/powerpc/mbx8xx/ChangeLog:1.173
--- rtems/c/src/lib/libbsp/powerpc/mbx8xx/ChangeLog:1.172       Tue Jun 29 13:52:54 2010
+++ rtems/c/src/lib/libbsp/powerpc/mbx8xx/ChangeLog     Tue Aug  3 09:16:36 2010
</font><font color='#997700'>@@ -1,3 +1,7 @@
</font><font color='#000088'>+2010-08-03    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       * console/console.c: Add BSP_poll_char.
+
</font> 2010-06-29        Joel Sherrill <joel.sherrill@oarcorp.com>
 
        * configure.ac: Remove AC_CHECK_SIZEOF([void *]).

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/powerpc/mbx8xx/console/console.c:1.21 rtems/c/src/lib/libbsp/powerpc/mbx8xx/console/console.c:1.22
--- rtems/c/src/lib/libbsp/powerpc/mbx8xx/console/console.c:1.21        Sun Apr 25 17:36:25 2010
+++ rtems/c/src/lib/libbsp/powerpc/mbx8xx/console/console.c     Tue Aug  3 09:16:36 2010
</font><font color='#997700'>@@ -91,7 +91,8 @@
</font> static void _BSP_null_char( char c ) {return;}
 static void serial_putchar(const char c);
 
<font color='#880000'>-BSP_output_char_function_type BSP_output_char = _BSP_null_char;
</font><font color='#000088'>+BSP_output_char_function_type     BSP_output_char = _BSP_null_char;
+BSP_polling_getchar_function_type BSP_poll_char = NULL;
</font> 
 extern volatile m8xx_t m8xx;
 extern struct rtems_termios_tty *ttyp[];

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/powerpc/mpc8260ads/ChangeLog:1.151 rtems/c/src/lib/libbsp/powerpc/mpc8260ads/ChangeLog:1.152
--- rtems/c/src/lib/libbsp/powerpc/mpc8260ads/ChangeLog:1.151   Tue Jun 29 13:52:57 2010
+++ rtems/c/src/lib/libbsp/powerpc/mpc8260ads/ChangeLog Tue Aug  3 09:16:38 2010
</font><font color='#997700'>@@ -1,3 +1,7 @@
</font><font color='#000088'>+2010-08-03    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       * console/console.c: Add BSP_poll_char.
+
</font> 2010-06-29        Joel Sherrill <joel.sherrill@oarcorp.com>
 
        * configure.ac: Remove AC_CHECK_SIZEOF([void *]).

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/powerpc/mpc8260ads/console/console.c:1.7 rtems/c/src/lib/libbsp/powerpc/mpc8260ads/console/console.c:1.8
--- rtems/c/src/lib/libbsp/powerpc/mpc8260ads/console/console.c:1.7     Wed Apr 21 11:01:43 2004
+++ rtems/c/src/lib/libbsp/powerpc/mpc8260ads/console/console.c Tue Aug  3 09:16:38 2010
</font><font color='#997700'>@@ -98,7 +98,8 @@
</font> static rtems_status_code do_poll_read( rtems_device_major_number major, rtems_device_minor_number minor, void * arg);
 static rtems_status_code do_poll_write( rtems_device_major_number major, rtems_device_minor_number minor, void * arg);
 
<font color='#880000'>-BSP_output_char_function_type BSP_output_char = _BSP_output_char;
</font><font color='#000088'>+BSP_output_char_function_type     BSP_output_char = _BSP_output_char;
+BSP_polling_getchar_function_type BSP_poll_char = NULL;
</font> 
 /*
  *  do_poll_read

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/powerpc/ss555/ChangeLog:1.66 rtems/c/src/lib/libbsp/powerpc/ss555/ChangeLog:1.67
--- rtems/c/src/lib/libbsp/powerpc/ss555/ChangeLog:1.66 Tue Jun 29 13:53:06 2010
+++ rtems/c/src/lib/libbsp/powerpc/ss555/ChangeLog      Tue Aug  3 09:16:40 2010
</font><font color='#997700'>@@ -1,3 +1,7 @@
</font><font color='#000088'>+2010-08-03    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       * console/console.c: Add BSP_poll_char.
+
</font> 2010-06-29        Joel Sherrill <joel.sherrill@oarcorp.com>
 
        * configure.ac: Remove AC_CHECK_SIZEOF([void *]).

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/powerpc/ss555/console/console.c:1.5 rtems/c/src/lib/libbsp/powerpc/ss555/console/console.c:1.6
--- rtems/c/src/lib/libbsp/powerpc/ss555/console/console.c:1.5  Tue May 10 01:33:35 2005
+++ rtems/c/src/lib/libbsp/powerpc/ss555/console/console.c      Tue Aug  3 09:16:40 2010
</font><font color='#997700'>@@ -82,7 +82,8 @@
</font> 
 static void _BSP_null_char( char c ) {return;}
 
<font color='#880000'>-BSP_output_char_function_type BSP_output_char = _BSP_null_char;
</font><font color='#000088'>+BSP_output_char_function_type     BSP_output_char = _BSP_null_char;
+BSP_polling_getchar_function_type BSP_poll_char = NULL;
</font> 
 /*
  *  do_poll_read

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/powerpc/tqm8xx/ChangeLog:1.52 rtems/c/src/lib/libbsp/powerpc/tqm8xx/ChangeLog:1.53
--- rtems/c/src/lib/libbsp/powerpc/tqm8xx/ChangeLog:1.52        Tue Jun 29 13:53:07 2010
+++ rtems/c/src/lib/libbsp/powerpc/tqm8xx/ChangeLog     Tue Aug  3 09:16:41 2010
</font><font color='#997700'>@@ -1,3 +1,7 @@
</font><font color='#000088'>+2010-08-03    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       * console/console.c: Add BSP_poll_char.
+
</font> 2010-06-29        Joel Sherrill <joel.sherrill@oarcorp.com>
 
        * configure.ac: Remove AC_CHECK_SIZEOF([void *]).

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/powerpc/tqm8xx/console/console.c:1.9 rtems/c/src/lib/libbsp/powerpc/tqm8xx/console/console.c:1.10
--- rtems/c/src/lib/libbsp/powerpc/tqm8xx/console/console.c:1.9 Tue Jan 19 03:11:34 2010
+++ rtems/c/src/lib/libbsp/powerpc/tqm8xx/console/console.c     Tue Aug  3 09:16:41 2010
</font><font color='#997700'>@@ -856,7 +856,8 @@
</font>   }
 }
 
<font color='#880000'>-BSP_output_char_function_type BSP_output_char = console_debug_putc_onlcr;
</font><font color='#000088'>+BSP_output_char_function_type     BSP_output_char = console_debug_putc_onlcr;
+BSP_polling_getchar_function_type BSP_poll_char = NULL;
</font> 
 
 /*
</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>2010-08-03 Joel Sherrill <joel.sherrilL@OARcorp.com>

        * shared/bspgetworkarea.c: Formatting.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/ChangeLog.diff?r1=text&tr1=1.79&r2=text&tr2=1.80&diff_format=h">M</a></td><td width='1%'>1.80</td><td width='100%'>c/src/lib/libbsp/sparc/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/shared/bspgetworkarea.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%'>c/src/lib/libbsp/sparc/shared/bspgetworkarea.c</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/ChangeLog:1.79 rtems/c/src/lib/libbsp/sparc/ChangeLog:1.80
--- rtems/c/src/lib/libbsp/sparc/ChangeLog:1.79 Tue May 11 02:35:55 2010
+++ rtems/c/src/lib/libbsp/sparc/ChangeLog      Tue Aug  3 09:17:15 2010
</font><font color='#997700'>@@ -1,3 +1,7 @@
</font><font color='#000088'>+2010-08-03    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       * shared/bspgetworkarea.c: Formatting.
+
</font> 2010-05-11        Sebastian Huber <sebastian.huber@embedded-brains.de>
 
        * shared/startup/linkcmds.base: New file.

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/shared/bspgetworkarea.c:1.6 rtems/c/src/lib/libbsp/sparc/shared/bspgetworkarea.c:1.7
--- rtems/c/src/lib/libbsp/sparc/shared/bspgetworkarea.c:1.6    Sun Nov 29 09:33:27 2009
+++ rtems/c/src/lib/libbsp/sparc/shared/bspgetworkarea.c        Tue Aug  3 09:17:15 2010
</font><font color='#997700'>@@ -37,10 +37,10 @@
</font>   /* must be identical to STACK_SIZE in start.S */
   #define STACK_SIZE (16 * 1024)
 
<font color='#880000'>-  *work_area_start       = &end;
-  *work_area_size       = (void *)rdb_start - (void *)&end - STACK_SIZE;
-  *heap_start = BSP_BOOTCARD_HEAP_USES_WORK_AREA;
-  *heap_size = BSP_BOOTCARD_HEAP_SIZE_DEFAULT;
</font><font color='#000088'>+  *work_area_start = &end;
+  *work_area_size  = (void *)rdb_start - (void *)&end - STACK_SIZE;
+  *heap_start      = BSP_BOOTCARD_HEAP_USES_WORK_AREA;
+  *heap_size       = BSP_BOOTCARD_HEAP_SIZE_DEFAULT;
</font> 
   /*
    *  The following may be helpful in debugging what goes wrong when
</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>