<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<pre style="word-wrap:break-word; font-size:10.0pt; 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.

Vipul Nayyar <nayyar_vipul@yahoo.com> wrote:

</pre>
<div>
<div style="color:#000; background-color:#fff; font-family:arial, helvetica, sans-serif;font-size:10pt">
<div>
<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: 10pt; background-color: transparent;">
<span><br>
</span></div>
<div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; background-color: transparent;">
<span>Thanks for guidance on the previous patch. I hope I've rectified them in the following patch. I was wondering that w</span><span style="background-color: transparent;">hile checking the return value of the functions with assert() , I need to include <assert.h>
 . So, should I include it individually in both the files, or somewhere else ? Please do suggest any other changes that maybe required.</span><span style="background-color: transparent;"> </span></div>
<div style="font-family: arial,
 helvetica, sans-serif; font-size: 13px; background-color: transparent; color: rgb(0, 0, 0); font-style: normal;">
<span style="background-color: transparent;"><br>
</span></div>
<div style="font-family: arial, helvetica, sans-serif; font-size: 13px; background-color: transparent; color: rgb(0, 0, 0); font-style: normal;">
<span style="background-color: transparent;"><br>
</span></div>
<div style="background-color: transparent;"><span style="background-color: transparent;">
<div style="background-color: transparent;"><font size="2">commit 70aee0d8827888b5c8230f45594e85fda5bd5a6d</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 00:17:44 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..c0505bb 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">@@ -247,8 +247,28 @@ static int imx_uart_first_open(int major, int minor, void *arg)</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"> #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">+    assert(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">+      "Consle",</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">+     ) == RTEMS_SUCCESSFUL</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">+    assert(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">+     ) == RTEMS_SUCCESSFUL</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">@@ -259,8 +279,24 @@ static int imx_uart_first_open(int major, int minor, void *arg)</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"> #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">+    assert( 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">+        ) == RTEMS_SUCCESSFUL</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">+    assert( 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">+        ) == RTEMS_SUCCESSFUL</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..9ae970e 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">@@ -334,7 +334,17 @@ 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">+    assert(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">+     ) == RTEMS_SUCCESSFUL</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;">
<br>
</div>
</span></div>
<div style="font-family: arial, helvetica, sans-serif; font-size:
 10pt;"></div>
<div style="font-family: arial, helvetica, sans-serif; font-size: 10pt;"> </div>
<div style="font-family: arial, helvetica, sans-serif; font-size: 10pt;"><br>
</div>
<div class="yui_3_7_2_28_1372531261960_61" style="font-family: arial, helvetica, clean, sans-serif; font-size: 10pt; background-color: transparent;">
<br>
</div>
<div class="yui_3_7_2_28_1372531261960_63" style="font-family: arial, helvetica, clean, sans-serif; font-size: 10pt; background-color: transparent;">
<br>
</div>
<div class="yui_3_7_2_28_1372531261960_65" style="font-family: arial, helvetica, clean, sans-serif; font-size: 10pt; background-color: transparent;">
Regards</div>
<div class="yui_3_7_2_28_1372531261960_67" style="font-family: arial, helvetica, clean, sans-serif; font-size: 10pt; background-color: transparent;">
<span style="background-color: transparent; line-height: 1.22;">Vipul Nayyar </span></div>
<div style="font-family: arial, helvetica, sans-serif;
 font-size: 10pt;"><span style="background-color: transparent; line-height: 1.22;"><br>
</span></div>
</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> Gedare Bloom <gedare@rtems.org>
<br>
<b><span style="font-weight: bold;">Cc:</span></b> Vipul Nayyar <nayyar_vipul@yahoo.com>; "rtems-devel@rtems.org" <rtems-devel@rtems.org>
<br>
<b><span style="font-weight: bold;">Sent:</span></b> Friday, 28 June 2013 2:18 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>
I agree with you Gedare. The legacy api support remains for a while. There is external code which could use it and we always hold legacy for at least one release branch.<br>
<br>
I just want the code in the tree to use the new way consistently. And update check_submission to flag the old way<br>
<br>
Gedare Bloom <<a ymailto="mailto:gedare@rtems.org" href="mailto:gedare@rtems.org">gedare@rtems.org</a>> wrote:<br>
<br>
<br>
On Thu, Jun 27, 2013 at 4:46 AM, Joel Sherrill<br>
<<a ymailto="mailto:Joel.Sherrill@oarcorp.com" href="mailto:Joel.Sherrill@oarcorp.com">Joel.Sherrill@oarcorp.com</a>> wrote:<br>
> The goal of this is to kill bad examples. It is legacy and we don't want<br>
> people to use it anymore. These should be mechanical changes. Vipul should<br>
> be able to provide instructions for users with external drivers to make the<br>
> changes.<br>
><br>
> Fixing these could break here or there but if we don't remove uses of<br>
> deprecated methods then users will use them in new BSPs and that is<br>
> unacceptable.<br>
><br>
I'd prefer to see 4.11 released before we start killing off legacy support.<br>
<br>
> Vipul Nayyar <<a ymailto="mailto:nayyar_vipul@yahoo.com" href="mailto:nayyar_vipul@yahoo.com">nayyar_vipul@yahoo.com</a>> wrote:<br>
><br>
> Hello,<br>
><br>
> According to the discussions with my mentor Joel Sherill, I was suggested to<br>
> kill all legacy/deprecated API uses in the tree which are defined in<br>
> irq-legacy.c as part of my project. I guess Dr Joel can guide us better<br>
> whether all of the deprecated methods need to be removed or only some of<br>
> them. cc'ing Dr Joel for guidance on this.<br>
><br>
> Regards<br>
> Vipul Nayyar<br>
><br>
><br>
> ________________________________<br>
> From: Sebastian Huber <<a ymailto="mailto:sebastian.huber@embedded-brains.de" href="mailto:sebastian.huber@embedded-brains.de">sebastian.huber@embedded-brains.de</a>><br>
> To: <a ymailto="mailto:rtems-devel@rtems.org" href="mailto:rtems-devel@rtems.org">
rtems-devel@rtems.org</a><br>
> Sent: Thursday, 27 June 2013 1:48 PM<br>
> Subject: Re: [Patch] Removing legacy method from arm csb336<br>
><br>
> On 06/26/2013 05:28 PM, Vipul Nayyar wrote:<br>
>><br>
>> For my GSOC Project Unified APIs,  a public google doc has been setup (<br>
>><br>
>> <a href="https://docs.google.com/document/d/1W9DMnpocXUKXiQMxHbbp0aG-ecuh94P-3N7hxEJmcgs/edit?usp=sharing" target="_blank">
https://docs.google.com/document/d/1W9DMnpocXUKXiQMxHbbp0aG-ecuh94P-3N7hxEJmcgs/edit?usp=sharing</a>)<br>
>> for community viewing. In order to establish this unified pattern across<br>
>> all<br>
>> BSPs, I felt that deprecated methods stored in irq-legacy.c should be<br>
>> dealt<br>
>> with first. So, I'm attaching a very basic patch which removes the<br>
>> deprecated<br>
>> method BSP_install_rtems_irq_handler from arm csb336 and instead makes use<br>
>> of rtems_interrupt_handler_install, as suggested in irq-legacy.c. Please<br>
>> do<br>
>> give suggestions if I'm heading the right way, and any modifications that<br>
>> this<br>
>> patch may require.<br>
><br>
> I would not touch the existing code that uses these legacy functions.  The<br>
> irq-legacy.c is provided to keep existing code as is.<br>
><br>
> -- Sebastian Huber, embedded brains GmbH<br>
><br>
> Address : Dornierstr. 4, D-82178 Puchheim, Germany<br>
> Phone  : +49 89 189 47 41-16<br>
> Fax    : +49 89 189 47 41-09<br>
> E-Mail  : <a ymailto="mailto:sebastian.huber@embedded-brains.de" href="mailto:sebastian.huber@embedded-brains.de">
sebastian.huber@embedded-brains.de</a><br>
> PGP    : Public key available on request.<br>
><br>
> Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.<br>
> _______________________________________________<br>
> rtems-devel mailing list<br>
> <a ymailto="mailto:rtems-devel@rtems.org" href="mailto:rtems-devel@rtems.org">rtems-devel@rtems.org</a><br>
> <a href="http://www.rtems.org/mailman/listinfo/rtems-devel" target="_blank">http://www.rtems.org/mailman/listinfo/rtems-devel</a><br>
><br>
><br>
><br>
> _______________________________________________<br>
> rtems-devel mailing list<br>
> <a ymailto="mailto:rtems-devel@rtems.org" href="mailto:rtems-devel@rtems.org">rtems-devel@rtems.org</a><br>
> <a href="http://www.rtems.org/mailman/listinfo/rtems-devel" target="_blank">http://www.rtems.org/mailman/listinfo/rtems-devel</a><br>
><br>
<br>
</div>
</div>
</div>
</div>
</div>
</body>
</html>