<html><body><div style="color:#000; background-color:#fff; font-family:arial, helvetica, sans-serif;font-size:10pt"><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt;"><span>Hello,</span></div><div style="font-family: arial, helvetica, sans-serif; font-size: 13px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal;"><span><br></span></div><div style="font-family: arial, helvetica, sans-serif; font-size: 13px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal;"><span>Trying once gain with the arm csb336 patch. I'm explicitly checking the status code returned now, but am I doing the right thing if the status code returned is not RTEMS_SUCCESSFUL ? For now I'm doing the same what happens in BSP_install_rtems_irq_handler & BSP_remove_rtems_irq_handler ? </span></div><div style="font-family: arial, helvetica, sans-serif; font-size: 13px; color: rgb(0, 0, 0);
 background-color: transparent; font-style: normal;"><span><br></span></div><div style="background-color: transparent;"><span><div style="background-color: transparent;"><font size="2">commit 1887514fd17d17c089c4305f34963c244324eba3</font></div><div style="background-color: transparent;"><font size="2">Author: Vipul Nayyar <nayyar_vipul@yahoo.com></font></div><div style="background-color: transparent;"><font size="2">Date:   Sun Jun 30 16:08:43 2013 +0530</font></div><div style="background-color: transparent;"><font size="2"><br></font></div><div style="background-color: transparent;"><font size="2">    Updated Legacy code in arm csb336</font></div><div style="background-color: transparent;"><font size="2"><br></font></div><div style="background-color: transparent;"><font size="2">diff --git a/c/src/lib/libbsp/arm/csb336/console/uart.c b/c/src/lib/libbsp/arm/csb336/console/uart.c</font></div><div style="background-color:
 transparent;"><font size="2">index 4dc409b..758f103 100644</font></div><div style="background-color: transparent;"><font size="2">--- a/c/src/lib/libbsp/arm/csb336/console/uart.c</font></div><div style="background-color: transparent;"><font size="2">+++ b/c/src/lib/libbsp/arm/csb336/console/uart.c</font></div><div style="background-color: transparent;"><font size="2">@@ -246,9 +246,36 @@ static int imx_uart_first_open(int major, int minor, void *arg)</font></div><div style="background-color: transparent;"><font size="2"> </font></div><div style="background-color: transparent;"><font size="2">     imx_uart_data[minor].tty   = args->iop->data1;</font></div><div style="background-color: transparent;"><font size="2"> </font></div><div style="background-color: transparent;"><font size="2">+    rtems_status_code sc = RTEMS_SUCCESSFUL;</font></div><div style="background-color: transparent;"><font
 size="2">+</font></div><div style="background-color: transparent;"><font size="2"> #if defined(USE_INTERRUPTS)</font></div><div style="background-color: transparent;"><font size="2">-    BSP_install_rtems_irq_handler(&imx_uart_tx_isr_data[minor]);</font></div><div style="background-color: transparent;"><font size="2">-    BSP_install_rtems_irq_handler(&imx_uart_rx_isr_data[minor]);</font></div><div style="background-color: transparent;"><font size="2">+    sc = rtems_interrupt_handler_install(</font></div><div style="background-color: transparent;"><font size="2">+      imx_uart_tx_isr_data[minor].name,</font></div><div style="background-color: transparent;"><font size="2">+      "Console",</font></div><div style="background-color: transparent;"><font size="2">+      RTEMS_INTERRUPT_UNIQUE,</font></div><div style="background-color: transparent;"><font size="2">+
      imx_uart_tx_isr_data[minor].hdl,</font></div><div style="background-color: transparent;"><font size="2">+      imx_uart_tx_isr_data[minor].handle</font></div><div style="background-color: transparent;"><font size="2">+    );</font></div><div style="background-color: transparent;"><font size="2">+    if (sc != RTEMS_SUCCESSFUL) {</font></div><div style="background-color: transparent;"><font size="2">+    return 0;</font></div><div style="background-color: transparent;"><font size="2">+    }</font></div><div style="background-color: transparent;"><font size="2">+    if (imx_uart_tx_isr_data[minor].on != NULL) {</font></div><div style="background-color: transparent;"><font size="2">+    imx_uart_tx_isr_data[minor].on(&imx_uart_tx_isr_data[minor]);</font></div><div style="background-color: transparent;"><font size="2">+    }</font></div><div
 style="background-color: transparent;"><font size="2">+</font></div><div style="background-color: transparent;"><font size="2">+    sc = rtems_interrupt_handler_install(</font></div><div style="background-color: transparent;"><font size="2">+      imx_uart_rx_isr_data[minor].name,</font></div><div style="background-color: transparent;"><font size="2">+      "Console",</font></div><div style="background-color: transparent;"><font size="2">+      RTEMS_INTERRUPT_UNIQUE,</font></div><div style="background-color: transparent;"><font size="2">+      imx_uart_rx_isr_data[minor].hdl,</font></div><div style="background-color: transparent;"><font size="2">+      imx_uart_rx_isr_data[minor].handle</font></div><div style="background-color: transparent;"><font size="2">+    );</font></div><div style="background-color: transparent;"><font size="2">+    if (sc !=
 RTEMS_SUCCESSFUL) {</font></div><div style="background-color: transparent;"><font size="2">+    return 0;</font></div><div style="background-color: transparent;"><font size="2">+    }</font></div><div style="background-color: transparent;"><font size="2">+    if (imx_uart_rx_isr_data[minor].on != NULL) {</font></div><div style="background-color: transparent;"><font size="2">+    imx_uart_rx_isr_data[minor].on(&imx_uart_rx_isr_data[minor]);</font></div><div style="background-color: transparent;"><font size="2">+    }</font></div><div style="background-color: transparent;"><font size="2"> </font></div><div style="background-color: transparent;"><font size="2">     imx_uart_data[minor].regs->cr1 |= MC9328MXL_UART_CR1_RRDYEN;</font></div><div style="background-color: transparent;"><font size="2"> #endif</font></div><div style="background-color: transparent;"><font size="2">@@
 -258,9 +285,32 @@ static int imx_uart_first_open(int major, int minor, void *arg)</font></div><div style="background-color: transparent;"><font size="2"> </font></div><div style="background-color: transparent;"><font size="2"> static int imx_uart_last_close(int major, int minor, void *arg)</font></div><div style="background-color: transparent;"><font size="2"> {</font></div><div style="background-color: transparent;"><font size="2">+    rtems_status_code sc = RTEMS_SUCCESSFUL;</font></div><div style="background-color: transparent;"><font size="2">+</font></div><div style="background-color: transparent;"><font size="2"> #if defined(USE_INTERRUPTS)</font></div><div style="background-color: transparent;"><font size="2">-    BSP_remove_rtems_irq_handler(&imx_uart_tx_isr_data[minor]);</font></div><div style="background-color: transparent;"><font size="2">-  
  BSP_remove_rtems_irq_handler(&imx_uart_rx_isr_data[minor]);</font></div><div style="background-color: transparent;"><font size="2">+    if (imx_uart_tx_isr_data[minor].off != NULL) {</font></div><div style="background-color: transparent;"><font size="2">+    imx_uart_tx_isr_data[minor].off(&imx_uart_tx_isr_data[minor]);</font></div><div style="background-color: transparent;"><font size="2">+    }</font></div><div style="background-color: transparent;"><font size="2">+    sc = rtems_interrupt_handler_remove(</font></div><div style="background-color: transparent;"><font size="2">+        imx_uart_tx_isr_data[minor].name,</font></div><div style="background-color: transparent;"><font size="2">+        imx_uart_tx_isr_data[minor].hdl,</font></div><div style="background-color: transparent;"><font size="2">+      
  imx_uart_tx_isr_data[minor].handle</font></div><div style="background-color: transparent;"><font size="2">+    );</font></div><div style="background-color: transparent;"><font size="2">+    if (sc != RTEMS_SUCCESSFUL) {</font></div><div style="background-color: transparent;"><font size="2">+    return 0;</font></div><div style="background-color: transparent;"><font size="2">+    }</font></div><div style="background-color: transparent;"><font size="2">+    if (imx_uart_rx_isr_data[minor].off != NULL) {</font></div><div style="background-color: transparent;"><font size="2">+    imx_uart_rx_isr_data[minor].off(&imx_uart_rx_isr_data[minor]);</font></div><div style="background-color: transparent;"><font size="2">+    }</font></div><div style="background-color: transparent;"><font size="2">+</font></div><div style="background-color: transparent;"><font size="2">+    sc =
 rtems_interrupt_handler_remove(</font></div><div style="background-color: transparent;"><font size="2">+        imx_uart_rx_isr_data[minor].name,</font></div><div style="background-color: transparent;"><font size="2">+        imx_uart_rx_isr_data[minor].hdl,</font></div><div style="background-color: transparent;"><font size="2">+        imx_uart_rx_isr_data[minor].handle</font></div><div style="background-color: transparent;"><font size="2">+    );</font></div><div style="background-color: transparent;"><font size="2">+    if (sc != RTEMS_SUCCESSFUL) {</font></div><div style="background-color: transparent;"><font size="2">+    return 0;</font></div><div style="background-color: transparent;"><font size="2">+    }</font></div><div style="background-color: transparent;"><font size="2"> #endif</font></div><div style="background-color:
 transparent;"><font size="2"> </font></div><div style="background-color: transparent;"><font size="2">     return 0;</font></div><div style="background-color: transparent;"><font size="2">diff --git a/c/src/lib/libbsp/arm/csb336/network/network.c b/c/src/lib/libbsp/arm/csb336/network/network.c</font></div><div style="background-color: transparent;"><font size="2">index e513595..2441c01 100644</font></div><div style="background-color: transparent;"><font size="2">--- a/c/src/lib/libbsp/arm/csb336/network/network.c</font></div><div style="background-color: transparent;"><font size="2">+++ b/c/src/lib/libbsp/arm/csb336/network/network.c</font></div><div style="background-color: transparent;"><font size="2">@@ -238,6 +238,7 @@ void  mc9328mxl_enet_init_hw(mc9328mxl_enet_softc_t *sc)</font></div><div style="background-color: transparent;"><font size="2"> {</font></div><div style="background-color: transparent;"><font
 size="2">     uint16_t stat;</font></div><div style="background-color: transparent;"><font size="2">     uint16_t my = 0;</font></div><div style="background-color: transparent;"><font size="2">+    rtems_status_code sc = RTEMS_SUCCESSFUL;</font></div><div style="background-color: transparent;"><font size="2"> </font></div><div style="background-color: transparent;"><font size="2">     lan91c11x_write_reg(LAN91C11X_RCR, LAN91C11X_RCR_RST);</font></div><div style="background-color: transparent;"><font size="2">     lan91c11x_write_reg(LAN91C11X_RCR, 0);</font></div><div style="background-color: transparent;"><font size="2">@@ -334,7 +335,19 @@ void  mc9328mxl_enet_init_hw(mc9328mxl_enet_softc_t *sc)</font></div><div style="background-color: transparent;"><font size="2">     MC9328MXL_GPIOA_IMR |= bit(3);</font></div><div style="background-color:
 transparent;"><font size="2"> </font></div><div style="background-color: transparent;"><font size="2">     /* Install the interrupt handler */</font></div><div style="background-color: transparent;"><font size="2">-    BSP_install_rtems_irq_handler(&mc9328mxl_enet_isr_data);</font></div><div style="background-color: transparent;"><font size="2">+    sc = rtems_interrupt_handler_install(</font></div><div style="background-color: transparent;"><font size="2">+      mc9328mxl_enet_isr_data.name,</font></div><div style="background-color: transparent;"><font size="2">+      "Network",</font></div><div style="background-color: transparent;"><font size="2">+      RTEMS_INTERRUPT_UNIQUE,</font></div><div style="background-color: transparent;"><font size="2">+      mc9328mxl_enet_isr_data.hdl,</font></div><div style="background-color: transparent;"><font
 size="2">+      mc9328mxl_enet_isr_data.handle</font></div><div style="background-color: transparent;"><font size="2">+    );</font></div><div style="background-color: transparent;"><font size="2">+    if (sc != RTEMS_SUCCESSFUL) {</font></div><div style="background-color: transparent;"><font size="2">+    return 0;</font></div><div style="background-color: transparent;"><font size="2">+    }</font></div><div style="background-color: transparent;"><font size="2">+    if (mc9328mxl_enet_isr_data.on != NULL) {</font></div><div style="background-color: transparent;"><font size="2">+    mc9328mxl_enet_isr_data.on(&mc9328mxl_enet_isr_data);</font></div><div style="background-color: transparent;"><font size="2">+  }</font></div><div style="background-color: transparent;"><font size="2"> </font></div><div style="background-color: transparent;"><font size="2"> } /*
 mc9328mxl_enet_init_hw() */</font></div><div style="background-color: transparent;"><font size="2"> </font></div><div style="color: rgb(0, 0, 0); font-family: arial, helvetica, sans-serif; font-size: 13px; font-style: normal;"><span style="font-family: arial, helvetica, clean, sans-serif; background-color: transparent;">Regards</span><br></div></span></div><div style="font-family: arial, helvetica, clean, sans-serif; font-size: 13px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal;"><span style="background-color:transparent;line-height:1.22;">Vipul Nayyar </span></div><div style="font-family: arial, helvetica, clean, sans-serif; font-size: 12.727272033691406px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal;"><br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt;"><br></div>  <div style="font-family: arial, helvetica, sans-serif; font-size: 10pt;"> <div
 style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt;"> <div dir="ltr"> <hr size="1">  <font size="2" face="Arial"> <b><span style="font-weight:bold;">From:</span></b> Joel Sherrill <Joel.Sherrill@OARcorp.com><br> <b><span style="font-weight: bold;">To:</span></b> Vipul Nayyar <nayyar_vipul@yahoo.com> <br><b><span style="font-weight: bold;">Cc:</span></b> "rtems-devel@rtems.org" <rtems-devel@rtems.org>; Sebastian Huber <sebastian.huber@embedded-brains.de>; "gedare@rtems.org" <gedare@rtems.org> <br> <b><span style="font-weight: bold;">Sent:</span></b> Sunday, 30 June 2013 2:04 AM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [Patch] Removing legacy method from arm csb336<br> </font> </div> <div class="y_msg_container"><br><div id="yiv622458069">
 

<div>
<pre style="word-wrap: break-word; font-size: 10pt; font-family: Tahoma; color: black;">Please return the status code into a variable and test it separately in the assert.

I will defer to Sebastian on whether assert should be used. I tend to think it should be a fatal error call with an explicit test. Using assert increases the code size. Plus this first one gives you a pattern for the rest.

</pre><div><div style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-family: arial, helvetica, sans-serif; font-size: 10pt;"><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt;"><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt;"><div class="yiv622458069y_msg_container">
<br>
</div>
</div>
</div>
</div>
</div>
</div>

</div><br><br></div> </div> </div>  </div></body></html>