/*                                                                          */
/* File Name   : mbdr_dsp_sdc_main_flow_code.h                                */
/*                                                                          */
/* Written By  : 79556                                                      */
/*                                                                          */
/* versions    :                                                            */
/*+--------+-----------+---------------------------------------------------+*/
/*| Version| Date      | Change content                                    |*/
/*+--------+-----------+---------------------------------------------------+*/
/*|        |26/Jul/2007| Creation                                          |*/
/*+--------+-----------+---------------------------------------------------+*/
/*| 0.01.63|22/Dec/2008|- reset/busy                                       |*/
/*|        |            - use fir & dec backgound queues                   |*/
/*+--------+-----------+---------------------------------------------------+*/
/*| 0.01.65|09/Jan/2009|- background FIR support reset busy                |*/
/*+--------+-----------+---------------------------------------------------+*/
/*| 0.02.07|16/Jul/2009|- interface to color code filters phase 1          |*/
/*+--------+-----------+---------------------------------------------------+*/
/*| 0.03.09|17/Sep/2009|- use extra_if_process_handler to advance IF       |*/
/*|        |           |  dynamic                                          |*/
/*+--------+-----------+---------------------------------------------------+*/
/*| 0.03.36|19/Feb/2010|- mbdr_dsp_platform_core_process_proc_ptrs_t       |*/
/*|        |           |        main_loop_init_proc_p                      |*/
/*|        |           |        main_loop_kernel_proc_p                    |*/
/*|        |           |        main_loop_kernel_debug_hook_proc_p         |*/
/*|        |           |- mbdr_dsp_common_config_multi_core.h              |*/
/*+--------+-----------+---------------------------------------------------+*/
/*| 0.05.08|25/Dec/2011|- replace programmer name by code                  |*/
/*+--------+-----------+---------------------------------------------------+*/
/*| 0.09.11|19/Feb/2014|- Improve report HW header buffer load status      |*/
/*|        |           |  to eeprom_read_write, check from main loop       |*/
/*|        |           |  using fine_handler task which frees this buffer  |*/
/*+--------+-----------+---------------------------------------------------+*/
/*                                                                          */
/* Function    : main flow call definitions                                 */
/*                                                                          */
/*                                                                          */
/* Used By     : DSP                                                        */
/*                                                                          */
/*                                                                          */

#include  "windef.h"
#include  "mbdr_dsp_common_config_multi_core.h"

#ifndef __MBDR_DSP_SDC_MAIN_FLOW_CODE_H_
#define __MBDR_DSP_SDC_MAIN_FLOW_CODE_H_


/* main loop init */
extern void mbdr_dsp_sdc_main_loop_init(
           mbdr_dsp_common_config_multi_core_t pi_config_multi_core);

/* main loop kernel */
extern void mbdr_dsp_sdc_main_loop_kernel(
          mbdr_dsp_common_config_multi_core_t pi_config_multi_core);

/* initialize all internal SW flow mangemant memory */
extern void mbdr_dsp_sdc_internal_sw_init(void);

/* user hook, default routine do nothing */
extern void mbdr_dsp_sdc_main_loop_user_hook(void);

/* fine measurement handle */
extern void mbdr_dsp_sdc_fine_handler_manager(
                    LONG pi_max_process_spots_number);


/* manages report load status of hw_header buffer  */
extern void mbdr_dsp_sdc_fine_handler_manage_report_hw_header_status(void);


/* returns recall_f:                                  */
/*                 0 - idle or output buffer full     */
/*                 1 - there is immddiate job waiting */
extern LONG mbdr_dsp_sdc_spot_handler_manager(
                   LONG pi_max_process_spots_number);

/* sw initialization of spot_handler module */
extern void mbdr_dsp_sdc_spot_handler_init(void);

/* sw initialization of FIR  module */
extern void mbdr_dsp_sdc_fir_handler_init(void);

/* sw initialization of fine measurements module */
extern void mbdr_dsp_sdc_fine_handler_init(void);

/* sw initialization of extra_if_process module */
extern void mbdr_dsp_sdc_extra_if_process_handler_init(void);

/* gets that are performed upon problem */
extern void mbdr_dsp_sdc_perform_gets_upon_problem(void);

/* fir/fine handler, mark that all spots are not interesting since  */
/* soft busy                                                        */
extern void mbdr_dsp_sdc_fir_handler_soft_busy_data_update(void);
extern void mbdr_dsp_sdc_fine_handler_soft_busy_data_update(void);




#define MBDR_DSP_SDC_FIR_HANDLER_MAX_LONG_PROCESS 10

#endif
