2 * linux/arch/m68k/tools/amiga/dmesg.c -- Retrieve the kernel messages stored
3 * in Chip RAM with the kernel command
4 * line option `debug=mem'.
6 * © Copyright 1996 by Geert Uytterhoeven <geert@linux-m68k.org>
15 * This file is subject to the terms and conditions of the GNU General Public
16 * License. See the file COPYING in the main directory of the Linux
17 * distribution for more details.
26 #define CHIPMEM_START 0x00000000
27 #define CHIPMEM_END 0x00200000 /* overridden by argv[1] */
29 #define SAVEKMSG_MAGIC1 0x53415645 /* 'SAVE' */
30 #define SAVEKMSG_MAGIC2 0x4B4D5347 /* 'KMSG' */
33 u_long magic1
; /* SAVEKMSG_MAGIC1 */
34 u_long magic2
; /* SAVEKMSG_MAGIC2 */
35 u_long magicptr
; /* address of magic1 */
41 int main(int argc
, char *argv
[])
43 u_long start
= CHIPMEM_START
, end
= CHIPMEM_END
, p
;
45 struct savekmsg
*m
= NULL
;
48 end
= strtoul(argv
[1], NULL
, 0);
49 printf("Searching for SAVEKMSG magic...\n");
50 for (p
= start
; p
<= end
-sizeof(struct savekmsg
); p
+= 4) {
51 m
= (struct savekmsg
*)p
;
52 if ((m
->magic1
== SAVEKMSG_MAGIC1
) && (m
->magic2
== SAVEKMSG_MAGIC2
) &&
59 printf("Not found\n");
61 printf("Found %ld bytes at 0x%08lx\n", m
->size
, (u_long
)&m
->data
);
62 puts(">>>>>>>>>>>>>>>>>>>>");
64 write(1, &m
->data
, m
->size
);
66 puts("<<<<<<<<<<<<<<<<<<<<");