64#if LWIP_DEBUG_TIMERNAMES
65#define HANDLER(x) x, #x
70#define LWIP_MAX_TIMEOUT 0x7fffffff
73#define TIME_LESS_THAN(t, compare_to) ( (((u32_t)((t)-(compare_to))) > LWIP_MAX_TIMEOUT) ? 1 : 0 )
81 {TCP_TMR_INTERVAL,
HANDLER(tcp_tmr)},
85 {IP_TMR_INTERVAL,
HANDLER(ip_reass_tmr)},
88 {ARP_TMR_INTERVAL,
HANDLER(etharp_tmr)},
91 {DHCP_COARSE_TIMER_MSECS,
HANDLER(dhcp_coarse_tmr)},
92 {DHCP_FINE_TIMER_MSECS,
HANDLER(dhcp_fine_tmr)},
95 {ACD_TMR_INTERVAL,
HANDLER(acd_tmr)},
98 {IGMP_TMR_INTERVAL,
HANDLER(igmp_tmr)},
102 {DNS_TMR_INTERVAL,
HANDLER(dns_tmr)},
105 {ND6_TMR_INTERVAL,
HANDLER(nd6_tmr)},
107 {IP6_REASS_TMR_INTERVAL,
HANDLER(ip6_reass_tmr)},
110 {MLD6_TMR_INTERVAL,
HANDLER(mld6_tmr)},
113 {DHCP6_TIMER_MSECS,
HANDLER(dhcp6_tmr)},
119#if LWIP_TIMERS && !LWIP_TIMERS_CUSTOM
122static struct sys_timeo *next_timeout;
124static u32_t current_timeout_due_time;
128sys_timeouts_get_next_timeout(
void)
130 return &next_timeout;
136static int tcpip_tcp_timer_active;
144tcpip_tcp_timer(
void *
arg)
151 if (tcp_active_pcbs || tcp_tw_pcbs) {
153 sys_timeout(TCP_TMR_INTERVAL, tcpip_tcp_timer,
NULL);
156 tcpip_tcp_timer_active = 0;
171 if (!tcpip_tcp_timer_active && (tcp_active_pcbs || tcp_tw_pcbs)) {
173 tcpip_tcp_timer_active = 1;
174 sys_timeout(TCP_TMR_INTERVAL, tcpip_tcp_timer,
NULL);
180#if LWIP_DEBUG_TIMERNAMES
181sys_timeout_abs(
u32_t abs_time, sys_timeout_handler
handler,
void *
arg,
const char *handler_name)
199#if LWIP_DEBUG_TIMERNAMES
200 timeout->handler_name = handler_name;
202 (
void *)
timeout, abs_time, handler_name, (
void *)
arg));
205 if (next_timeout ==
NULL) {
235 u32_t next_timeout_time;
238#if LWIP_DEBUG_TIMERNAMES
244 next_timeout_time = (
u32_t)(current_timeout_due_time + cyclic->
interval_ms);
247#if LWIP_DEBUG_TIMERNAMES
255#if LWIP_DEBUG_TIMERNAMES
264void sys_timeouts_init(
void)
285#if LWIP_DEBUG_TIMERNAMES
287sys_timeout_debug(
u32_t msecs, sys_timeout_handler
handler,
void *
arg,
const char *handler_name)
293 u32_t next_timeout_time;
301#if LWIP_DEBUG_TIMERNAMES
302 sys_timeout_abs(next_timeout_time,
handler,
arg, handler_name);
304 sys_timeout_abs(next_timeout_time,
handler,
arg);
317sys_untimeout(sys_timeout_handler
handler,
void *
arg)
319 struct sys_timeo *prev_t, *
t;
323 if (next_timeout ==
NULL) {
327 for (
t = next_timeout, prev_t =
NULL;
t !=
NULL; prev_t =
t,
t =
t->next) {
331 if (prev_t ==
NULL) {
332 next_timeout =
t->next;
334 prev_t->next =
t->next;
352sys_check_timeouts(
void)
362 struct sys_timeo *tmptimeout;
368 tmptimeout = next_timeout;
369 if (tmptimeout ==
NULL) {
378 next_timeout = tmptimeout->next;
380 arg = tmptimeout->arg;
381 current_timeout_due_time = tmptimeout->time;
382#if LWIP_DEBUG_TIMERNAMES
385 tmptimeout->handler_name,
sys_now() - tmptimeout->time,
arg));
404sys_restart_timeouts(
void)
410 if (next_timeout ==
NULL) {
415 base = next_timeout->time;
426sys_timeouts_sleeptime(
void)
432 if (next_timeout ==
NULL) {
#define LWIP_ARRAYSIZE(x)
UINT(* handler)(MSIPACKAGE *)
#define LWIP_DEBUGF(debug, message)
#define LWIP_ASSERT(message, assertion)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define LWIP_UNUSED_ARG(x)
#define LWIP_CONST_CAST(target_type, val)
#define LWIP_ASSERT_CORE_LOCKED()
#define LWIP_TCPIP_THREAD_ALIVE()
void * memp_malloc(memp_t type)
void memp_free(memp_t type, void *mem)
#define PBUF_CHECK_FREE_OOSEQ()
lwip_cyclic_timer_handler handler
void tcp_timer_needed(void)
const int lwip_num_cyclic_timers
#define TIME_LESS_THAN(t, compare_to)
const struct lwip_cyclic_timer lwip_cyclic_timers[]
#define SYS_TIMEOUTS_SLEEPTIME_INFINITE