/*
* linux / arch / m68k / tools / amiga / dmesg . c - - Retrieve the kernel messages stored
* in Chip RAM with the kernel command
* line option ` debug = mem ' .
*
* © Copyright 1996 by Geert Uytterhoeven < geert @ linux - m68k . org >
*
*
* Usage :
*
* dmesg
* dmesg < CHIPMEM_END >
*
*
* This file is subject to the terms and conditions of the GNU General Public
* License . See the file COPYING in the main directory of the Linux
* distribution for more details .
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#define CHIPMEM_START 0 x00000000
#define CHIPMEM_END 0 x00200000 /* overridden by argv[1] */
#define SAVEKMSG_MAGIC1 0 x53415645 /* 'SAVE' */
#define SAVEKMSG_MAGIC2 0 x4B4D5347 /* 'KMSG' */
struct savekmsg {
u_long magic1; /* SAVEKMSG_MAGIC1 */
u_long magic2; /* SAVEKMSG_MAGIC2 */
u_long magicptr; /* address of magic1 */
u_long size;
char data[];
};
int main(int argc, char *argv[])
{
u_long start = CHIPMEM_START, end = CHIPMEM_END, p;
int found = 0 ;
struct savekmsg *m = NULL;
if (argc >= 2 )
end = strtoul(argv[1 ], NULL, 0 );
printf("Searching for SAVEKMSG magic...\n" );
for (p = start; p <= end-sizeof (struct savekmsg); p += 4 ) {
m = (struct savekmsg *)p;
if ((m->magic1 == SAVEKMSG_MAGIC1) && (m->magic2 == SAVEKMSG_MAGIC2) &&
(m->magicptr == p)) {
found = 1 ;
break ;
}
}
if (!found)
printf("Not found\n" );
else {
printf("Found %ld bytes at 0x%08lx\n" , m->size, (u_long)&m->data);
puts(">>>>>>>>>>>>>>>>>>>>" );
fflush(stdout);
write(1 , &m->data, m->size);
fflush(stdout);
puts("<<<<<<<<<<<<<<<<<<<<" );
}
return (0 );
}
Messung V0.5 in Prozent C=90 H=89 G=89
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-09-30)
¤
*© Formatika GbR, Deutschland