/*                                                                          */
/* File Name   : mbdr_dsp_sdc_system_simulation_app.h                        */
/*                                                                          */
/* Written By  : 79556                                                      */
/*                                                                          */
/* versions    :                                                            */
/*+--------+-----------+---------------------------------------------------+*/
/*| Version| Date      | Change content                                    |*/
/*+--------+-----------+---------------------------------------------------+*/
/*|        |10/Apr/2007| creation                                          |*/
/*+--------+-----------+---------------------------------------------------+*/
/*| 0.01.03|30/Oct/2007| mbdr_dsp_sdc_system_simulation_dsp_fine_handler_  |*/
/*|        |           |  scope_init                                       |*/
/*+--------+-----------+---------------------------------------------------+*/
/*| 0.01.67|14/Jan/2009|- rtc_timer_read_by_dsp_timer_user_hook_simulator  |*/
/*+--------+-----------+---------------------------------------------------+*/
/*| 0.01.68|20/Jan/2009|-mbdr_dsp_sdc_system_symulation_tracker_write_memcpy|*/
/*+--------+-----------+---------------------------------------------------+*/
/*| 0.03.00|21/Jul/2009|- Mission end buffer instead of header.closeType   |*/
/*+--------+-----------+---------------------------------------------------+*/
/*| 0.03.01|03/Aug/2009|- Access mission end buffer from spot handler only |*/
/*+--------+-----------+---------------------------------------------------+*/
/*| 0.03.37|25/Feb/2010|- main_init_managers manages synchronization       |*/
/*|        |           |  process of DSP & host(if necessary)              |*/
/*+--------+-----------+---------------------------------------------------+*/
/*| 0.03.41|10/Mrs/2010|- mbdr_dsp_sdc_system_simulation_simulator_        |*/
/*|        |           |              print_mbdr_fpga_image                |*/
/*+--------+-----------+---------------------------------------------------+*/
/*| 0.05.08|25/Dec/2011|- replace programmer name by code                  |*/
/*+--------+-----------+---------------------------------------------------+*/
/*| 0.06.04|04/Apr/2012|- IWR mission interface definitions                |*/
/*|        |           |- spell error simulation/symulation                |*/
/*+--------+-----------+---------------------------------------------------+*/
/*                                                                          */
/* Function    : simple includes for system symulation definitions          */

#include  "windef.h"
#include  "mbdr_dsp_cyclic_buffer.h"

#ifndef  _MBDR_DSP_SDC_SYSTEM_SIMULATION_APP_H
#define  _MBDR_DSP_SDC_SYSTEM_SIMULATION_APP_H

/* simulator mode only hooks */
extern void  mbdr_dsp_sdc_main_loop_user_hook_simulator(void);
extern void  mbdr_dsp_sdc_system_simulation_simulator_initialize_dsp_print_stream(void);
extern ULONG mbdr_dsp_sdc_rtc_timer_read_by_dsp_timer_user_hook_simulator(void);

/* monitor mode only hooks */
extern void mbdr_dsp_sdc_main_loop_user_hook_monitor(void);

/* simulator/monitor common hooks */
extern void mbdr_dsp_sdc_system_simulation_host_wake_up(void);
extern void mbdr_dsp_sdc_system_simulation_host_sync_with_dsp_work_1_0(void);
extern void mbdr_dsp_sdc_system_simulation_host_write_mission_to_dsp(void);
extern void mbdr_dsp_sdc_system_simulation_host_write_cpu_state_number(
                              SHORT pi_next_cpu_state_number);
extern void mbdr_dsp_sdc_system_simulation_host_poll_dsp_state_number(
                              SHORT pi_next_dsp_state_number);


/* initialize fine handler scope variables */
extern void mbdr_dsp_sdc_system_simulation_dsp_fine_handler_scope_init(
               mbdr_dsp_cyclic_buf_hdr_t
                      *pi_fine_handler_hw_hdr_buf_cyclic_buf_header_p,
               mbdr_dsp_cyclic_buf_hdr_t
                      *pi_fine_handler_mission_end_debug_cyclic_buf_hdr_p);

/* recommanded physical layer when when receiver and transmitter are the same */
extern void *mbdr_dsp_sdc_system_simulation_tracker_regular_write_memcpy(
                   void       *dst_p,
                   const void *src_p,
                   USHORT      pi_buf_data_size,
                   USHORT      pi_dummy_memcpy_code);

/* recommanded physical layer when when receiver and transmitter are the same */
extern void *mbdr_dsp_sdc_system_simulation_tracker_iwr_bounce_write_memcpy(
                   void       *dst_p,
                   const void *src_p,
                   USHORT      pi_buf_data_size,
                   USHORT      pi_dummy_memcpy_code);

/* prints mbdr_fpga image as recorded in DSP memory */
extern void mbdr_dsp_sdc_system_simulation_simulator_print_mbdr_fpga_image(void);

#endif
