1 /* This test simulator is designed to simulate ux_utility_ APIs for test.  */
2 
3 #ifndef _UX_TEST_UTILITY_SIM_H
4 #define _UX_TEST_UTILITY_SIM_H
5 
6 VOID  ux_test_sim_inp_sequence_set(ULONG* seq, ULONG size);
7 VOID  ux_test_sim_outp_logbuf_set(ULONG* buf, ULONG size);
8 ULONG ux_test_sim_outp_log_get(ULONG seq, ULONG *addr, ULONG *value);
9 ULONG ux_test_sim_outp_log_count(VOID);
10 VOID  ux_test_sim_outp_log_reset(VOID);
11 
12 VOID  ux_test_utility_sim_sem_create_count_reset    (VOID);
13 ULONG ux_test_utility_sim_sem_create_count          (VOID);
14 
15 VOID  ux_test_utility_sim_sem_error_generation_start(ULONG fail_after);
16 VOID  ux_test_utility_sim_sem_error_generation_stop (VOID);
17 
18 VOID  ux_test_utility_sim_sem_get_count_reset    (VOID);
19 ULONG ux_test_utility_sim_sem_get_count          (VOID);
20 
21 VOID  ux_test_utility_sim_sem_get_error_exception_reset(VOID);
22 VOID  ux_test_utility_sim_sem_get_error_exception_add(TX_SEMAPHORE *semaphore, ULONG semaphore_signal);
23 VOID  ux_test_utility_sim_sem_get_error_generation_start(ULONG fail_after);
24 VOID  ux_test_utility_sim_sem_get_error_generation_stop (VOID);
25 
26 VOID  ux_test_utility_sim_mutex_create_count_reset    (VOID);
27 ULONG ux_test_utility_sim_mutex_create_count          (VOID);
28 
29 VOID  ux_test_utility_sim_mutex_error_generation_start(ULONG fail_after);
30 VOID  ux_test_utility_sim_mutex_error_generation_stop (VOID);
31 
32 #if 0 /* Current Mutex ON/OFF has no return code. */
33 VOID  ux_test_utility_sim_mutex_on_count_reset    (VOID);
34 ULONG ux_test_utility_sim_mutex_on_count          (VOID);
35 VOID  ux_test_utility_sim_mutex_on_error_generation_start(ULONG fail_after);
36 VOID  ux_test_utility_sim_mutex_on_error_generation_stop (VOID);
37 #endif
38 
39 VOID  ux_test_utility_sim_event_create_count_reset    (VOID);
40 ULONG ux_test_utility_sim_event_create_count          (VOID);
41 VOID  ux_test_utility_sim_event_error_generation_start(ULONG fail_after);
42 VOID  ux_test_utility_sim_event_error_generation_stop (VOID);
43 
44 VOID  ux_test_utility_sim_thread_create_count_reset    (VOID);
45 ULONG ux_test_utility_sim_thread_create_count          (VOID);
46 VOID  ux_test_utility_sim_thread_error_generation_start(ULONG fail_after);
47 VOID  ux_test_utility_sim_thread_error_generation_stop (VOID);
48 
49 VOID ux_test_utility_sim_mem_allocate_until_align_flagged(ULONG target_fail_level, ULONG memory_alignment, ULONG memory_cache_flag);
50 
51 #define ux_test_utility_sim_mem_allocate_until_flagged(fail_level, cache_flag) ux_test_utility_sim_mem_allocate_until_align_flagged(fail_level, UX_NO_ALIGN, cache_flag)
52 
53 VOID ux_test_utility_sim_mem_free_all_flagged      (ULONG memory_cache_flag);
54 
55 #define ux_test_utility_sim_mem_allocate_until(l) ux_test_utility_sim_mem_allocate_until_flagged((l), UX_REGULAR_MEMORY)
56 #define ux_test_utility_sim_mem_free_all()        ux_test_utility_sim_mem_free_all_flagged(UX_REGULAR_MEMORY)
57 
58 VOID  ux_test_utility_sim_mem_alloc_log_enable(UCHAR enable_disable);
59 VOID  ux_test_utility_sim_mem_alloc_log_lock(VOID);
60 ULONG ux_test_utility_sim_mem_alloc_count(VOID);
61 VOID  ux_test_utility_sim_mem_alloc_count_reset(VOID);
62 VOID  ux_test_utility_sim_mem_alloc_error_generation_start(ULONG fail_after);
63 VOID  ux_test_utility_sim_mem_alloc_error_generation_stop(VOID);
64 UINT  ux_test_utility_sim_mem_alloc_error_generation_active(VOID);
65 
66 VOID ux_test_utility_sim_mem_alloc_fail_all_start(VOID);
67 VOID ux_test_utility_sim_mem_alloc_fail_all_stop(VOID);
68 
69 VOID ux_test_utility_sim_cleanup(VOID);
70 
71 #endif /* _UX_TEST_UTILITY_SIM_H */
72