39 lines
747 B
C
39 lines
747 B
C
#ifndef _LOG_TO_MEM
|
|
#define _LOG_TO_MEM
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* Îïðåäåëåíèa äëa ðàáîòû ëîããåðà */
|
|
#define LOG_PAGE_START 0x0200000
|
|
#define LOG_PAGE_LEN 0xFA00
|
|
|
|
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 */
|