00001 #ifndef TIMER_QUEUE_H
00002 #define TIMER_QUEUE_H
00003
00004
00005 #define TIME_DIV 10
00006
00007
00008 #include <linux/module.h>
00009 #include <linux/kernel.h>
00010 #include <linux/skbuff.h>
00011 #include <linux/in.h>
00012 #include <linux/signal.h>
00013 #include <linux/time.h>
00014 #include <linux/timer.h>
00015 #include <asm/div64.h>
00016 #include <linux/random.h>
00017
00018 #include "packet_queue.h"
00019 #include "route_table.h"
00020 #include "flood_id_queue.h"
00021 #include "utils.h"
00022 #include "neighbor_list.h"
00023 #include "interface_list.h"
00024
00025 extern struct timer_list aodv_timer;
00026
00027
00028
00029
00030 int init_timer_queue();
00031 void update_timer_queue();
00032 void timer_queue_signal();
00033 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);
00034 struct timer_queue_entry *find_first_timer_queue_entry();
00035 struct timer_queue_entry * find_first_timer_queue_entry_of_id(u_int32_t id);
00036 struct timer_queue_entry * find_first_timer_queue_entry_of_id_and_flag(u_int32_t id, unsigned char flags);
00037 void delete_timer_queue_entry_of_id(u_int32_t id, unsigned char flags);
00038 int delete_timer_queue_entry(struct timer_queue_entry *dead_entry);
00039 void remove_first_timer_queue_entry();
00040 struct timer_queue_entry *find_first_timer_queue_entry_due(u_int64_t tv);
00041 int read_timer_queue_proc(char *buffer, char **buffer_location, off_t offset, int buffer_length,int *eof,void *data);
00042
00043 #endif
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064