/****************************************************************/
/*			    	  		TMS320C32							*/
/* 	======             BIOS, КЛАИН, КЛВСП              ====== 	*/
/* 	 		   		ЦНИИ СЭТ	  (с) 1998-2001г.				*/
/****************************************************************/
/*   log_to_mem.h
 ****************************************************************
 *					Запись логов в памyть						*
 ****************************************************************/

#ifndef _LOG_TO_MEM
#define _LOG_TO_MEM     

#ifdef __cplusplus
  extern "C" {  
#endif

/* Определениa длa работы логгера */
#define LOG_PAGE_START	0x0200000
#define LOG_PAGE_LEN	0xF000

extern int no_write, never_write; // Флаги, чтобы не писать (если что)

typedef struct
{             
    unsigned long Start;
    unsigned long Finis;
    unsigned long Adres;
    unsigned int Circl;

}	LOG;

extern LOG Log;

/*	Запись словa в памать, где логи лежат	*/
#define Log_to_mem(x)	*(int *)(Log.Adres++) = x

/*	Проверка границы памати дла логов			*/
#define Test_mem_limit(x)	if(Log.Adres > (Log.Finis - x)) Log.Adres = Log.Start

/*	Очистка памати (обнуление)					*/
void clear_mem();

#ifdef __cplusplus
  }
#endif

#endif  /* _LOG_TO_MEM */
