69 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  *   @file   log.h
 | |
|  *
 | |
|  *   @brief  log header file.
 | |
|  *
 | |
|  *   Here defines some APIs for log purpose.
 | |
|  *
 | |
|  *   Copyright   Novatek Microelectronics Corp. 2018.  All rights reserved.
 | |
|  */
 | |
| 
 | |
| #ifndef _LOG_H_
 | |
| #define _LOG_H_
 | |
| 
 | |
| //#define MEM_LEAK_TRACE
 | |
| #ifdef MEM_LEAK_TRACE
 | |
| #ifndef _LOG_C_
 | |
| #include "dbg_wrapper.h"
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
| #define MAX_STRING_LEN  256
 | |
| 
 | |
| #define IOCTL_PRINTM                0x9969
 | |
| #define IOCTL_PRINTM_WITH_PANIC     0x9970
 | |
| #define IOCTL_SET_HDAL_VERSION      0x9971
 | |
| #define IOCTL_SET_IMPL_VERSION      0x9972
 | |
| 
 | |
| typedef struct {
 | |
| 	unsigned int ddr_id;
 | |
| 	unsigned int pa;
 | |
| 	unsigned int size;
 | |
| 	char filename[50];
 | |
| } dump_info_t;
 | |
| 
 | |
| int register_panic_notifier(int (*func)(int));
 | |
| int register_printout_notifier(int (*func)(int));
 | |
| int register_master_print_notifier(int (*func)(int));
 | |
| int register_hdal_proc_notifier(int (*func)(int));
 | |
| int damnit(char *module);
 | |
| void printm(char *module, const char *fmt, ...);
 | |
| void master_print(const char *fmt, ...);
 | |
| void dumpbuf_pa(dump_info_t *dump_info, unsigned int counts, char *path);
 | |
| void dumpbuf_va(int ddr_id, unsigned int va, unsigned int size, char *filename, char *path);
 | |
| void register_version(char *);
 | |
| int unregister_printout_notifier(int (*func)(int));
 | |
| int unregister_panic_notifier(int (*func)(int));
 | |
| int dumplog(char *module);
 | |
| int get_cpu_state(void);
 | |
| void *get_hdal_proc_dir_entry(void); //have to case to (struct proc_dir_entry *)
 | |
| 
 | |
| #if defined(__FREERTOS)
 | |
| int log_init(void *p_param)  __attribute__ ((section (".init.table.")));
 | |
| int log_exit(void *p_param)  __attribute__ ((section (".exit.table.")));
 | |
| void *log_mmap(void *p_addr, unsigned int len, int prot, int flags, int fd, unsigned int offset);
 | |
| int log_munmap(void *p_addr, unsigned int len);
 | |
| int log_ioctl(int fd, unsigned int cmd, void *p_arg);
 | |
| #endif
 | |
| 
 | |
| #define VG_ASSERT(condition)\
 | |
| 	do{\
 | |
| 		if(unlikely(0 == (condition))){\
 | |
| 			printk("%s %d:assert error!\n", __FUNCTION__, __LINE__);\
 | |
| 			damnit("VG");\
 | |
| 		}\
 | |
| 	}while(0)
 | |
| 
 | |
| 
 | |
| #endif
 | 
