aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAndrea Fioraldi <andreafioraldi@gmail.com>2019-09-02 18:41:27 +0200
committerAndrea Fioraldi <andreafioraldi@gmail.com>2019-09-02 18:41:27 +0200
commite9d968e060f59df634409d2bbe58c279cf6eca00 (patch)
treed3da0cd90c8fd6c093c5f1364786caf62b78a28c /include
parent1652831f1de2fcf13184162503bb764bd610914c (diff)
downloadAFLplusplus-e9d968e060f59df634409d2bbe58c279cf6eca00.tar.gz
afl-fuzz.c completely splitted
Diffstat (limited to 'include')
-rw-r--r--include/afl-fuzz.h70
1 files changed, 67 insertions, 3 deletions
diff --git a/include/afl-fuzz.h b/include/afl-fuzz.h
index 7b380dce..ca22ef75 100644
--- a/include/afl-fuzz.h
+++ b/include/afl-fuzz.h
@@ -80,6 +80,11 @@
# define HAVE_AFFINITY 1
#endif /* __linux__ */
+#ifndef SIMPLE_FILES
+# define CASE_PREFIX "id:"
+#else
+# define CASE_PREFIX "id_"
+#endif /* ^!SIMPLE_FILES */
struct queue_entry {
@@ -455,16 +460,15 @@ extern PyObject *py_functions[PY_FUNC_COUNT];
/**** Prototypes ****/
-/* Python stuff */
+/* Python */
#ifdef USE_PYTHON
-
int init_py();
void finalize_py();
void fuzz_py(char*, size_t, char*, size_t, char**, size_t*);
u32 init_trim_py(char*, size_t);
u32 post_trim_py(char);
void trim_py(char**, size_t*);
-
+u8 trim_case_python(char**, struct queue_entry*, u8*);
#endif
/* Queue */
@@ -476,6 +480,7 @@ void add_to_queue(u8*, u32, u8);
void destroy_queue(void);
void update_bitmap_score(struct queue_entry*);
void cull_queue(void);
+u32 calculate_score(struct queue_entry*);
/* Bitmap */
@@ -494,6 +499,10 @@ void classify_counts(u32*);
#endif
void init_count_class16(void);
void minimize_bits(u8*, u8*);
+#ifndef SIMPLE_FILES
+u8* describe_op(u8);
+#endif
+u8 save_if_interesting(char**, void*, u32, u8);
/* Misc */
@@ -511,6 +520,61 @@ void save_auto(void);
void load_auto(void);
void destroy_extras(void);
+/* Stats */
+
+void write_stats_file(double, double, double);
+void maybe_update_plot_file(double, double);
+void show_stats(void);
+void show_init_stats(void);
+
+/* Run */
+
+u8 run_target(char**, u32);
+void write_to_testcase(void*, u32);
+void write_with_gap(void*, u32, u32, u32);
+u8 calibrate_case(char**, struct queue_entry*, u8*, u32, u8);
+void sync_fuzzers(char**);
+u8 trim_case(char**, struct queue_entry*, u8*);
+u8 common_fuzz_stuff(char**, u8*, u32);
+
+/* Fuzz one */
+
+u8 fuzz_one_original(char**);
+static u8 pilot_fuzzing(char**);
+u8 core_fuzzing(char**);
+void pso_updating(void);
+u8 fuzz_one(char**);
+
+/* Init */
+
+#ifdef HAVE_AFFINITY
+void bind_to_free_cpu(void);
+#endif
+void setup_post(void);
+void setup_custom_mutator(void);
+void read_testcases(void);
+void perform_dry_run(char**);
+void pivot_inputs(void);
+u32 find_start_position(void);
+void find_timeout(void);
+double get_runnable_processes(void);
+void nuke_resume_dir(void);
+void maybe_delete_out_dir(void);
+void setup_dirs_fds(void);
+void setup_cmdline_file(char**);
+void setup_stdio_file(void);
+void check_crash_handling(void);
+void check_cpu_governor(void);
+void get_core_count(void);
+void fix_up_sync(void);
+void check_asan_opts(void);
+void check_binary(u8*);
+void fix_up_banner(u8*);
+void check_if_tty(void);
+void setup_signal_handlers(void);
+char** get_qemu_argv(u8*, char**, int);
+void save_cmdline(u32, char**);
+
/**** Inline routines ****/
/* Generate a random number (from 0 to limit - 1). This may