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_entry * find_first_timer_queue_entry ()
timer_queue_entry * find_first_timer_queue_entry_of_id (u_int32_t id)
timer_queue_entry * find_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_entry * find_first_timer_queue_entry_due (u_int64_t tv)

変数

timer_list aodv_timer
timer_queue_entry * timer_queue = NULL
route_table_entry * g_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.c の 699 行で定義されています。

参照先 timer_queue_entry::next・timer_write_lock()・timer_write_unlock().

void delete_timer_queue_entry_of_id (  u_int32_t  id,
unsigned char  flags
) 
 

timer_queue.c の 648 行で定義されています。

参照先 timer_queue_entry::data・timer_queue_entry::flags・timer_queue_entry::id・timer_queue_entry::next・timer_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.c の 582 行で定義されています。

struct timer_queue_entry* find_first_timer_queue_entry_due (  u_int64_t  tv  ) 
 

timer_queue.c の 774 行で定義されています。

参照先 timer_queue_entry::next・timer_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.c の 596 行で定義されています。

参照先 timer_queue_entry::id・timer_queue_entry::next・timer_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.c の 622 行で定義されています。

参照先 timer_queue_entry::flags・timer_queue_entry::id・timer_queue_entry::next・timer_read_lock()・timer_read_unlock().

参照元 gen_rreq().

int hello_resend (  struct timer_queue_entry *  tmp_entry  ) 
 

timer_queue.c の 256 行で定義されています。

参照先 timer_queue_entry::data・rrep::dst_ip・route_table_entry::dst_seq・rrep::dst_seq・EVENT_HELLO・find_interface_by_ip()・getcurrtime()・HELLO_INTERVAL・insert_timer_queue_entry()・interface_list_entry::last_hello・local_broadcast()・timer_queue_entry::retries・interface_list_entry::route_entry・timer_queue_entry::size・timer_queue_entry::ttl・timer_queue_entry::tv.

参照元 timer_queue_signal().

int init_timer_queue (   ) 
 

timer_queue.c の 311 行で定義されています。

参照先 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.c の 504 行で定義されています。

参照先 timer_queue_entry::data・timer_queue_entry::flags・timer_queue_entry::id・timer_queue_entry::next・timer_queue_entry::retries・timer_queue_entry::size・timer_write_lock()・timer_write_unlock()・timer_queue_entry::ttl・timer_queue_entry::tv.

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

void print_timer_queue (   ) 
 

timer_queue.c の 128 行で定義されています。

参照先 getcurrtime()・timer_queue_entry::id・timer_queue_entry::next・timer_queue_entry::retries・timer_queue_entry::size・timer_queue_entry::ttl・timer_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.c の 72 行で定義されています。

参照先 timer_queue_entry::flags・getcurrtime()・timer_queue_entry::id・inet_ntoa()・timer_queue_entry::next・timer_queue_entry::retries・timer_read_lock()・timer_read_unlock()・timer_queue_entry::ttl・timer_queue_entry::tv.

参照元 init_module().

void remove_first_timer_queue_entry (   ) 
 

timer_queue.c の 748 行で定義されています。

参照先 timer_queue_entry::next・timer_write_lock()・timer_write_unlock().

void timer_cleanup (   ) 
 

timer_queue.c の 298 行で定義されています。

参照先 ACTIVE_ROUTE_TIMEOUT・EVENT_CLEANUP・g_my_ip・getcurrtime()・insert_event_queue_entry()・insert_timer_queue_entry().

参照元 timer_queue_signal().

void timer_neighbor (  struct timer_queue_entry *  timer_entry  ) 
 

timer_queue.c の 226 行で定義されています。

参照先 delete_neighbor_list_entry()・find_neighbor_list_entry()・find_route_table_entry()・getcurrtime()・timer_queue_entry::id・neighbor_list_entry::ip・route_table_entry::lifetime.

参照元 timer_queue_signal().

void timer_queue_signal (   ) 
 

timer_queue.c の 447 行で定義されています。

参照先 EVENT_CLEANUP・EVENT_HELLO・EVENT_NEIGHBOR・EVENT_RREQ・find_first_timer_queue_entry_due()・timer_queue_entry::flags・getcurrtime()・hello_resend()・timer_cleanup()・timer_neighbor()・timer_rreq()・update_timer_queue().

参照元 update_timer_queue().

void timer_read_lock (   ) 
 

timer_queue.c の 43 行で定義されています。

参照先 flags・timer_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.c の 48 行で定義されています。

参照先 flags・timer_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.c の 161 行で定義されています。

参照先 timer_queue_entry::data・rreq::dst_ip・EVENT_RREQ・find_interface_by_ip()・getcurrtime()・insert_flood_id_queue_entry()・insert_timer_queue_entry()・ipq_drop_ip()・local_broadcast()・NET_DIAMETER・NET_TRAVERSAL_TIME・NODE_TRAVERSAL_TIME・timer_queue_entry::retries・route_table_entry::rreq_id・rreq::rreq_id・RREQ_RETRIES・timer_queue_entry::size・rreq::src_ip・timer_queue_entry::ttl・TTL_INCREMENT・TTL_THRESHOLD.

参照元 gen_rreq()・timer_queue_signal().

void timer_write_lock (   ) 
 

timer_queue.c の 53 行で定義されています。

参照先 flags・timer_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.c の 58 行で定義されています。

参照先 flags・timer_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.c の 355 行で定義されています。

参照元 update_timer_queue().

void update_timer_queue (   ) 
 

timer_queue.c の 368 行で定義されています。

参照先 aodv_timer・getcurrtime()・timer_queue_signal()・timer_read_lock()・timer_read_unlock()・timer_queue_entry::tv・tvtojiffies().

参照元 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.c の 34 行で定義されています。

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

unsigned long flags
 

timer_queue.c の 41 行で定義されています。

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

u_int32_t g_broadcast_ip
 

module.c の 48 行で定義されています。

struct route_table_entry* g_my_entry
 

module.c の 46 行で定義されています。

u_int32_t g_my_ip
 

module.c の 47 行で定義されています。

rwlock_t timer_lock = RW_LOCK_UNLOCKED
 

timer_queue.c の 40 行で定義されています。

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

struct timer_queue_entry* timer_queue = NULL
 

timer_queue.c の 36 行で定義されています。


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