TAS
TCP Acceleration as an OS Service
Data Structures | Functions
Utils-timeouts

Timeout Handling. More...

Data Structures

struct  timeout
 
struct  timeout_manager
 

Functions

int util_timeout_init (struct timeout_manager *mgr, void(*handler)(struct timeout *, uint8_t, void *), void *handler_opaque)
 
uint32_t util_timeout_time_us (void)
 
void util_timeout_poll (struct timeout_manager *mgr)
 
void util_timeout_poll_ts (struct timeout_manager *mgr, uint32_t cur_ts)
 
uint32_t util_timeout_next (struct timeout_manager *mgr, uint32_t cur_ts)
 
void util_timeout_arm (struct timeout_manager *mgr, struct timeout *to, uint32_t us, uint8_t type)
 
void util_timeout_arm_ts (struct timeout_manager *mgr, struct timeout *to, uint32_t us, uint8_t type, uint32_t cur_ts)
 
void util_timeout_disarm (struct timeout_manager *mgr, struct timeout *to)
 

Detailed Description

Timeout Handling.

Function Documentation

◆ util_timeout_arm()

void util_timeout_arm ( struct timeout_manager mgr,
struct timeout to,
uint32_t  us,
uint8_t  type 
)

Arm timer for timeout.

Parameters
toTimeout object to use.
us# of microseconds to wait.
typeType of timeout.

Definition at line 110 of file timeout.c.

References util_timeout_arm_ts().

Referenced by arp_request(), arp_timeout(), tcp_close(), and tcp_timeout().

◆ util_timeout_arm_ts()

void util_timeout_arm_ts ( struct timeout_manager mgr,
struct timeout to,
uint32_t  us,
uint8_t  type,
uint32_t  cur_ts 
)

Arm timer for timeout based on provided timestamp.

Definition at line 116 of file timeout.c.

References timeout::next, timeout::prev, timeout::timeout_type, timeout_manager::timeouts_first, and timeout_manager::timeouts_last.

Referenced by util_timeout_arm().

◆ util_timeout_disarm()

void util_timeout_disarm ( struct timeout_manager mgr,
struct timeout to 
)

Disarm timer.

Parameters
toTimeout object to cancel.

Definition at line 155 of file timeout.c.

References timeout_manager::due_first, timeout_manager::due_last, timeout::next, timeout::prev, timeout_manager::timeouts_first, and timeout_manager::timeouts_last.

Referenced by arp_packet(), and tcp_timeout().

◆ util_timeout_init()

int util_timeout_init ( struct timeout_manager mgr,
void(*)(struct timeout *, uint8_t, void *)  handler,
void *  handler_opaque 
)

Initialize timer subsystem.

Returns
0 on success, <0 else

Definition at line 62 of file timeout.c.

References timeout_manager::handler, and timeout_manager::handler_opaque.

◆ util_timeout_poll()

void util_timeout_poll ( struct timeout_manager mgr)

Process timers.

Definition at line 79 of file timeout.c.

References util_timeout_poll_ts().

◆ util_timeout_poll_ts()

void util_timeout_poll_ts ( struct timeout_manager mgr,
uint32_t  cur_ts 
)

◆ util_timeout_time_us()

uint32_t util_timeout_time_us ( void  )

Timestamp in microseconds.

Definition at line 72 of file timeout.c.

Referenced by tcp_init().