diff options
author | Igor Lisitsin <igor@emcraft.com> | 2007-04-18 14:55:19 +0400 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2007-06-22 23:25:25 +0200 |
commit | 2dc64451b4c08ffd619372abfdc2506a2e2363b9 (patch) | |
tree | cca4085d5f002307effed1545665ea81c342d25f /include/logbuff.h | |
parent | a11e06965ec91270c51853407ff1261d3c740386 (diff) |
Adapt log buffer code to support Linux 2.6
A new environment variable, "logversion", selects the log buffer
behaviour. If it is not set or set to a value other than 2, then the
old, Linux 2.4.4, behaviour is selected.
Signed-off-by: Igor Lisitsin <igor@emcraft.com>
--
Diffstat (limited to 'include/logbuff.h')
-rw-r--r-- | include/logbuff.h | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/include/logbuff.h b/include/logbuff.h index 3acfc18a782..d4157290538 100644 --- a/include/logbuff.h +++ b/include/logbuff.h @@ -1,5 +1,5 @@ /* - * (C) Copyright 2002 + * (C) Copyright 2002-2007 * Detlev Zundel, dzu@denx.de. * * See file CREDITS for list of people who contributed to this @@ -25,6 +25,7 @@ #ifdef CONFIG_LOGBUFFER +#define LOGBUFF_MAGIC 0xc0de4ced /* Forced by code, eh! */ #define LOGBUFF_LEN (16384) /* Must be 16k right now */ #define LOGBUFF_MASK (LOGBUFF_LEN-1) #define LOGBUFF_OVERHEAD (4096) /* Logbuffer overhead for extra info */ @@ -32,6 +33,29 @@ #define LOGBUFF_INITIALIZED (1<<31) +/* The mapping used here has to be the same as in setup_ext_logbuff () + in linux/kernel/printk */ + +typedef struct { + union { + struct { + unsigned long tag; + unsigned long start; + unsigned long con; + unsigned long end; + unsigned long chars; + } v2; + struct { + unsigned long dummy; + unsigned long tag; + unsigned long start; + unsigned long size; + unsigned long chars; + } v1; + }; + unsigned char buf[0]; +} logbuff_t; + int drv_logbuff_init (void); void logbuff_init_ptrs (void); void logbuff_log(char *msg); |