mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-07-04 20:08:57 +00:00
Changed initialization: many init functions are not needed any more since we now rely on the compiler initializing global and static variables to zero!
This commit is contained in:
parent
536f2e42d2
commit
199648ff37
|
@ -19,6 +19,11 @@ HISTORY
|
||||||
|
|
||||||
++ New features:
|
++ New features:
|
||||||
|
|
||||||
|
2007-10-08 Simon Goldschmidt
|
||||||
|
* many files: Changed initialization: many init functions are not needed any
|
||||||
|
more since we now rely on the compiler initializing global and static
|
||||||
|
variables to zero!
|
||||||
|
|
||||||
2007-10-06 Simon Goldschmidt
|
2007-10-06 Simon Goldschmidt
|
||||||
* ip_frag.c, memp.c, mib2.c, ip_frag.h, memp_std.h, opt.h: Changed IP_REASSEMBLY
|
* ip_frag.c, memp.c, mib2.c, ip_frag.h, memp_std.h, opt.h: Changed IP_REASSEMBLY
|
||||||
to enqueue the received pbufs so that multiple packets can be reassembled
|
to enqueue the received pbufs so that multiple packets can be reassembled
|
||||||
|
|
|
@ -21,7 +21,8 @@ features of Savannah help us not lose users' input.
|
||||||
6. one space and no newline before opening curly braces of a block.
|
6. one space and no newline before opening curly braces of a block.
|
||||||
7. closing curly brace on a single line.
|
7. closing curly brace on a single line.
|
||||||
8. spaces surrounding assignment and comparisons.
|
8. spaces surrounding assignment and comparisons.
|
||||||
9. use current source code style as further reference.
|
9. don't initialize static and/or global variables to zero, the compiler takes care of that.
|
||||||
|
10. use current source code style as further reference.
|
||||||
|
|
||||||
2.2 Source code documentation style:
|
2.2 Source code documentation style:
|
||||||
|
|
||||||
|
|
|
@ -86,10 +86,10 @@ struct lwip_setgetsockopt_data {
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct lwip_socket sockets[NUM_SOCKETS];
|
static struct lwip_socket sockets[NUM_SOCKETS];
|
||||||
static struct lwip_select_cb *select_cb_list = 0;
|
static struct lwip_select_cb *select_cb_list;
|
||||||
|
|
||||||
static sys_sem_t socksem = 0;
|
static sys_sem_t socksem;
|
||||||
static sys_sem_t selectsem = 0;
|
static sys_sem_t selectsem;
|
||||||
|
|
||||||
static void event_callback(struct netconn *conn, enum netconn_evt evt, u16_t len);
|
static void event_callback(struct netconn *conn, enum netconn_evt evt, u16_t len);
|
||||||
static void lwip_getsockopt_internal(void *arg);
|
static void lwip_getsockopt_internal(void *arg);
|
||||||
|
|
|
@ -54,18 +54,18 @@
|
||||||
#include "netif/ppp_oe.h"
|
#include "netif/ppp_oe.h"
|
||||||
|
|
||||||
/* global variables */
|
/* global variables */
|
||||||
static void (* tcpip_init_done)(void *arg) = NULL;
|
static void (* tcpip_init_done)(void *arg);
|
||||||
static void *tcpip_init_done_arg = NULL;
|
static void *tcpip_init_done_arg;
|
||||||
static sys_mbox_t mbox = SYS_MBOX_NULL;
|
static sys_mbox_t mbox = SYS_MBOX_NULL;
|
||||||
|
|
||||||
#if LWIP_TCPIP_CORE_LOCKING
|
#if LWIP_TCPIP_CORE_LOCKING
|
||||||
/** The global semaphore to lock the stack. */
|
/** The global semaphore to lock the stack. */
|
||||||
sys_sem_t lock_tcpip_core = 0;
|
sys_sem_t lock_tcpip_core;
|
||||||
#endif /* LWIP_TCPIP_CORE_LOCKING */
|
#endif /* LWIP_TCPIP_CORE_LOCKING */
|
||||||
|
|
||||||
#if LWIP_TCP
|
#if LWIP_TCP
|
||||||
/* global variable that shows if the tcp timer is currently scheduled or not */
|
/* global variable that shows if the tcp timer is currently scheduled or not */
|
||||||
static int tcpip_tcp_timer_active = 0;
|
static int tcpip_tcp_timer_active;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Timer callback function that calls tcp_tmr() and reschedules itself.
|
* Timer callback function that calls tcp_tmr() and reschedules itself.
|
||||||
|
|
|
@ -113,8 +113,6 @@ igmp_init(void)
|
||||||
|
|
||||||
IP4_ADDR(&allsystems, 224, 0, 0, 1);
|
IP4_ADDR(&allsystems, 224, 0, 0, 1);
|
||||||
IP4_ADDR(&allrouters, 224, 0, 0, 2);
|
IP4_ADDR(&allrouters, 224, 0, 0, 2);
|
||||||
|
|
||||||
igmp_group_list = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef LWIP_DEBUG
|
#ifdef LWIP_DEBUG
|
||||||
|
|
|
@ -55,17 +55,6 @@
|
||||||
#include "lwip/stats.h"
|
#include "lwip/stats.h"
|
||||||
#include "arch/perf.h"
|
#include "arch/perf.h"
|
||||||
|
|
||||||
/**
|
|
||||||
* Initializes the IP layer.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
ip_init(void)
|
|
||||||
{
|
|
||||||
#if IP_REASSEMBLY
|
|
||||||
ip_reass_init();
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Finds the appropriate network interface for a given IP address. It
|
* Finds the appropriate network interface for a given IP address. It
|
||||||
* searches the list of network interfaces linearly. A match is found
|
* searches the list of network interfaces linearly. A match is found
|
||||||
|
|
|
@ -85,14 +85,6 @@ static u16_t ip_reass_pbufcount;
|
||||||
/* function prototypes */
|
/* function prototypes */
|
||||||
static void dequeue_packet(struct ip_reassdata *ipr, struct ip_reassdata *prev);
|
static void dequeue_packet(struct ip_reassdata *ipr, struct ip_reassdata *prev);
|
||||||
|
|
||||||
/**
|
|
||||||
* Initializes IP reassembly states.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
ip_reass_init(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reassembly timer base function
|
* Reassembly timer base function
|
||||||
* for both NO_SYS == 0 and 1 (!).
|
* for both NO_SYS == 0 and 1 (!).
|
||||||
|
|
|
@ -206,7 +206,6 @@ mem_init(void)
|
||||||
(SIZEOF_STRUCT_MEM & (MEM_ALIGNMENT-1)) == 0);
|
(SIZEOF_STRUCT_MEM & (MEM_ALIGNMENT-1)) == 0);
|
||||||
|
|
||||||
/* align the heap */
|
/* align the heap */
|
||||||
memset(ram_heap, 0, sizeof(ram_heap));
|
|
||||||
ram = LWIP_MEM_ALIGN(ram_heap);
|
ram = LWIP_MEM_ALIGN(ram_heap);
|
||||||
/* initialize the start of the heap */
|
/* initialize the start of the heap */
|
||||||
mem = (struct mem *)ram;
|
mem = (struct mem *)ram;
|
||||||
|
|
|
@ -61,15 +61,6 @@
|
||||||
struct netif *netif_list = NULL;
|
struct netif *netif_list = NULL;
|
||||||
struct netif *netif_default = NULL;
|
struct netif *netif_default = NULL;
|
||||||
|
|
||||||
/**
|
|
||||||
* Initialize this module
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
netif_init(void)
|
|
||||||
{
|
|
||||||
netif_list = netif_default = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a network interface to the list of lwIP netifs.
|
* Add a network interface to the list of lwIP netifs.
|
||||||
*
|
*
|
||||||
|
|
|
@ -55,16 +55,7 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
/** The list of RAW PCBs */
|
/** The list of RAW PCBs */
|
||||||
static struct raw_pcb *raw_pcbs = NULL;
|
static struct raw_pcb *raw_pcbs;
|
||||||
|
|
||||||
/**
|
|
||||||
* Initialize this module
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
raw_init(void)
|
|
||||||
{
|
|
||||||
raw_pcbs = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determine if in incoming IP packet is covered by a RAW PCB
|
* Determine if in incoming IP packet is covered by a RAW PCB
|
||||||
|
|
|
@ -53,7 +53,7 @@ struct nse
|
||||||
/** right child next level */
|
/** right child next level */
|
||||||
u8_t r_nl;
|
u8_t r_nl;
|
||||||
};
|
};
|
||||||
static u8_t node_stack_cnt = 0;
|
static u8_t node_stack_cnt;
|
||||||
static struct nse node_stack[NODE_STACK_SIZE];
|
static struct nse node_stack[NODE_STACK_SIZE];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -56,7 +56,7 @@ const char snmp_publiccommunity[7] = "public";
|
||||||
/* statically allocated buffers for SNMP_CONCURRENT_REQUESTS */
|
/* statically allocated buffers for SNMP_CONCURRENT_REQUESTS */
|
||||||
struct snmp_msg_pstat msg_input_list[SNMP_CONCURRENT_REQUESTS];
|
struct snmp_msg_pstat msg_input_list[SNMP_CONCURRENT_REQUESTS];
|
||||||
/* UDP Protocol Control Block */
|
/* UDP Protocol Control Block */
|
||||||
struct udp_pcb *snmp1_pcb = NULL;
|
struct udp_pcb *snmp1_pcb;
|
||||||
|
|
||||||
static void snmp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *addr, u16_t port);
|
static void snmp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *addr, u16_t port);
|
||||||
static err_t snmp_pdu_header_check(struct pbuf *p, u16_t ofs, u16_t pdu_len, u16_t *ofs_ret, struct snmp_msg_pstat *m_stat);
|
static err_t snmp_pdu_header_check(struct pbuf *p, u16_t ofs, u16_t pdu_len, u16_t *ofs_ret, struct snmp_msg_pstat *m_stat);
|
||||||
|
|
|
@ -48,11 +48,6 @@
|
||||||
|
|
||||||
struct stats_ lwip_stats;
|
struct stats_ lwip_stats;
|
||||||
|
|
||||||
void
|
|
||||||
stats_init(void)
|
|
||||||
{
|
|
||||||
memset(&lwip_stats, 0, sizeof(struct stats_));
|
|
||||||
}
|
|
||||||
#if LWIP_STATS_DISPLAY
|
#if LWIP_STATS_DISPLAY
|
||||||
void
|
void
|
||||||
stats_display_proto(struct stats_proto *proto, char *name)
|
stats_display_proto(struct stats_proto *proto, char *name)
|
||||||
|
|
|
@ -74,25 +74,6 @@ struct tcp_pcb *tcp_tmp_pcb;
|
||||||
static u8_t tcp_timer;
|
static u8_t tcp_timer;
|
||||||
static u16_t tcp_new_port(void);
|
static u16_t tcp_new_port(void);
|
||||||
|
|
||||||
/**
|
|
||||||
* Initializes the TCP layer.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
tcp_init(void)
|
|
||||||
{
|
|
||||||
/* Clear globals. */
|
|
||||||
tcp_bound_pcbs = NULL;
|
|
||||||
tcp_listen_pcbs.listen_pcbs = NULL;
|
|
||||||
tcp_active_pcbs = NULL;
|
|
||||||
tcp_tw_pcbs = NULL;
|
|
||||||
tcp_tmp_pcb = NULL;
|
|
||||||
|
|
||||||
/* initialize timer */
|
|
||||||
tcp_ticks = 0;
|
|
||||||
tcp_timer = 0;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called periodically to dispatch TCP timers.
|
* Called periodically to dispatch TCP timers.
|
||||||
*
|
*
|
||||||
|
|
|
@ -65,16 +65,7 @@
|
||||||
|
|
||||||
/* The list of UDP PCBs */
|
/* The list of UDP PCBs */
|
||||||
/* exported in udp.h (was static) */
|
/* exported in udp.h (was static) */
|
||||||
struct udp_pcb *udp_pcbs = NULL;
|
struct udp_pcb *udp_pcbs;
|
||||||
|
|
||||||
/**
|
|
||||||
* Initialize the UDP module
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
udp_init(void)
|
|
||||||
{
|
|
||||||
udp_pcbs = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Process an incoming UDP datagram.
|
* Process an incoming UDP datagram.
|
||||||
|
|
|
@ -43,7 +43,7 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void ip_init(void);
|
#define ip_init() /* Compatibility define, not init needed. */
|
||||||
struct netif *ip_route(struct ip_addr *dest);
|
struct netif *ip_route(struct ip_addr *dest);
|
||||||
err_t ip_input(struct pbuf *p, struct netif *inp);
|
err_t ip_input(struct pbuf *p, struct netif *inp);
|
||||||
err_t ip_output(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest,
|
err_t ip_output(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest,
|
||||||
|
|
|
@ -192,8 +192,7 @@ extern struct netif *netif_list;
|
||||||
/** The default network interface. */
|
/** The default network interface. */
|
||||||
extern struct netif *netif_default;
|
extern struct netif *netif_default;
|
||||||
|
|
||||||
/* netif_init() must be called first. */
|
#define netif_init() /* Compatibility define, not init needed. */
|
||||||
void netif_init(void);
|
|
||||||
|
|
||||||
struct netif *netif_add(struct netif *netif, struct ip_addr *ipaddr, struct ip_addr *netmask,
|
struct netif *netif_add(struct netif *netif, struct ip_addr *ipaddr, struct ip_addr *netmask,
|
||||||
struct ip_addr *gw,
|
struct ip_addr *gw,
|
||||||
|
|
|
@ -85,7 +85,7 @@ err_t raw_send (struct raw_pcb *pcb, struct pbuf *p);
|
||||||
|
|
||||||
/* The following functions are the lower layer interface to RAW. */
|
/* The following functions are the lower layer interface to RAW. */
|
||||||
u8_t raw_input (struct pbuf *p, struct netif *inp);
|
u8_t raw_input (struct pbuf *p, struct netif *inp);
|
||||||
void raw_init (void);
|
#define raw_init() /* Compatibility define, not init needed. */
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
@ -136,7 +136,7 @@ struct stats_ {
|
||||||
|
|
||||||
extern struct stats_ lwip_stats;
|
extern struct stats_ lwip_stats;
|
||||||
|
|
||||||
void stats_init(void);
|
#define stats_init() /* Compatibility define, not init needed. */
|
||||||
|
|
||||||
#define STATS_INC(x) ++lwip_stats.x
|
#define STATS_INC(x) ++lwip_stats.x
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -52,8 +52,7 @@ struct tcp_pcb;
|
||||||
/* Functions for interfacing with TCP: */
|
/* Functions for interfacing with TCP: */
|
||||||
|
|
||||||
/* Lower layer interface to TCP: */
|
/* Lower layer interface to TCP: */
|
||||||
void tcp_init (void); /* Must be called first to
|
#define tcp_init() /* Compatibility define, not init needed. */
|
||||||
initialize TCP. */
|
|
||||||
void tcp_tmr (void); /* Must be called every
|
void tcp_tmr (void); /* Must be called every
|
||||||
TCP_TMR_INTERVAL
|
TCP_TMR_INTERVAL
|
||||||
ms. (Typically 250 ms). */
|
ms. (Typically 250 ms). */
|
||||||
|
|
|
@ -130,7 +130,8 @@ err_t udp_send (struct udp_pcb *pcb, struct pbuf *p);
|
||||||
|
|
||||||
/* The following functions are the lower layer interface to UDP. */
|
/* The following functions are the lower layer interface to UDP. */
|
||||||
void udp_input (struct pbuf *p, struct netif *inp);
|
void udp_input (struct pbuf *p, struct netif *inp);
|
||||||
void udp_init (void);
|
|
||||||
|
#define udp_init() /* Compatibility define, not init needed. */
|
||||||
|
|
||||||
#if UDP_DEBUG
|
#if UDP_DEBUG
|
||||||
void udp_debug_print(struct udp_hdr *udphdr);
|
void udp_debug_print(struct udp_hdr *udphdr);
|
||||||
|
|
|
@ -141,7 +141,7 @@ struct etharp_q_entry {
|
||||||
};
|
};
|
||||||
#endif /* ARP_QUEUEING */
|
#endif /* ARP_QUEUEING */
|
||||||
|
|
||||||
void etharp_init(void);
|
#define etharp_init() /* Compatibility define, not init needed. */
|
||||||
void etharp_tmr(void);
|
void etharp_tmr(void);
|
||||||
s8_t etharp_find_addr(struct netif *netif, struct ip_addr *ipaddr,
|
s8_t etharp_find_addr(struct netif *netif, struct ip_addr *ipaddr,
|
||||||
struct eth_addr **eth_ret, struct ip_addr **ip_ret);
|
struct eth_addr **eth_ret, struct ip_addr **ip_ret);
|
||||||
|
|
|
@ -103,7 +103,7 @@ const struct eth_addr ethbroadcast = {{0xff,0xff,0xff,0xff,0xff,0xff}};
|
||||||
const struct eth_addr ethzero = {{0,0,0,0,0,0}};
|
const struct eth_addr ethzero = {{0,0,0,0,0,0}};
|
||||||
static struct etharp_entry arp_table[ARP_TABLE_SIZE];
|
static struct etharp_entry arp_table[ARP_TABLE_SIZE];
|
||||||
#if !LWIP_NETIF_HWADDRHINT
|
#if !LWIP_NETIF_HWADDRHINT
|
||||||
static u8_t etharp_cached_entry = 0;
|
static u8_t etharp_cached_entry;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -122,29 +122,15 @@ static s8_t find_entry(struct ip_addr *ipaddr, u8_t flags);
|
||||||
|
|
||||||
static err_t update_arp_entry(struct netif *netif, struct ip_addr *ipaddr, struct eth_addr *ethaddr, u8_t flags);
|
static err_t update_arp_entry(struct netif *netif, struct ip_addr *ipaddr, struct eth_addr *ethaddr, u8_t flags);
|
||||||
|
|
||||||
/**
|
|
||||||
* Initializes ARP module.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
etharp_init(void)
|
|
||||||
{
|
|
||||||
u8_t i;
|
|
||||||
|
|
||||||
LWIP_ASSERT("ARP_TABLE_SIZE < 0x80 (due to s8_t limitation)",
|
/* Some checks, instead of etharp_init(): */
|
||||||
(ARP_TABLE_SIZE < 0x80));
|
#if ETHARP_STATE_EMPTY != 0
|
||||||
|
#error ETHARP_STATE_EMPTY must be 0 to ensure correct initialization value!
|
||||||
/* clear ARP entries */
|
|
||||||
for (i = 0; i < ARP_TABLE_SIZE; ++i) {
|
|
||||||
/* use memset to be safe (intialize all future variables to 0) */
|
|
||||||
memset(&arp_table[i], 0, sizeof(struct etharp_entry));
|
|
||||||
arp_table[i].state = ETHARP_STATE_EMPTY;
|
|
||||||
#if ARP_QUEUEING
|
|
||||||
arp_table[i].q = NULL;
|
|
||||||
#endif
|
#endif
|
||||||
arp_table[i].ctime = 0;
|
#if (LWIP_ARP && (ARP_TABLE_SIZE > 0x7f))
|
||||||
arp_table[i].netif = NULL;
|
#error "If you want to use ARP, ARP_TABLE_SIZE must fit in an s8_t, so, you have to reduce it in your lwipopts.h"
|
||||||
}
|
#endif
|
||||||
}
|
|
||||||
|
|
||||||
#if ARP_QUEUEING
|
#if ARP_QUEUEING
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue
Block a user