Revert "kernel_debugger_core: add interrupt-context debugger core"

This reverts commit 25049b34a8.
This commit is contained in:
黄涛 2011-07-30 22:44:36 +08:00
parent 25b9908282
commit b1da95bb09
4 changed files with 0 additions and 128 deletions

View File

@ -163,13 +163,6 @@ config ENCLOSURE_SERVICES
driver (SCSI/ATA) which supports enclosures
or a SCSI enclosure device (SES) to use these services.
config KERNEL_DEBUGGER_CORE
bool "Kernel Debugger Core"
default n
---help---
Generic kernel debugging command processor used by low level
(interrupt context) platform-specific debuggers.
config SGI_XP
tristate "Support communication between SGI SSIs"
depends on NET

View File

@ -15,7 +15,6 @@ obj-$(CONFIG_PHANTOM) += phantom.o
obj-$(CONFIG_ANDROID_PMEM) += pmem.o
obj-$(CONFIG_SGI_IOC4) += ioc4.o
obj-$(CONFIG_ENCLOSURE_SERVICES) += enclosure.o
obj-$(CONFIG_KERNEL_DEBUGGER_CORE) += kernel_debugger.o
obj-$(CONFIG_KGDB_TESTS) += kgdbts.o
obj-$(CONFIG_SGI_XP) += sgi-xp/
obj-$(CONFIG_SGI_GRU) += sgi-gru/

View File

@ -1,79 +0,0 @@
/* drivers/android/kernel_debugger.c
*
* Guts of the kernel debugger.
* Needs something to actually push commands to it.
*
* Copyright (C) 2007-2008 Google, Inc.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#include <linux/ctype.h>
#include <linux/device.h>
#include <linux/sched.h>
#include <linux/spinlock.h>
#include <linux/sysrq.h>
#include <linux/kernel_debugger.h>
#define dprintf(fmt...) (ctxt->printf(ctxt->cookie, fmt))
static void do_ps(struct kdbg_ctxt *ctxt)
{
struct task_struct *g, *p;
unsigned state;
static const char stat_nam[] = "RSDTtZX";
dprintf("pid ppid prio task pc\n");
read_lock(&tasklist_lock);
do_each_thread(g, p) {
state = p->state ? __ffs(p->state) + 1 : 0;
dprintf("%5d %5d %4d ", p->pid, p->parent->pid, p->prio);
dprintf("%-13.13s %c", p->comm,
state >= sizeof(stat_nam) ? '?' : stat_nam[state]);
if (state == TASK_RUNNING)
dprintf(" running\n");
else
dprintf(" %08lx\n", thread_saved_pc(p));
} while_each_thread(g, p);
read_unlock(&tasklist_lock);
}
int log_buf_copy(char *dest, int idx, int len);
extern int do_syslog(int type, char __user *bug, int count);
static void do_sysrq(struct kdbg_ctxt *ctxt, char rq)
{
char buf[128];
int ret;
int idx = 0;
do_syslog(5 /* clear */, NULL, 0);
__handle_sysrq(rq, NULL, 0);
while (1) {
ret = log_buf_copy(buf, idx, sizeof(buf) - 1);
if (ret <= 0)
break;
buf[ret] = 0;
dprintf("%s", buf);
idx += ret;
}
}
int kernel_debugger(struct kdbg_ctxt *ctxt, char *cmd)
{
if (!strcmp(cmd, "ps"))
do_ps(ctxt);
if (!strcmp(cmd, "sysrq"))
do_sysrq(ctxt, 'h');
if (!strncmp(cmd, "sysrq ", 6))
do_sysrq(ctxt, cmd[6]);
return 0;
}

View File

@ -1,41 +0,0 @@
/*
* include/linux/kernel_debugger.h
*
* Copyright (C) 2008 Google, Inc.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _LINUX_KERNEL_DEBUGGER_H_
#define _LINUX_KERNEL_DEBUGGER_H_
struct kdbg_ctxt {
int (*printf)(void *cookie, const char *fmt, ...);
void *cookie;
};
/* kernel_debugger() is called from IRQ context and should
* use the kdbg_ctxt.printf to write output (do NOT call
* printk, do operations not safe from IRQ context, etc).
*
* kdbg_ctxt.printf will return -1 if there is not enough
* buffer space or if you are being aborted. In this case
* you must return as soon as possible.
*
* Return non-zero if more data is available -- if buffer
* space ran and you had to stop, but could print more,
* for example.
*
* Additional calls where cmd is "more" will be made if
* the additional data is desired.
*/
int kernel_debugger(struct kdbg_ctxt *ctxt, char *cmd);
#endif