⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dmesg.c

📁 linux内核源码
💻 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);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -