diff options
author | Andrea Fioraldi <andreafioraldi@gmail.com> | 2019-09-01 20:34:20 +0200 |
---|---|---|
committer | Andrea Fioraldi <andreafioraldi@gmail.com> | 2019-09-01 20:34:20 +0200 |
commit | 3b3df4e3cb0ce3e6ea728b68694b579e15cd00f7 (patch) | |
tree | aae036d19e07c6cb673d30b033e3e45067e48e9c /include/afl-fuzz.h | |
parent | 4f3c417753c7ff40023fcbb2958eb6109ebdd575 (diff) | |
download | afl++-3b3df4e3cb0ce3e6ea728b68694b579e15cd00f7.tar.gz |
afl-fuzz-src bitmap and queue C files
Diffstat (limited to 'include/afl-fuzz.h')
-rw-r--r-- | include/afl-fuzz.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/include/afl-fuzz.h b/include/afl-fuzz.h index f243c7ba..22a78373 100644 --- a/include/afl-fuzz.h +++ b/include/afl-fuzz.h @@ -466,6 +466,34 @@ void trim_py(char**, size_t*); #endif +/* Queue */ + +void mark_as_det_done(struct queue_entry* q); +void mark_as_variable(struct queue_entry* q); +void mark_as_redundant(struct queue_entry* q, u8 state); +void add_to_queue(u8* fname, u32 len, u8 passed_det); +void destroy_queue(void); +void update_bitmap_score(struct queue_entry* q); +void cull_queue(void); + +/* Bitmap */ + +void write_bitmap(void); +void read_bitmap(u8* fname); +u8 has_new_bits(u8* virgin_map); +u32 count_bits(u8* mem); +u32 count_bytes(u8* mem); +u32 count_non_255_bytes(u8* mem); +#ifdef __x86_64__ +void simplify_trace(u64* mem); +void classify_counts(u64* mem); +#else +void simplify_trace(u32* mem); +void classify_counts(u32* mem); +#endif +void init_count_class16(void); +void minimize_bits(u8* dst, u8* src); + /**** Inline routines ****/ /* Generate a random number (from 0 to limit - 1). This may @@ -493,5 +521,43 @@ static inline u32 UR(u32 limit) { #endif } +/* Find first power of two greater or equal to val (assuming val under + 2^63). */ + +static u64 next_p2(u64 val) { + + u64 ret = 1; + while (val > ret) ret <<= 1; + return ret; + +} + +/* Get unix time in milliseconds */ + +static u64 get_cur_time(void) { + + struct timeval tv; + struct timezone tz; + + gettimeofday(&tv, &tz); + + return (tv.tv_sec * 1000ULL) + (tv.tv_usec / 1000); + +} + + +/* Get unix time in microseconds */ + +static u64 get_cur_time_us(void) { + + struct timeval tv; + struct timezone tz; + + gettimeofday(&tv, &tz); + + return (tv.tv_sec * 1000000ULL) + tv.tv_usec; + +} + #endif |