mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2025-04-16 08:43:17 +00:00
task #10153 (Integrate loopif into netif.c) - loopif does not have to be created by the port any more, just define LWIP_HAVE_LOOPIF to 1.
This commit is contained in:
parent
91d70a3364
commit
077caac76d
@ -19,6 +19,11 @@ HISTORY
|
|||||||
|
|
||||||
++ New features:
|
++ New features:
|
||||||
|
|
||||||
|
2010-02-09: Simon Goldschmidt
|
||||||
|
* netif.c/.h, removed loopif.c/.h: task #10153 (Integrate loopif into
|
||||||
|
netif.c) - loopif does not have to be created by the port any more,
|
||||||
|
just define LWIP_HAVE_LOOPIF to 1.
|
||||||
|
|
||||||
2010-02-08: Simon Goldschmidt
|
2010-02-08: Simon Goldschmidt
|
||||||
* inet.h, ip_addr.c/.h: Added reentrant versions of inet_ntoa/ipaddr_ntoa
|
* inet.h, ip_addr.c/.h: Added reentrant versions of inet_ntoa/ipaddr_ntoa
|
||||||
inet_ntoa_r/ipaddr_ntoa_r
|
inet_ntoa_r/ipaddr_ntoa_r
|
||||||
|
@ -74,6 +74,50 @@
|
|||||||
struct netif *netif_list;
|
struct netif *netif_list;
|
||||||
struct netif *netif_default;
|
struct netif *netif_default;
|
||||||
|
|
||||||
|
#if LWIP_HAVE_LOOPIF
|
||||||
|
static struct netif loop_netif;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize a lwip network interface structure for a loopback interface
|
||||||
|
*
|
||||||
|
* @param netif the lwip network interface structure for this loopif
|
||||||
|
* @return ERR_OK if the loopif is initialized
|
||||||
|
* ERR_MEM if private data couldn't be allocated
|
||||||
|
*/
|
||||||
|
static err_t
|
||||||
|
netif_loopif_init(struct netif *netif)
|
||||||
|
{
|
||||||
|
/* initialize the snmp variables and counters inside the struct netif
|
||||||
|
* ifSpeed: no assumption can be made!
|
||||||
|
*/
|
||||||
|
NETIF_INIT_SNMP(netif, snmp_ifType_softwareLoopback, 0);
|
||||||
|
|
||||||
|
netif->name[0] = 'l';
|
||||||
|
netif->name[1] = 'o';
|
||||||
|
netif->output = netif_loop_output;
|
||||||
|
return ERR_OK;
|
||||||
|
}
|
||||||
|
#endif /* LWIP_HAVE_LOOPIF */
|
||||||
|
|
||||||
|
void
|
||||||
|
netif_init(void)
|
||||||
|
{
|
||||||
|
#if LWIP_HAVE_LOOPIF
|
||||||
|
ip_addr_t loop_ipaddr, loop_netmask, loop_gw;
|
||||||
|
IP4_ADDR(&loop_gw, 127,0,0,1);
|
||||||
|
IP4_ADDR(&loop_ipaddr, 127,0,0,1);
|
||||||
|
IP4_ADDR(&loop_netmask, 255,0,0,0);
|
||||||
|
|
||||||
|
#if NO_SYS
|
||||||
|
netif_add(&loop_netif, &loop_ipaddr, &loop_netmask, &loop_gw, NULL, netif_loopif_init, ip_input);
|
||||||
|
#else /* NO_SYS */
|
||||||
|
netif_add(&loop_netif, &loop_ipaddr, &loop_netmask, &loop_gw, NULL, netif_loopif_init, tcpip_input);
|
||||||
|
#endif /* NO_SYS */
|
||||||
|
netif_set_up(&loop_netif);
|
||||||
|
|
||||||
|
#endif /* LWIP_HAVE_LOOPIF */
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a network interface to the list of lwIP netifs.
|
* Add a network interface to the list of lwIP netifs.
|
||||||
*
|
*
|
||||||
@ -149,7 +193,7 @@ netif_add(struct netif *netif, ip_addr_t *ipaddr, ip_addr_t *netmask,
|
|||||||
#if LWIP_IGMP
|
#if LWIP_IGMP
|
||||||
/* start IGMP processing */
|
/* start IGMP processing */
|
||||||
if (netif->flags & NETIF_FLAG_IGMP) {
|
if (netif->flags & NETIF_FLAG_IGMP) {
|
||||||
igmp_start( netif);
|
igmp_start(netif);
|
||||||
}
|
}
|
||||||
#endif /* LWIP_IGMP */
|
#endif /* LWIP_IGMP */
|
||||||
|
|
||||||
|
@ -237,7 +237,7 @@ extern struct netif *netif_list;
|
|||||||
/** The default network interface. */
|
/** The default network interface. */
|
||||||
extern struct netif *netif_default;
|
extern struct netif *netif_default;
|
||||||
|
|
||||||
#define netif_init() /* Compatibility define, no init needed. */
|
void netif_init(void);
|
||||||
|
|
||||||
struct netif *netif_add(struct netif *netif, ip_addr_t *ipaddr, ip_addr_t *netmask,
|
struct netif *netif_add(struct netif *netif, ip_addr_t *ipaddr, ip_addr_t *netmask,
|
||||||
ip_addr_t *gw, void *state, netif_init_fn init, netif_input_fn input);
|
ip_addr_t *gw, void *state, netif_init_fn init, netif_input_fn input);
|
||||||
|
@ -1,53 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2001-2004 Swedish Institute of Computer Science.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* 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. The name of the author may not be used to endorse or promote products
|
|
||||||
* derived from this software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
|
|
||||||
*
|
|
||||||
* This file is part of the lwIP TCP/IP stack.
|
|
||||||
*
|
|
||||||
* Author: Adam Dunkels <adam@sics.se>
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
#ifndef __NETIF_LOOPIF_H__
|
|
||||||
#define __NETIF_LOOPIF_H__
|
|
||||||
|
|
||||||
#include "lwip/opt.h"
|
|
||||||
#include "lwip/netif.h"
|
|
||||||
#include "lwip/err.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !LWIP_NETIF_LOOPBACK_MULTITHREADING
|
|
||||||
#define loopif_poll netif_poll
|
|
||||||
#endif /* !LWIP_NETIF_LOOPBACK_MULTITHREADING */
|
|
||||||
|
|
||||||
err_t loopif_init(struct netif *netif);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* __NETIF_LOOPIF_H__ */
|
|
@ -1,66 +0,0 @@
|
|||||||
/**
|
|
||||||
* @file
|
|
||||||
* Loop Interface
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (c) 2001-2004 Swedish Institute of Computer Science.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* 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. The name of the author may not be used to endorse or promote products
|
|
||||||
* derived from this software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
|
|
||||||
*
|
|
||||||
* This file is part of the lwIP TCP/IP stack.
|
|
||||||
*
|
|
||||||
* Author: Adam Dunkels <adam@sics.se>
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
#include "lwip/opt.h"
|
|
||||||
|
|
||||||
#if LWIP_HAVE_LOOPIF
|
|
||||||
|
|
||||||
#include "netif/loopif.h"
|
|
||||||
#include "lwip/snmp.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Initialize a lwip network interface structure for a loopback interface
|
|
||||||
*
|
|
||||||
* @param netif the lwip network interface structure for this loopif
|
|
||||||
* @return ERR_OK if the loopif is initialized
|
|
||||||
* ERR_MEM if private data couldn't be allocated
|
|
||||||
*/
|
|
||||||
err_t
|
|
||||||
loopif_init(struct netif *netif)
|
|
||||||
{
|
|
||||||
/* initialize the snmp variables and counters inside the struct netif
|
|
||||||
* ifSpeed: no assumption can be made!
|
|
||||||
*/
|
|
||||||
NETIF_INIT_SNMP(netif, snmp_ifType_softwareLoopback, 0);
|
|
||||||
|
|
||||||
netif->name[0] = 'l';
|
|
||||||
netif->name[1] = 'o';
|
|
||||||
netif->output = netif_loop_output;
|
|
||||||
return ERR_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* LWIP_HAVE_LOOPIF */
|
|
Loading…
x
Reference in New Issue
Block a user