Robert Swiecki | f827c98 | 2017-06-01 16:02:39 +0200 | [diff] [blame] | 1 | #ifdef __cplusplus |
| 2 | extern "C" { |
| 3 | #endif |
| 4 | |
Robert Swiecki | 74c23a8 | 2017-06-01 15:58:45 +0200 | [diff] [blame] | 5 | /* |
| 6 | * buf: input fuzzing data |
| 7 | * len: size of the 'buf' data |
| 8 | * |
| 9 | * Return value: should return 0 |
| 10 | */ |
Robert Swiecki | cabf6e7 | 2017-06-01 16:12:23 +0200 | [diff] [blame] | 11 | int LLVMFuzzerTestOneInput(const uint8_t * buf, size_t len); |
Robert Swiecki | 74c23a8 | 2017-06-01 15:58:45 +0200 | [diff] [blame] | 12 | |
| 13 | /* |
| 14 | * argc: ptr to main's argc |
| 15 | * argv: ptr to main's argv |
| 16 | * |
| 17 | * Return value: ignored |
| 18 | */ |
Robert Swiecki | f827c98 | 2017-06-01 16:02:39 +0200 | [diff] [blame] | 19 | int LLVMFuzzerInitialize(int *argc, char ***argv); |
Robert Swiecki | 74c23a8 | 2017-06-01 15:58:45 +0200 | [diff] [blame] | 20 | |
| 21 | /* |
| 22 | * |
| 23 | * An alternative for LLVMFuzzerTestOneInput() |
| 24 | * |
| 25 | * buf_ptr: will be set to input fuzzing data |
| 26 | * len_ptr: will be set to the size of the input fuzzing data |
| 27 | */ |
Robert Swiecki | cabf6e7 | 2017-06-01 16:12:23 +0200 | [diff] [blame] | 28 | void HF_ITER(const uint8_t ** buf_ptr, size_t * len_ptr); |
Robert Swiecki | f827c98 | 2017-06-01 16:02:39 +0200 | [diff] [blame] | 29 | |
Robert Swiecki | 0061b22 | 2017-06-01 16:49:35 +0200 | [diff] [blame^] | 30 | #if defined(__linux__) |
Robert Swiecki | 649b89d | 2017-06-01 16:42:49 +0200 | [diff] [blame] | 31 | |
| 32 | /* |
| 33 | * Enter Linux namespaces |
| 34 | * |
| 35 | * cloneFlags: see 'man unshare' |
| 36 | */ |
| 37 | bool linuxEnterNs(uintptr_t cloneFlags); |
| 38 | /* |
| 39 | * Bring network interface up |
| 40 | * |
| 41 | * ifacename: name of the interface, typically "lo" |
| 42 | */ |
| 43 | bool linuxIfaceUp(const char *ifacename); |
| 44 | /* |
| 45 | * Mount tmpfs over a mount point |
| 46 | * |
| 47 | * dst: mount point for tmfs |
| 48 | */ |
| 49 | bool linuxMountTmpfs(const char *dst); |
| 50 | |
Robert Swiecki | 0061b22 | 2017-06-01 16:49:35 +0200 | [diff] [blame^] | 51 | #endif /* defined(__linux__) */ |
Robert Swiecki | 649b89d | 2017-06-01 16:42:49 +0200 | [diff] [blame] | 52 | |
Robert Swiecki | f827c98 | 2017-06-01 16:02:39 +0200 | [diff] [blame] | 53 | #ifdef __cplusplus |
| 54 | } /* extern "C" */ |
| 55 | #endif |