1 #ifndef __MT6575_PANICLOG_H__
2 #define __MT6575_PANICLOG_H__
4 #define PANICLOG_BUF_LEN 16384
5 #define PANICLOG_HEADER_SIZE 512
6 #define PANICLOG_SECTION_SIZE (PANICLOG_BUF_LEN) + (PANICLOG_HEADER_SIZE)
10 #define PANICLOG_VALID_PATTERN 0x90EFABCD
11 #define PANICLOG_BACKTRACE_NUM 4
12 #define PANICLOG_PROCESS_NAME_LENGTH 256
15 int valid
; /* log is valid if valid == PANICLOG_VALID_PATTERN */
19 unsigned long bt_where
[PANICLOG_BACKTRACE_NUM
];
20 unsigned long bt_from
[PANICLOG_BACKTRACE_NUM
];
21 char process_path
[PANICLOG_PROCESS_NAME_LENGTH
];
23 char buf
[PANICLOG_BUF_LEN
];
28 extern struct paniclog
*paniclog
;
30 #ifdef CONFIG_PANICLOG
32 /* Begin starting panic record */
33 void paniclog_start(void);
35 void paniclog_end(void);
37 /* Record the task acenstor into current paniclog */
38 void paniclog_ptree_store(struct task_struct
*tsk
);
40 /* Record stack trace info into current paniclog */
41 void paniclog_stack_store(unsigned long where
, unsigned long from
);
43 /* Check if panic log available */
44 int paniclog_is_available(void);
46 /* Dump current paniclog to kernel log buffer */
47 void paniclog_dump(void);
49 /* Copy the current panic log and clear the panic log before return */
50 void paniclog_copy_and_clear(struct paniclog
*log
);
54 #define paniclog_start(a)
56 #define paniclog_end()
58 #define paniclog_ptree_store(tsk)
60 #define paniclog_stack_store(where, from)
62 #define paniclog_is_available() 0
64 #define paniclog_copy_and_clear(log)
66 #endif /* CONFIG_PANALOG_LOG */
68 #endif /* __ASSEMBLY */
70 #endif /* !__MT6575_PANICLOG_H__ */