timer_queue.c

#include "timer_queue.h"

ソースコードを見る。

関数

void timer_read_lock ()
void timer_read_unlock ()
void timer_write_lock ()
void timer_write_unlock ()
int read_timer_queue_proc (char *buffer, char **buffer_location, off_t offset, int buffer_length, int *eof, void *data)
void print_timer_queue ()
int timer_rreq (struct timer_queue_entry *tmp_entry)
void timer_neighbor (struct timer_queue_entry *timer_entry)
int hello_resend (struct timer_queue_entry *tmp_entry)
void timer_cleanup ()
int init_timer_queue ()
static unsigned long tvtojiffies (struct timeval *value)
void update_timer_queue ()
void timer_queue_signal ()
int insert_timer_queue_entry (u_int64_t msec, void *data, int size, u_int32_t id, u_int16_t retries, u_int8_t ttl, unsigned char flags)
timer_queue_entryfind_first_timer_queue_entry ()
timer_queue_entryfind_first_timer_queue_entry_of_id (u_int32_t id)
timer_queue_entryfind_first_timer_queue_entry_of_id_and_flag (u_int32_t id, unsigned char flags)
void delete_timer_queue_entry_of_id (u_int32_t id, unsigned char flags)
int delete_timer_queue_entry (struct timer_queue_entry *dead_entry)
void remove_first_timer_queue_entry ()
timer_queue_entryfind_first_timer_queue_entry_due (u_int64_t tv)

変数

timer_list aodv_timer
timer_queue_entrytimer_queue = NULL
route_table_entryg_my_entry
u_int32_t g_broadcast_ip
u_int32_t g_my_ip
rwlock_t timer_lock = RW_LOCK_UNLOCKED
unsigned long flags


関数

int delete_timer_queue_entry struct timer_queue_entry dead_entry  ) 
 

timer_queue.c699 行で定義されています。

参照先 timer_queue_entry::nexttimer_write_lock()timer_write_unlock().

void delete_timer_queue_entry_of_id u_int32_t  id,
unsigned char  flags
 

timer_queue.c648 行で定義されています。

参照先 timer_queue_entry::datatimer_queue_entry::flagstimer_queue_entry::idtimer_queue_entry::nexttimer_write_lock()timer_write_unlock()update_timer_queue().

参照元 delete_neighbor_list_entry()recv_hello()recv_rrep().

struct timer_queue_entry* find_first_timer_queue_entry  ) 
 

timer_queue.c582 行で定義されています。

struct timer_queue_entry* find_first_timer_queue_entry_due u_int64_t  tv  ) 
 

timer_queue.c774 行で定義されています。

参照先 timer_queue_entry::nexttimer_read_lock()timer_read_unlock()timer_queue_entry::tv.

参照元 timer_queue_signal().

struct timer_queue_entry* find_first_timer_queue_entry_of_id u_int32_t  id  ) 
 

timer_queue.c596 行で定義されています。

参照先 timer_queue_entry::idtimer_queue_entry::nexttimer_read_lock()timer_read_unlock().

struct timer_queue_entry* find_first_timer_queue_entry_of_id_and_flag u_int32_t  id,
unsigned char  flags
 

timer_queue.c622 行で定義されています。

参照先 timer_queue_entry::flagstimer_queue_entry::idtimer_queue_entry::nexttimer_read_lock()timer_read_unlock().

参照元 gen_rreq().

int hello_resend struct timer_queue_entry tmp_entry  ) 
 

timer_queue.c256 行で定義されています。

参照先 timer_queue_entry::datarrep::dst_iproute_table_entry::dst_seqrrep::dst_seqEVENT_HELLOfind_interface_by_ip()getcurrtime()HELLO_INTERVALinsert_timer_queue_entry()interface_list_entry::last_hellolocal_broadcast()timer_queue_entry::retriesinterface_list_entry::route_entrytimer_queue_entry::sizetimer_queue_entry::ttltimer_queue_entry::tv.

参照元 timer_queue_signal().

int init_timer_queue  ) 
 

timer_queue.c311 行で定義されています。

参照先 aodv_timer.

参照元 init_module().

int insert_timer_queue_entry u_int64_t  msec,
void *  data,
int  size,
u_int32_t  id,
u_int16_t  retries,
u_int8_t  ttl,
unsigned char  flags
 

timer_queue.c504 行で定義されています。

参照先 timer_queue_entry::datatimer_queue_entry::flagstimer_queue_entry::idtimer_queue_entry::nexttimer_queue_entry::retriestimer_queue_entry::sizetimer_write_lock()timer_write_unlock()timer_queue_entry::ttltimer_queue_entry::tv.

参照元 gen_rreq()hello_resend()init_module()recv_hello()start_HELLO()timer_cleanup()timer_rreq().

void print_timer_queue  ) 
 

timer_queue.c128 行で定義されています。

参照先 getcurrtime()timer_queue_entry::idtimer_queue_entry::nexttimer_queue_entry::retriestimer_queue_entry::sizetimer_queue_entry::ttltimer_queue_entry::tv.

int read_timer_queue_proc char *  buffer,
char **  buffer_location,
off_t  offset,
int  buffer_length,
int *  eof,
void *  data
 

timer_queue.c72 行で定義されています。

参照先 timer_queue_entry::flagsgetcurrtime()timer_queue_entry::idinet_ntoa()timer_queue_entry::nexttimer_queue_entry::retriestimer_read_lock()timer_read_unlock()timer_queue_entry::ttltimer_queue_entry::tv.

参照元 init_module().

void remove_first_timer_queue_entry  ) 
 

timer_queue.c748 行で定義されています。

参照先 timer_queue_entry::nexttimer_write_lock()timer_write_unlock().

void timer_cleanup  ) 
 

timer_queue.c298 行で定義されています。

参照先 ACTIVE_ROUTE_TIMEOUTEVENT_CLEANUPg_my_ipgetcurrtime()insert_event_queue_entry()insert_timer_queue_entry().

参照元 timer_queue_signal().

void timer_neighbor struct timer_queue_entry timer_entry  ) 
 

timer_queue.c226 行で定義されています。

参照先 delete_neighbor_list_entry()find_neighbor_list_entry()find_route_table_entry()getcurrtime()timer_queue_entry::idneighbor_list_entry::iproute_table_entry::lifetime.

参照元 timer_queue_signal().

void timer_queue_signal  ) 
 

timer_queue.c447 行で定義されています。

参照先 EVENT_CLEANUPEVENT_HELLOEVENT_NEIGHBOREVENT_RREQfind_first_timer_queue_entry_due()timer_queue_entry::flagsgetcurrtime()hello_resend()timer_cleanup()timer_neighbor()timer_rreq()update_timer_queue().

参照元 update_timer_queue().

void timer_read_lock  ) 
 

timer_queue.c43 行で定義されています。

参照先 flagstimer_lock.

参照元 find_first_timer_queue_entry_due()find_first_timer_queue_entry_of_id()find_first_timer_queue_entry_of_id_and_flag()read_timer_queue_proc()update_timer_queue().

void timer_read_unlock  ) 
 

timer_queue.c48 行で定義されています。

参照先 flagstimer_lock.

参照元 find_first_timer_queue_entry_due()find_first_timer_queue_entry_of_id()find_first_timer_queue_entry_of_id_and_flag()read_timer_queue_proc()update_timer_queue().

int timer_rreq struct timer_queue_entry tmp_entry  ) 
 

timer_queue.c161 行で定義されています。

参照先 timer_queue_entry::datarreq::dst_ipEVENT_RREQfind_interface_by_ip()getcurrtime()insert_flood_id_queue_entry()insert_timer_queue_entry()ipq_drop_ip()local_broadcast()NET_DIAMETERNET_TRAVERSAL_TIMENODE_TRAVERSAL_TIMEtimer_queue_entry::retriesroute_table_entry::rreq_idrreq::rreq_idRREQ_RETRIEStimer_queue_entry::sizerreq::src_iptimer_queue_entry::ttlTTL_INCREMENTTTL_THRESHOLD.

参照元 gen_rreq()timer_queue_signal().

void timer_write_lock  ) 
 

timer_queue.c53 行で定義されています。

参照先 flagstimer_lock.

参照元 delete_timer_queue_entry()delete_timer_queue_entry_of_id()insert_timer_queue_entry()remove_first_timer_queue_entry().

void timer_write_unlock  ) 
 

timer_queue.c58 行で定義されています。

参照先 flagstimer_lock.

参照元 delete_timer_queue_entry()delete_timer_queue_entry_of_id()insert_timer_queue_entry()remove_first_timer_queue_entry().

static unsigned long tvtojiffies struct timeval *  value  )  [static]
 

timer_queue.c355 行で定義されています。

参照元 update_timer_queue().

void update_timer_queue  ) 
 

timer_queue.c368 行で定義されています。

参照先 aodv_timergetcurrtime()timer_queue_signal()timer_read_lock()timer_read_unlock()timer_queue_entry::tvtvtojiffies().

参照元 delete_neighbor_list_entry()delete_timer_queue_entry_of_id()gen_rreq()init_module()recv_hello()start_HELLO()timer_queue_signal().


変数

struct timer_list aodv_timer
 

timer_queue.c34 行で定義されています。

参照元 cleanup_module()init_timer_queue()update_timer_queue().

unsigned long flags
 

timer_queue.c41 行で定義されています。

参照元 timer_read_lock()timer_read_unlock()timer_write_lock()timer_write_unlock().

u_int32_t g_broadcast_ip
 

module.c48 行で定義されています。

struct route_table_entry* g_my_entry
 

module.c46 行で定義されています。

u_int32_t g_my_ip
 

module.c47 行で定義されています。

rwlock_t timer_lock = RW_LOCK_UNLOCKED
 

timer_queue.c40 行で定義されています。

参照元 timer_read_lock()timer_read_unlock()timer_write_lock()timer_write_unlock().

struct timer_queue_entry* timer_queue = NULL
 

timer_queue.c36 行で定義されています。


kernel_aodvmに対してThu Nov 10 18:53:12 2005に生成されました。  doxygen 1.4.5