1 /* 2 * (C) Copyright 2002-2007 3 * Detlev Zundel, dzu@denx.de. 4 * 5 * See file CREDITS for list of people who contributed to this 6 * project. 7 * 8 * This program is free software; you can redistribute it and/or 9 * modify it under the terms of the GNU General Public License as 10 * published by the Free Software Foundation; either version 2 of 11 * the License, or (at your option) any later version. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public License 19 * along with this program; if not, write to the Free Software 20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 21 * MA 02111-1307 USA 22 */ 23 #ifndef _LOGBUFF_H 24 #define _LOGBUFF_H 25 26 #ifdef CONFIG_LOGBUFFER 27 28 #define LOGBUFF_MAGIC 0xc0de4ced /* Forced by code, eh! */ 29 #define LOGBUFF_LEN (16384) /* Must be 16k right now */ 30 #define LOGBUFF_MASK (LOGBUFF_LEN-1) 31 #define LOGBUFF_OVERHEAD (4096) /* Logbuffer overhead for extra info */ 32 #define LOGBUFF_RESERVE (LOGBUFF_LEN+LOGBUFF_OVERHEAD) 33 34 /* The mapping used here has to be the same as in setup_ext_logbuff () 35 in linux/kernel/printk */ 36 37 typedef struct { 38 union { 39 struct { 40 unsigned long tag; 41 unsigned long start; 42 unsigned long con; 43 unsigned long end; 44 unsigned long chars; 45 } v2; 46 struct { 47 unsigned long dummy; 48 unsigned long tag; 49 unsigned long start; 50 unsigned long size; 51 unsigned long chars; 52 } v1; 53 }; 54 unsigned char buf[0]; 55 } logbuff_t; 56 57 int drv_logbuff_init (void); 58 void logbuff_init_ptrs (void); 59 void logbuff_log(char *msg); 60 void logbuff_reset (void); 61 unsigned long logbuffer_base (void); 62 63 #endif /* CONFIG_LOGBUFFER */ 64 65 #endif /* _LOGBUFF_H */ 66