📄 gen550_kgdb.c
字号:
/* * arch/ppc/syslib/gen550_kgdb.c * * Generic 16550 kgdb support intended to be useful on a variety * of platforms. To enable this support, it is necessary to set * the CONFIG_GEN550 option. Any virtual mapping of the serial * port(s) to be used can be accomplished by setting * ppc_md.early_serial_map to a platform-specific mapping function. * * Adapted from ppc4xx_kgdb.c. * * Author: Matt Porter <mporter@mvista.com> * * 2002-2003 (c) MontaVista Software, Inc. This file is licensed under * the terms of the GNU General Public License version 2. This program * is licensed "as is" without any warranty of any kind, whether express * or implied. */#include <linux/config.h>#include <linux/types.h>#include <linux/kernel.h>#include <asm/machdep.h>extern unsigned long serial_init(int, void *);extern unsigned long serial_getc(unsigned long);extern unsigned long serial_putc(unsigned long, unsigned char);#if defined(CONFIG_KGDB_TTYS0)#define KGDB_PORT 0#elif defined(CONFIG_KGDB_TTYS1)#define KGDB_PORT 1#elif defined(CONFIG_KGDB_TTYS2)#define KGDB_PORT 2#elif defined(CONFIG_KGDB_TTYS3)#define KGDB_PORT 3#else#error "invalid kgdb_tty port"#endifstatic volatile unsigned int kgdb_debugport;void putDebugChar(unsigned char c){ if (kgdb_debugport == 0) kgdb_debugport = serial_init(KGDB_PORT, NULL); serial_putc(kgdb_debugport, c);}int getDebugChar(void){ if (kgdb_debugport == 0) kgdb_debugport = serial_init(KGDB_PORT, NULL); return(serial_getc(kgdb_debugport));}void kgdb_interruptible(int enable){ return;}void putDebugString(char* str){ while (*str != '\0') { putDebugChar(*str); str++; } putDebugChar('\r'); return;}/* * Note: gen550_init() must be called already on the port we are going * to use. */voidgen550_kgdb_map_scc(void){ printk(KERN_DEBUG "kgdb init\n"); kgdb_debugport = serial_init(KGDB_PORT, NULL);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -