cregit-Linux how code gets into the kernel

Release 4.14 arch/m68k/tools/amiga/dmesg.c

/*
 *  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	0x00000000

#define CHIPMEM_END	0x00200000	
/* overridden by argv[1] */


#define SAVEKMSG_MAGIC1	0x53415645	
/* 'SAVE' */

#define SAVEKMSG_MAGIC2	0x4B4D5347	
/* 'KMSG' */


struct savekmsg {
    
u_long magic1;	/* SAVEKMSG_MAGIC1 */
    
u_long magic2;	/* SAVEKMSG_MAGIC2 */
    
u_long magicptr;	/* address of magic1 */
    
u_long size;
    
char data[0];
};



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); }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)194100.00%1100.00%
Total194100.00%1100.00%


Overall Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)24899.60%150.00%
Jan Engelhardt10.40%150.00%
Total249100.00%2100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.