1 /*
2  * Copyright (c) 2024 Nordic Semiconductor ASA
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #ifndef NSI_COMMON_SRC_INCL_NSI_MAIN_SEMIPUBLIC_H
8 #define NSI_COMMON_SRC_INCL_NSI_MAIN_SEMIPUBLIC_H
9 
10 #include <stdint.h>
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
16 /*
17  * These APIs are exposed for special use cases in which a developer needs to
18  * replace the native simulator main loop.
19  * An example of such a case is LLVMs fuzzing support. For this one sets
20  * NSI_NO_MAIN, and provides an specialized main() or hooks into the tooling
21  * provided main().
22  *
23  * These APIs should be used with care, and not be used when the native
24  * simulator main() is built in.
25  *
26  * Check nsi_main.c for more information.
27  */
28 
29 void nsi_init(int argc, char *argv[]);
30 void nsi_exec_for(uint64_t us);
31 
32 #ifdef __cplusplus
33 }
34 #endif
35 
36 #endif /* NSI_COMMON_SRC_INCL_NSI_MAIN_SEMIPUBLIC_H */
37