Skip to content

Commit a86bd6b

Browse files
authored
rename symbols to fit with rust 2024. (#104)
reformat code with more typedefs.
1 parent 59ce9da commit a86bd6b

File tree

14 files changed

+174
-169
lines changed

14 files changed

+174
-169
lines changed

accel/tcg/translate-all.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ static int setjmp_gen_code(CPUArchState *env, TranslationBlock *tb,
285285

286286
//// --- Begin LibAFL code ---
287287

288-
libafl_qemu_hook_block_run(pc);
288+
libafl_qemu_hook_block_pre_run(pc);
289289

290290
//// --- End LibAFL code ---
291291

@@ -717,7 +717,7 @@ TranslationBlock *tb_gen_code(CPUState *cpu,
717717

718718
//// --- Begin LibAFL code ---
719719

720-
libafl_qemu_hook_block_post_gen(tb, pc);
720+
libafl_qemu_hook_block_post_run(tb, pc);
721721

722722
//// --- End LibAFL code ---
723723

include/libafl/hook.h

-1
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,5 @@
5454

5555
// TODO: cleanup this
5656
extern tcg_target_ulong libafl_gen_cur_pc;
57-
extern size_t libafl_qemu_hooks_num;
5857

5958
void libafl_tcg_gen_asan(TCGTemp* addr, size_t size);

include/libafl/hooks/tcg/backdoor.h

+4-10
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
#include "libafl/exit.h"
1111
#include "libafl/hook.h"
1212

13-
struct libafl_backdoor_hook {
14-
// functions
15-
void (*gen)(uint64_t data, CPUArchState* cpu, target_ulong pc);
13+
typedef void (*libafl_backdoor_exec_cb)(uint64_t data, CPUArchState* cpu,
14+
target_ulong pc);
1615

16+
struct libafl_backdoor_hook {
1717
// data
1818
uint64_t data;
1919
size_t num;
@@ -25,13 +25,7 @@ struct libafl_backdoor_hook {
2525
struct libafl_backdoor_hook* next;
2626
};
2727

28-
extern struct libafl_backdoor_hook* libafl_backdoor_hooks;
29-
30-
void libafl_gen_backdoor(target_ulong pc);
31-
32-
size_t libafl_add_backdoor_hook(void (*exec)(uint64_t data, CPUArchState* cpu,
33-
target_ulong pc),
34-
uint64_t data);
28+
size_t libafl_add_backdoor_hook(libafl_backdoor_exec_cb exec_cb, uint64_t data);
3529

3630
int libafl_qemu_remove_backdoor_hook(size_t num, int invalidate);
3731

include/libafl/hooks/tcg/block.h

+19-12
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,20 @@
1010
#include "libafl/exit.h"
1111
#include "libafl/hook.h"
1212

13+
typedef uint64_t (*libafl_block_pre_gen_cb)(uint64_t data, target_ulong pc);
14+
typedef void (*libafl_block_post_gen_cb)(uint64_t data, target_ulong pc,
15+
target_ulong block_length);
16+
17+
typedef void (*libafl_block_exec_cb)(uint64_t data, uint64_t id);
18+
19+
typedef size_t (*libafl_block_jit_cb)(uint64_t data, uint64_t id);
20+
1321
struct libafl_block_hook {
1422
// functions
15-
uint64_t (*gen)(uint64_t data, target_ulong pc);
16-
void (*post_gen)(uint64_t data, target_ulong pc, target_ulong block_length);
23+
libafl_block_pre_gen_cb pre_gen_cb;
24+
libafl_block_post_gen_cb post_gen_cb;
1725

18-
size_t (*jit)(uint64_t data, uint64_t id); // optional opt
26+
libafl_block_jit_cb jit_cb; // optional opt
1927

2028
// data
2129
uint64_t data;
@@ -28,16 +36,15 @@ struct libafl_block_hook {
2836
struct libafl_block_hook* next;
2937
};
3038

31-
void libafl_qemu_hook_block_post_gen(TranslationBlock* tb, vaddr pc);
32-
void libafl_qemu_hook_block_run(target_ulong pc);
39+
size_t libafl_add_block_hook(libafl_block_pre_gen_cb pre_gen_cb,
40+
libafl_block_post_gen_cb post_gen_cb,
41+
libafl_block_exec_cb exec_cb, uint64_t data);
3342

3443
bool libafl_qemu_block_hook_set_jit(
3544
size_t num,
36-
size_t (*jit)(uint64_t,
37-
uint64_t)); // no param names to avoid to be marked as safe
45+
libafl_block_jit_cb jit_cb); // no param names to avoid to be marked as safe
46+
3847
int libafl_qemu_remove_block_hook(size_t num, int invalidate);
39-
size_t libafl_add_block_hook(uint64_t (*gen)(uint64_t data, target_ulong pc),
40-
void (*post_gen)(uint64_t data, target_ulong pc,
41-
target_ulong block_length),
42-
void (*exec)(uint64_t data, uint64_t id),
43-
uint64_t data);
48+
49+
void libafl_qemu_hook_block_pre_run(target_ulong pc);
50+
void libafl_qemu_hook_block_post_run(TranslationBlock* tb, vaddr pc);

include/libafl/hooks/tcg/cmp.h

+18-8
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,20 @@
1010
#include "libafl/exit.h"
1111
#include "libafl/hook.h"
1212

13+
typedef uint64_t (*libafl_cmp_gen_cb)(uint64_t data, target_ulong pc,
14+
size_t size);
15+
typedef void (*libafl_cmp_exec1_cb)(uint64_t data, uint64_t id, uint8_t v0,
16+
uint8_t v1);
17+
typedef void (*libafl_cmp_exec2_cb)(uint64_t data, uint64_t id, uint16_t v0,
18+
uint16_t v1);
19+
typedef void (*libafl_cmp_exec4_cb)(uint64_t data, uint64_t id, uint32_t v0,
20+
uint32_t v1);
21+
typedef void (*libafl_cmp_exec8_cb)(uint64_t data, uint64_t id, uint64_t v0,
22+
uint64_t v1);
23+
1324
struct libafl_cmp_hook {
1425
// functions
15-
uint64_t (*gen)(uint64_t data, target_ulong pc, size_t size);
26+
libafl_cmp_gen_cb gen_cb;
1627

1728
// data
1829
uint64_t data;
@@ -29,11 +40,10 @@ struct libafl_cmp_hook {
2940
};
3041

3142
void libafl_gen_cmp(target_ulong pc, TCGv op0, TCGv op1, MemOp ot);
32-
size_t libafl_add_cmp_hook(
33-
uint64_t (*gen)(uint64_t data, target_ulong pc, size_t size),
34-
void (*exec1)(uint64_t data, uint64_t id, uint8_t v0, uint8_t v1),
35-
void (*exec2)(uint64_t data, uint64_t id, uint16_t v0, uint16_t v1),
36-
void (*exec4)(uint64_t data, uint64_t id, uint32_t v0, uint32_t v1),
37-
void (*exec8)(uint64_t data, uint64_t id, uint64_t v0, uint64_t v1),
38-
uint64_t data);
43+
size_t libafl_add_cmp_hook(libafl_cmp_gen_cb gen_cb,
44+
libafl_cmp_exec1_cb exec1_cb,
45+
libafl_cmp_exec2_cb exec2_cb,
46+
libafl_cmp_exec4_cb exec4_cb,
47+
libafl_cmp_exec8_cb exec8_cb, uint64_t data);
48+
3949
int libafl_qemu_remove_cmp_hook(size_t num, int invalidate);

include/libafl/hooks/tcg/edge.h

+10-8
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,15 @@
99
#include "libafl/exit.h"
1010
#include "libafl/hook.h"
1111

12+
typedef uint64_t (*libafl_edge_gen_cb)(uint64_t data, target_ulong src,
13+
target_ulong dst);
14+
typedef void (*libafl_edge_exec_cb)(uint64_t data, uint64_t id);
15+
typedef size_t (*libafl_edge_jit_cb)(uint64_t data, uint64_t id);
16+
1217
struct libafl_edge_hook {
1318
// functions
14-
uint64_t (*gen)(uint64_t data, target_ulong src, target_ulong dst);
15-
size_t (*jit)(uint64_t data, uint64_t id); // optional opt
19+
libafl_edge_gen_cb gen_cb;
20+
libafl_edge_jit_cb jit_cb; // optional opt
1621

1722
// data
1823
uint64_t data;
@@ -31,15 +36,12 @@ TranslationBlock* libafl_gen_edge(CPUState* cpu, target_ulong src_block,
3136
target_ulong cs_base, uint32_t flags,
3237
int cflags);
3338

34-
size_t libafl_add_edge_hook(uint64_t (*gen)(uint64_t data, target_ulong src,
35-
target_ulong dst),
36-
void (*exec)(uint64_t data, uint64_t id),
37-
uint64_t data);
39+
size_t libafl_add_edge_hook(libafl_edge_gen_cb gen_cb,
40+
libafl_edge_exec_cb exec_cb, uint64_t data);
3841

3942
bool libafl_qemu_edge_hook_set_jit(
4043
size_t num,
41-
size_t (*jit)(uint64_t,
42-
uint64_t)); // no param names to avoid to be marked as safe
44+
libafl_edge_jit_cb jit_cb); // no param names to avoid to be marked as safe
4345

4446
int libafl_qemu_remove_edge_hook(size_t num, int invalidate);
4547

include/libafl/hooks/tcg/read_write.h

+13-10
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ typedef void (*libafl_rw_execN_cb)(uint64_t data, uint64_t id, target_ulong pc,
2121

2222
struct libafl_rw_hook {
2323
// functions
24-
libafl_rw_gen_cb gen;
24+
libafl_rw_gen_cb gen_cb;
2525

2626
// data
2727
uint64_t data;
@@ -41,15 +41,18 @@ struct libafl_rw_hook {
4141
void libafl_gen_read(TCGTemp* pc, TCGTemp* addr, MemOpIdx oi);
4242
void libafl_gen_write(TCGTemp* pc, TCGTemp* addr, MemOpIdx oi);
4343

44-
size_t libafl_add_read_hook(libafl_rw_gen_cb gen, libafl_rw_exec_cb exec1,
45-
libafl_rw_exec_cb exec2, libafl_rw_exec_cb exec4,
46-
libafl_rw_exec_cb exec8, libafl_rw_execN_cb execN,
47-
uint64_t data);
48-
49-
size_t libafl_add_write_hook(libafl_rw_gen_cb gen, libafl_rw_exec_cb exec1,
50-
libafl_rw_exec_cb exec2, libafl_rw_exec_cb exec4,
51-
libafl_rw_exec_cb exec8, libafl_rw_execN_cb execN,
52-
uint64_t data);
44+
size_t libafl_add_read_hook(libafl_rw_gen_cb gen_cb, libafl_rw_exec_cb exec1_cb,
45+
libafl_rw_exec_cb exec2_cb,
46+
libafl_rw_exec_cb exec4_cb,
47+
libafl_rw_exec_cb exec8_cb,
48+
libafl_rw_execN_cb execN_cb, uint64_t data);
49+
50+
size_t libafl_add_write_hook(libafl_rw_gen_cb gen_cb,
51+
libafl_rw_exec_cb exec1_cb,
52+
libafl_rw_exec_cb exec2_cb,
53+
libafl_rw_exec_cb exec4_cb,
54+
libafl_rw_exec_cb exec8_cb,
55+
libafl_rw_execN_cb execN_cb, uint64_t data);
5356

5457
int libafl_qemu_remove_read_hook(size_t num, int invalidate);
5558
int libafl_qemu_remove_write_hook(size_t num, int invalidate);

libafl/hooks/tcg/backdoor.c

+4-6
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#include "libafl/tcg.h"
22
#include "libafl/hooks/tcg/backdoor.h"
33

4-
struct libafl_backdoor_hook* libafl_backdoor_hooks;
5-
size_t libafl_backdoor_hooks_num = 0;
4+
static struct libafl_backdoor_hook* libafl_backdoor_hooks;
5+
static size_t libafl_backdoor_hooks_num = 0;
66

77
static TCGHelperInfo libafl_exec_backdoor_hook_info = {
88
.func = NULL,
@@ -13,9 +13,7 @@ static TCGHelperInfo libafl_exec_backdoor_hook_info = {
1313

1414
GEN_REMOVE_HOOK(backdoor)
1515

16-
size_t libafl_add_backdoor_hook(void (*exec)(uint64_t data, CPUArchState* cpu,
17-
target_ulong pc),
18-
uint64_t data)
16+
size_t libafl_add_backdoor_hook(libafl_backdoor_exec_cb exec_cb, uint64_t data)
1917
{
2018
struct libafl_backdoor_hook* hook =
2119
calloc(sizeof(struct libafl_backdoor_hook), 1);
@@ -27,7 +25,7 @@ size_t libafl_add_backdoor_hook(void (*exec)(uint64_t data, CPUArchState* cpu,
2725

2826
memcpy(&hook->helper_info, &libafl_exec_backdoor_hook_info,
2927
sizeof(TCGHelperInfo));
30-
hook->helper_info.func = exec;
28+
hook->helper_info.func = exec_cb;
3129

3230
return hook->num;
3331
}

libafl/hooks/tcg/block.c

+21-25
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#include "libafl/tcg.h"
22
#include "libafl/hooks/tcg/block.h"
33

4-
struct libafl_block_hook* libafl_block_hooks;
5-
size_t libafl_block_hooks_num = 0;
4+
static struct libafl_block_hook* libafl_block_hooks;
5+
static size_t libafl_block_hooks_num = 0;
66

77
static TCGHelperInfo libafl_exec_block_hook_info = {
88
.func = NULL,
@@ -13,68 +13,64 @@ static TCGHelperInfo libafl_exec_block_hook_info = {
1313

1414
GEN_REMOVE_HOOK(block)
1515

16-
size_t libafl_add_block_hook(uint64_t (*gen)(uint64_t data, target_ulong pc),
17-
void (*post_gen)(uint64_t data, target_ulong pc,
18-
target_ulong block_length),
19-
void (*exec)(uint64_t data, uint64_t id),
20-
uint64_t data)
16+
size_t libafl_add_block_hook(libafl_block_pre_gen_cb pre_gen_cb,
17+
libafl_block_post_gen_cb post_gen_cb,
18+
libafl_block_exec_cb exec_cb, uint64_t data)
2119
{
2220
CPUState* cpu;
2321
CPU_FOREACH(cpu) { tb_flush(cpu); }
2422

2523
struct libafl_block_hook* hook =
2624
calloc(sizeof(struct libafl_block_hook), 1);
27-
hook->gen = gen;
28-
hook->post_gen = post_gen;
29-
// hook->exec = exec;
25+
hook->pre_gen_cb = pre_gen_cb;
26+
hook->post_gen_cb = post_gen_cb;
3027
hook->data = data;
3128
hook->num = libafl_block_hooks_num++;
3229
hook->next = libafl_block_hooks;
3330
libafl_block_hooks = hook;
3431

35-
if (exec) {
32+
if (exec_cb) {
3633
memcpy(&hook->helper_info, &libafl_exec_block_hook_info,
3734
sizeof(TCGHelperInfo));
38-
hook->helper_info.func = exec;
35+
hook->helper_info.func = exec_cb;
3936
}
4037

4138
return hook->num;
4239
}
4340

44-
bool libafl_qemu_block_hook_set_jit(size_t num,
45-
size_t (*jit)(uint64_t data, uint64_t id))
41+
bool libafl_qemu_block_hook_set_jit(size_t num, libafl_block_jit_cb jit_cb)
4642
{
4743
struct libafl_block_hook* hk = libafl_block_hooks;
4844
while (hk) {
4945
if (hk->num == num) {
50-
hk->jit = jit;
46+
hk->jit_cb = jit_cb;
5147
return true;
52-
} else {
53-
hk = hk->next;
5448
}
49+
50+
hk = hk->next;
5551
}
5652
return false;
5753
}
5854

59-
void libafl_qemu_hook_block_post_gen(TranslationBlock* tb, vaddr pc)
55+
void libafl_qemu_hook_block_post_run(TranslationBlock* tb, vaddr pc)
6056
{
6157
struct libafl_block_hook* hook = libafl_block_hooks;
6258
while (hook) {
63-
if (hook->post_gen)
64-
hook->post_gen(hook->data, pc, tb->size);
59+
if (hook->post_gen_cb)
60+
hook->post_gen_cb(hook->data, pc, tb->size);
6561
hook = hook->next;
6662
}
6763
}
6864

69-
void libafl_qemu_hook_block_run(target_ulong pc)
65+
void libafl_qemu_hook_block_pre_run(target_ulong pc)
7066
{
7167
struct libafl_block_hook* hook = libafl_block_hooks;
7268

7369
while (hook) {
7470
uint64_t cur_id = 0;
7571

76-
if (hook->gen) {
77-
cur_id = hook->gen(hook->data, pc);
72+
if (hook->pre_gen_cb) {
73+
cur_id = hook->pre_gen_cb(hook->data, pc);
7874
}
7975

8076
if (cur_id != (uint64_t)-1 && hook->helper_info.func) {
@@ -87,8 +83,8 @@ void libafl_qemu_hook_block_run(target_ulong pc)
8783
tcg_temp_free_i64(tmp1);
8884
}
8985

90-
if (cur_id != (uint64_t)-1 && hook->jit) {
91-
hook->jit(hook->data, cur_id);
86+
if (cur_id != (uint64_t)-1 && hook->jit_cb) {
87+
hook->jit_cb(hook->data, cur_id);
9288
}
9389

9490
hook = hook->next;

0 commit comments

Comments
 (0)