1 /* 2 * (C) Copyright 2002-2007 3 * Detlev Zundel, dzu@denx.de. 4 * 5 * SPDX-License-Identifier: GPL-2.0+ 6 */ 7 #ifndef _LOGBUFF_H 8 #define _LOGBUFF_H 9 10 #ifdef CONFIG_LOGBUFFER 11 12 #define LOGBUFF_MAGIC 0xc0de4ced /* Forced by code, eh! */ 13 #define LOGBUFF_LEN (16384) /* Must be 16k right now */ 14 #define LOGBUFF_MASK (LOGBUFF_LEN-1) 15 #define LOGBUFF_OVERHEAD (4096) /* Logbuffer overhead for extra info */ 16 #define LOGBUFF_RESERVE (LOGBUFF_LEN+LOGBUFF_OVERHEAD) 17 18 /* The mapping used here has to be the same as in setup_ext_logbuff () 19 in linux/kernel/printk */ 20 21 typedef struct { 22 union { 23 struct { 24 unsigned long tag; 25 unsigned long start; 26 unsigned long con; 27 unsigned long end; 28 unsigned long chars; 29 } v2; 30 struct { 31 unsigned long dummy; 32 unsigned long tag; 33 unsigned long start; 34 unsigned long size; 35 unsigned long chars; 36 } v1; 37 }; 38 unsigned char buf[0]; 39 } logbuff_t; 40 41 int drv_logbuff_init (void); 42 void logbuff_init_ptrs (void); 43 void logbuff_log(char *msg); 44 void logbuff_reset (void); 45 unsigned long logbuffer_base (void); 46 47 #endif /* CONFIG_LOGBUFFER */ 48 49 #endif /* _LOGBUFF_H */ 50