Merge remote-tracking branch 'origin/master' into ieee802154

This commit is contained in:
Gregory Nutt
2017-04-15 08:54:06 -06:00
13 changed files with 235 additions and 55 deletions
+7 -1
View File
@@ -8,7 +8,7 @@
<tr align="center" bgcolor="#e4e4e4"> <tr align="center" bgcolor="#e4e4e4">
<td> <td>
<h1><big><font color="#3c34ec"><i>NuttX README Files</i></font></big></h1> <h1><big><font color="#3c34ec"><i>NuttX README Files</i></font></big></h1>
<p>Last Updated: April 8, 2017</p> <p>Last Updated: April 15, 2017</p>
</td> </td>
</tr> </tr>
</table> </table>
@@ -161,8 +161,14 @@ nuttx/
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/ntosd-dm320/README.txt" target="_blank"><b><i>README.txt</i></b></a> | | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/ntosd-dm320/README.txt" target="_blank"><b><i>README.txt</i></b></a>
| |- nucleo-144/ | |- nucleo-144/
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/nucleo-144/README.txt" target="_blank"><b><i>README.txt</i></b></a> | | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/nucleo-144/README.txt" target="_blank"><b><i>README.txt</i></b></a>
| |- nucleo-f303re/
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/nucleo-f303re/README.txt" target="_blank"><i>README.txt</i></a>
| |- nucleo-f334r8/
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/nucleo-f334r8/README.txt" target="_blank"><i>README.txt</i></a>
| |- nucleo-f4x1re/ | |- nucleo-f4x1re/
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/nucleo-f4x1re/README.txt" target="_blank"><b><i>README.txt</i></b></a> | | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/nucleo-f4x1re/README.txt" target="_blank"><b><i>README.txt</i></b></a>
| |- nucleo-l476rg/
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/nucleo-l476rg/README.txt" target="_blank"><b><i>README.txt</i></b></a>
| |- nutiny-nuc120/ | |- nutiny-nuc120/
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/nutiny-nuc120/README.txt" target="_blank"><b><i>README.txt</i></b></a> | | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/nutiny-nuc120/README.txt" target="_blank"><b><i>README.txt</i></b></a>
| |- olimex-efm32g880f129-stk/ | |- olimex-efm32g880f129-stk/
+6
View File
@@ -1548,8 +1548,14 @@ nuttx/
| | `- README.txt | | `- README.txt
| |- nucleo-144/ | |- nucleo-144/
| | `- README.txt | | `- README.txt
| |- nucleo-f303re/
| | `- README.txt
| |- nucleo-f334r8/
| | `- README.txt
| |- nucleo-f4x1re/ | |- nucleo-f4x1re/
| | `- README.txt | | `- README.txt
| |- nucleo-l476rg/
| | `- README.txt
| |- nutiny-nuc120/ | |- nutiny-nuc120/
| | `- README.txt | | `- README.txt
| |- olimex-efm32g880f129-stk/ | |- olimex-efm32g880f129-stk/
+16 -2
View File
@@ -1,4 +1,4 @@
NuttX TODO List (Last updated April 12, 2017) NuttX TODO List (Last updated April 15, 2017)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This file summarizes known NuttX bugs, limitations, inconsistencies with This file summarizes known NuttX bugs, limitations, inconsistencies with
@@ -19,7 +19,7 @@ nuttx/:
(8) Kernel/Protected Build (8) Kernel/Protected Build
(3) C++ Support (3) C++ Support
(6) Binary loaders (binfmt/) (6) Binary loaders (binfmt/)
(14) Network (net/, drivers/net) (15) Network (net/, drivers/net)
(4) USB (drivers/usbdev, drivers/usbhost) (4) USB (drivers/usbdev, drivers/usbhost)
(0) Other drivers (drivers/) (0) Other drivers (drivers/)
(12) Libraries (libc/, libm/) (12) Libraries (libc/, libm/)
@@ -1145,6 +1145,20 @@ o Network (net/, drivers/net)
Status: Open Status: Open
Priority: Low. Really just as aesthetic maintainability issue. Priority: Low. Really just as aesthetic maintainability issue.
Title: BROADCAST WITH MULTIPLE NETWORK INTERFACES
Description: There is currently no mechanism to send a broadcast packet
out through several network interfaces. Currently packets
can be sent to only one device. Logic in netdev_findby_ipvXaddr()
currently just selects the first device in the list of
devices; only that device will receive broadcast packets.
Status: Open
Priority: High if you require broadcast on multiple networks. There is
no simple solution known at this time, however. Perhaps
netdev_findby_ipvXaddr() should return a list of devices rather
than a single device? All upstream logic would then have to
deal with a list of devices. That would be a huge effect and
certainly doesn't dount as a "simple solution".
o USB (drivers/usbdev, drivers/usbhost) o USB (drivers/usbdev, drivers/usbhost)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+11
View File
@@ -232,6 +232,13 @@ config ARCH_CHIP_STM32
---help--- ---help---
STMicro STM32 architectures (ARM Cortex-M3/4). STMicro STM32 architectures (ARM Cortex-M3/4).
config ARCH_CHIP_STM32F0
bool "STMicro STM32 F0"
select ARCH_CORTEXM0
select ARCH_HAVE_CMNVECTOR
---help---
STMicro STM32 architectures (ARM Cortex-M0).
config ARCH_CHIP_STM32F7 config ARCH_CHIP_STM32F7
bool "STMicro STM32 F7" bool "STMicro STM32 F7"
select ARCH_HAVE_CMNVECTOR select ARCH_HAVE_CMNVECTOR
@@ -441,6 +448,7 @@ config ARCH_CHIP
default "sam34" if ARCH_CHIP_SAM34 default "sam34" if ARCH_CHIP_SAM34
default "samv7" if ARCH_CHIP_SAMV7 default "samv7" if ARCH_CHIP_SAMV7
default "stm32" if ARCH_CHIP_STM32 default "stm32" if ARCH_CHIP_STM32
default "stm32f0" if ARCH_CHIP_STM32F0
default "stm32f7" if ARCH_CHIP_STM32F7 default "stm32f7" if ARCH_CHIP_STM32F7
default "stm32l4" if ARCH_CHIP_STM32L4 default "stm32l4" if ARCH_CHIP_STM32L4
default "str71x" if ARCH_CHIP_STR71X default "str71x" if ARCH_CHIP_STR71X
@@ -697,6 +705,9 @@ endif
if ARCH_CHIP_STM32 if ARCH_CHIP_STM32
source arch/arm/src/stm32/Kconfig source arch/arm/src/stm32/Kconfig
endif endif
if ARCH_CHIP_STM32F0
source arch/arm/src/stm32f0/Kconfig
endif
if ARCH_CHIP_STM32F7 if ARCH_CHIP_STM32F7
source arch/arm/src/stm32f7/Kconfig source arch/arm/src/stm32f7/Kconfig
endif endif
@@ -0,0 +1,53 @@
/************************************************************************************
* arch/arm/src/stm32f0/chip/stm32f0_pinmap.h
*
* Copyright (C) 2015 Sebastien Lorquet. All rights reserved.
* Author: Sebastien Lorquet <sebastien@lorquet.fr>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
************************************************************************************/
#ifndef __ARCH_ARM_SRC_STM32F0_CHIP_STM32F0_PINMAP_H
#define __ARCH_ARM_SRC_STM32F0_CHIP_STM32F0_PINMAP_H
/************************************************************************************
* Included Files
************************************************************************************/
#include <nuttx/config.h>
#include "chip.h"
#if defined(CONFIG_STM32F0_STM32F05X)
# include "chip/stm32f05xr_pinmap.h"
#else
# error "Unsupported STM32F0 pin map"
#endif
#endif /* __ARCH_ARM_SRC_STM32F0_CHIP_STM32F0_PINMAP_H */
+16 -9
View File
@@ -59,14 +59,21 @@
#endif #endif
#include <arch/serial.h> #include <arch/serial.h>
#include <arch/board/board.h>
#include "chip.h"
#include "stm32f0_uart.h"
//#include "stm32f0_dma.h"
#include "stm32f0_rcc.h"
#include "up_arch.h" #include "up_arch.h"
#include "up_internal.h" #include "up_internal.h"
#include "chip.h"
#include "stm32f0_gpio.h"
#include "stm32f0_uart.h"
#include "stm32f0_rcc.h"
#include "chip/stm32f0_pinmap.h"
/* board.h should be included last. It may depend on defintions from
* previous header files and it may, in certain cases, override definitions
* provided in previous header files.
*/
#include <arch/board/board.h>
/**************************************************************************** /****************************************************************************
* Pre-processor Definitions * Pre-processor Definitions
@@ -189,7 +196,7 @@
#endif #endif
#ifdef USE_SERIALDRIVER #ifdef USE_SERIALDRIVER
#ifdef HAVE_USART #ifdef HAVE_UART
/**************************************************************************** /****************************************************************************
* Private Types * Private Types
@@ -2320,7 +2327,7 @@ static int stm32f0serial_pmprepare(FAR struct pm_callback_s *cb, int domain,
return OK; return OK;
} }
#endif #endif
#endif /* HAVE_USART */ #endif /* HAVE_UART */
#endif /* USE_SERIALDRIVER */ #endif /* USE_SERIALDRIVER */
/**************************************************************************** /****************************************************************************
@@ -2342,7 +2349,7 @@ static int stm32f0serial_pmprepare(FAR struct pm_callback_s *cb, int domain,
#ifdef USE_EARLYSERIALINIT #ifdef USE_EARLYSERIALINIT
void up_earlyserialinit(void) void up_earlyserialinit(void)
{ {
#ifdef HAVE_USART #ifdef HAVE_UART
unsigned i; unsigned i;
/* Disable all USART interrupts */ /* Disable all USART interrupts */
@@ -2375,7 +2382,7 @@ void up_earlyserialinit(void)
void up_serialinit(void) void up_serialinit(void)
{ {
#ifdef HAVE_USART #ifdef HAVE_UART
char devname[16]; char devname[16];
unsigned i; unsigned i;
unsigned minor = 0; unsigned minor = 0;
+7 -7
View File
@@ -54,22 +54,22 @@
* device. * device.
*/ */
#if STM32F0_NUSART < 8 || !defined(CONFIG_STM32F0_HAVE_USART8) #if STM32F0_NUSART < 8 || !defined(CONFIG_STM32F0_HAVE_UART8)
# undef CONFIG_STM32F0_USART8 # undef CONFIG_STM32F0_USART8
#endif #endif
#if STM32F0_NUSART < 7 || !defined(CONFIG_STM32F0_HAVE_USART7) #if STM32F0_NUSART < 7 || !defined(CONFIG_STM32F0_HAVE_UART7)
# undef CONFIG_STM32F0_USART7 # undef CONFIG_STM32F0_USART7
#endif #endif
#if STM32F0_NUSART < 6 || !defined(CONFIG_STM32F0_HAVE_USART6) #if STM32F0_NUSART < 6 || !defined(CONFIG_STM32F0_HAVE_UART6)
# undef CONFIG_STM32F0_USART6 # undef CONFIG_STM32F0_USART6
#endif #endif
#if STM32F0_NUSART < 5 || !defined(CONFIG_STM32F0_HAVE_USART5) #if STM32F0_NUSART < 5 || !defined(CONFIG_STM32F0_HAVE_UART5)
# undef CONFIG_STM32F0_USART5 # undef CONFIG_STM32F0_USART5
#endif #endif
#if STM32F0_NUSART < 4 || !defined(CONFIG_STM32F0_HAVE_USART4) #if STM32F0_NUSART < 4 || !defined(CONFIG_STM32F0_HAVE_UART4)
# undef CONFIG_STM32F0_USART4 # undef CONFIG_STM32F0_USART4
#endif #endif
#if STM32F0_NUSART < 3 || !defined(CONFIG_STM32F0_HAVE_USART3) #if STM32F0_NUSART < 3 || !defined(CONFIG_STM32F0_HAVE_UART3)
# undef CONFIG_STM32F0_USART3 # undef CONFIG_STM32F0_USART3
#endif #endif
#if STM32F0_NUSART < 2 #if STM32F0_NUSART < 2
@@ -84,7 +84,7 @@
#if defined(CONFIG_STM32F0_USART1) || defined(CONFIG_STM32F0_USART2) || \ #if defined(CONFIG_STM32F0_USART1) || defined(CONFIG_STM32F0_USART2) || \
defined(CONFIG_STM32F0_USART3) || defined(CONFIG_STM32F0_USART4) || \ defined(CONFIG_STM32F0_USART3) || defined(CONFIG_STM32F0_USART4) || \
defined(CONFIG_STM32F0_USART5) defined(CONFIG_STM32F0_USART5)
# define HAVE_USART 1 # define HAVE_UART 1
#endif #endif
/* Sanity checks */ /* Sanity checks */
+26
View File
@@ -0,0 +1,26 @@
Nucleo-64 Boards
================
The Nucleo-F303RE is a member of the Nucleo-64 board family. The Nucleo-64
is a standard board for use with several STM32 parts in the LQFP64 package.
Variants include
Order code Targeted STM32
------------- --------------
NUCLEO-F030R8 STM32F030R8T6
NUCLEO-F070RB STM32F070RBT6
NUCLEO-F072RB STM32F072RBT6
NUCLEO-F091RC STM32F091RCT6
NUCLEO-F103RB STM32F103RBT6
NUCLEO-F302R8 STM32F302R8T6
NUCLEO-F303RE STM32F303RET6
NUCLEO-F334R8 STM32F334R8T6
NUCLEO-F401RE STM32F401RET6
NUCLEO-F410RB STM32F410RBT6
NUCLEO-F411RE STM32F411RET6
NUCLEO-F446RE STM32F446RET6
NUCLEO-L053R8 STM32L053R8T6
NUCLEO-L073RZ STM32L073RZT6
NUCLEO-L152RE STM32L152RET6
NUCLEO-L452RE STM32L452RET6
NUCLEO-L476RG STM32L476RGT6
+26
View File
@@ -0,0 +1,26 @@
Nucleo-64 Boards
================
The Nucleo-F303RE is a member of the Nucleo-64 board family. The Nucleo-64
is a standard board for use with several STM32 parts in the LQFP64 package.
Variants include
Order code Targeted STM32
------------- --------------
NUCLEO-F030R8 STM32F030R8T6
NUCLEO-F070RB STM32F070RBT6
NUCLEO-F072RB STM32F072RBT6
NUCLEO-F091RC STM32F091RCT6
NUCLEO-F103RB STM32F103RBT6
NUCLEO-F302R8 STM32F302R8T6
NUCLEO-F303RE STM32F303RET6
NUCLEO-F334R8 STM32F334R8T6
NUCLEO-F401RE STM32F401RET6
NUCLEO-F410RB STM32F410RBT6
NUCLEO-F411RE STM32F411RET6
NUCLEO-F446RE STM32F446RET6
NUCLEO-L053R8 STM32L053R8T6
NUCLEO-L073RZ STM32L073RZT6
NUCLEO-L152RE STM32L152RET6
NUCLEO-L452RE STM32L452RET6
NUCLEO-L476RG STM32L476RGT6
+28
View File
@@ -65,6 +65,7 @@ Board features, however, are identical:
Contents Contents
======== ========
- Nucleo-64 Boards
- Development Environment - Development Environment
- GNU Toolchain Options - GNU Toolchain Options
- IDEs - IDEs
@@ -79,6 +80,33 @@ Contents
- Shields - Shields
- Configurations - Configurations
Nucleo-64 Boards
================
The Nucleo-F4x1RE boards are members of the Nucleo-64 board family. The
Nucleo-64 is a standard board for use with several STM32 parts in the
LQFP64 package. Variants include
Order code Targeted STM32
------------- --------------
NUCLEO-F030R8 STM32F030R8T6
NUCLEO-F070RB STM32F070RBT6
NUCLEO-F072RB STM32F072RBT6
NUCLEO-F091RC STM32F091RCT6
NUCLEO-F103RB STM32F103RBT6
NUCLEO-F302R8 STM32F302R8T6
NUCLEO-F303RE STM32F303RET6
NUCLEO-F334R8 STM32F334R8T6
NUCLEO-F401RE STM32F401RET6
NUCLEO-F410RB STM32F410RBT6
NUCLEO-F411RE STM32F411RET6
NUCLEO-F446RE STM32F446RET6
NUCLEO-L053R8 STM32L053R8T6
NUCLEO-L073RZ STM32L073RZT6
NUCLEO-L152RE STM32L152RET6
NUCLEO-L452RE STM32L452RET6
NUCLEO-L476RG STM32L476RGT6
Development Environment Development Environment
======================= =======================
+28
View File
@@ -41,6 +41,7 @@ Board features:
Contents Contents
======== ========
- Nucleo-64 Boards
- Development Environment - Development Environment
- GNU Toolchain Options - GNU Toolchain Options
- IDEs - IDEs
@@ -55,6 +56,33 @@ Contents
- Shields - Shields
- Configurations - Configurations
Nucleo-64 Boards
================
The Nucleo-L476RG is a member of the Nucleo-64 board family. The Nucleo-64
is a standard board for use with several STM32 parts in the LQFP64 package.
Variants include
Order code Targeted STM32
------------- --------------
NUCLEO-F030R8 STM32F030R8T6
NUCLEO-F070RB STM32F070RBT6
NUCLEO-F072RB STM32F072RBT6
NUCLEO-F091RC STM32F091RCT6
NUCLEO-F103RB STM32F103RBT6
NUCLEO-F302R8 STM32F302R8T6
NUCLEO-F303RE STM32F303RET6
NUCLEO-F334R8 STM32F334R8T6
NUCLEO-F401RE STM32F401RET6
NUCLEO-F410RB STM32F410RBT6
NUCLEO-F411RE STM32F411RET6
NUCLEO-F446RE STM32F446RET6
NUCLEO-L053R8 STM32L053R8T6
NUCLEO-L073RZ STM32L073RZT6
NUCLEO-L152RE STM32L152RET6
NUCLEO-L452RE STM32L452RET6
NUCLEO-L476RG STM32L476RGT6
Development Environment Development Environment
======================= =======================
-33
View File
@@ -237,38 +237,5 @@
#define BUTTON_USER_BIT (1 << BUTTON_USER) #define BUTTON_USER_BIT (1 << BUTTON_USER)
/* Alternate Pin Functions **********************************************************/ /* Alternate Pin Functions **********************************************************/
/* The STM32L-Discovery has no on-board RS-232 driver. Further, there are no USART
* pins that do not conflict with the on board resources, in particular, the LCD:
* Most USART pins are available if the LCD is enabled; USART2 may be used if either
* the LCD or the on-board LEDs are disabled.
*
* PA9 USART1_TX LCD glass COM1 P2, pin 22
* PA10 USART1_RX LCD glass COM2 P2, pin 21
* PB6 USART1_TX LED Blue P2, pin 8
* PB7 USART1_RX LED Green P2, pin 7
*
* PA2 USART2_TX LCD SEG1 P1, pin 17
* PA3 USART2_RX LCD SEG2 P1, pin 18
*
* PB10 USART3_TX LCD SEG6 P1, pin 22
* PB11 USART3_RX LCD SEG7 P1, pin 23
* PC10 USART3_TX LCD SEG22 P2, pin 15
* PC11 USART3_RX LCD SEG23 P2, pin 14
*/
/* Select PA9 and PA10 if the LCD is not enabled */
//#define GPIO_USART1_RX GPIO_USART1_RX_1 /* PA10 */
//#define GPIO_USART1_TX GPIO_USART1_TX_1 /* PA9 */
/* This there are no other options for USART1 on this part */
#define GPIO_USART2_RX GPIO_USART2_RX_1 /* PA3 */
#define GPIO_USART2_TX GPIO_USART2_TX_1 /* PA2 */
/* Arbirtrarily select PB10 and PB11 */
#define GPIO_USART3_RX GPIO_USART3_RX_1 /* PB11 */
#define GPIO_USART3_TX GPIO_USART3_TX_1 /* PB10 */
#endif /* __CONFIG_STM32F0DISCOVERY_INCLUDE_BOARD_H */ #endif /* __CONFIG_STM32F0DISCOVERY_INCLUDE_BOARD_H */
+11 -3
View File
@@ -1,7 +1,7 @@
/**************************************************************************** /****************************************************************************
* net/netdev/netdev_findbyaddr.c * net/netdev/netdev_findbyaddr.c
* *
* Copyright (C) 2007-2009, 2014-2015 Gregory Nutt. All rights reserved. * Copyright (C) 2007-2009, 2014-2015, 2017 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org> * Author: Gregory Nutt <gnutt@nuttx.org>
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@@ -217,9 +217,13 @@ FAR struct net_driver_s *netdev_findby_ipv4addr(in_addr_t ripaddr)
* broadcast packet out ALL local networks. I am not sure * broadcast packet out ALL local networks. I am not sure
* of that and, in any event, there is nothing we can do * of that and, in any event, there is nothing we can do
* about that here. * about that here.
*
* REVISIT: For now, arbitrarily return the first network
* interface in the list of network devices. The broadcast
* will be sent on that device only.
*/ */
return NULL; return g_netdevices;
} }
else else
{ {
@@ -335,9 +339,13 @@ FAR struct net_driver_s *netdev_findby_ipv6addr(const net_ipv6addr_t ripaddr)
* broadcast packet out ALL local networks. I am not sure * broadcast packet out ALL local networks. I am not sure
* of that and, in any event, there is nothing we can do * of that and, in any event, there is nothing we can do
* about that here. * about that here.
*
* REVISIT: For now, arbitrarily return the first network
* interface in the list of network devices. The broadcast
* will be sent on that device only.
*/ */
return NULL; return g_netdevices;
} }
else else
{ {