Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753813AbYH2GV3 (ORCPT ); Fri, 29 Aug 2008 02:21:29 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753223AbYH2GPy (ORCPT ); Fri, 29 Aug 2008 02:15:54 -0400 Received: from 166-70-238-42.ip.xmission.com ([166.70.238.42]:59521 "EHLO ns1.wolfmountaingroup.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751771AbYH2GP3 (ORCPT ); Fri, 29 Aug 2008 02:15:29 -0400 Date: Thu, 28 Aug 2008 23:47:42 -0600 From: jmerkey@wolfmountaingroup.com Message-Id: <200808290547.m7T5lgZq016134@wolfmountaingroup.com> To: linux-kernel@vger.kernel.org Subject: [PATCH 2.6.27-rc5 19/29] mdb: add mdb-os.h operating system specific functions Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 5450 Lines: 119 add mdb-os.h operating system specific functions Signed-off-by: Jeffrey Vernon Merkey (jmerkey@wolfmountaingroup.com) --- a/debug/mdb/mdb-os.h 1969-12-31 17:00:00.000000000 -0700 +++ b/debug/mdb/mdb-os.h 2008-08-28 14:20:04.000000000 -0600 @@ -0,0 +1,106 @@ + +/*************************************************************************** +* +* Copyright (c) 2008 Jeff V. Merkey All Rights Reserved. +* 1058 East 50 South +* Lindon, Utah 84042 +* jmerkey@wolfmountaingroup.com +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by the +* Free Software Foundation, version 2. +* +* 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. +* +* You are free to modify and re-distribute this program in accordance +* with the terms specified in the GNU Public License. The copyright +* contained in this code is required to be present in any derivative +* works and you are required to provide the source code for this +* program as part of any commercial or non-commercial distribution. +* You are required to respect the rights of the Copyright holders +* named within this code. +* +* jmerkey@wolfmountaingroup.com is the official maintainer of +* this code. You are encouraged to report any bugs, problems, fixes, +* suggestions, and comments about this software. +* +* AUTHOR : Jeff V. Merkey +* DESCRIP : Merkey's Linux Debugger +* +***************************************************************************/ + +#ifndef _MDB_OS_H +#define _MDB_OS_H + +#define MAX_SYMBOL_LEN KSYM_NAME_LEN+1 + +extern atomic_t inmdb; +extern int pause_mode; +extern unsigned char *mdb_oops; +extern unsigned char *last_mdb_oops; +extern unsigned char symbuf[MAX_PROCESSORS][MAX_SYMBOL_LEN]; +extern unsigned char modbuf[MAX_PROCESSORS][MAX_SYMBOL_LEN]; +extern unsigned char workbuf[MAX_PROCESSORS][MAX_SYMBOL_LEN]; + +extern int mdb_kallsyms(char *str, int (*print)(char *s, ...)); +extern int mdb_modules(char *str, int (*print)(char *s, ...)); +extern int mdb_getkey(void); +extern int mdb_getlword(unsigned long *word, unsigned long addr, size_t size); +extern int mdb_putword(unsigned long addr, unsigned long word, size_t size); +extern unsigned long mdb_getword(unsigned long addr, size_t size); +extern int mdb_verify_rw(void *addr, size_t size); +extern unsigned long ValidateAddress(unsigned long addr, unsigned long length); +extern int DisplayClosestSymbol(unsigned long address); +extern void DumpOSSymbolTableMatch(unsigned char *symbol); +extern void DumpOSSymbolTable(void); +extern unsigned long GetValueFromSymbol(unsigned char *symbol); +extern unsigned char *GetModuleInfoFromSymbolValue(unsigned long value, unsigned char *buf, unsigned long len); +extern unsigned char *GetSymbolFromValue(unsigned long value, unsigned char *buf, unsigned long len); +extern unsigned char *GetSymbolFromValueWithOffset(unsigned long value, unsigned long *sym_offset, + unsigned char *buf, unsigned long len); +extern unsigned char *GetSymbolFromValueOffsetModule(unsigned long value, unsigned long *sym_offset, + unsigned char **module, unsigned char *buf, unsigned long len); +extern unsigned long get_processor_id(void); +extern unsigned long get_physical_processor(void); +extern unsigned long fpu_present(void); +extern unsigned long cpu_mttr_on(void); +extern unsigned char *UpcaseString(unsigned char *s); +extern void ClearScreen(void); +extern unsigned short ReadFS(void); +extern unsigned short ReadGS(void); +extern unsigned long ReadDR(unsigned long regnum); +extern void WriteDR(int regnum, unsigned long contents); +extern unsigned long ReadCR(int regnum); +extern void WriteCR(int regnum, unsigned long contents); +extern unsigned long ReadTR(void); +extern unsigned long ReadLDTR(void); +extern void ReadGDTR(unsigned long *v); +extern void ReadIDTR(unsigned long *v); +extern void save_npx(NUMERIC_FRAME *v); +extern void load_npx(NUMERIC_FRAME *v); +extern unsigned long ReadDR0(void); +extern unsigned long ReadDR1(void); +extern unsigned long ReadDR2(void); +extern unsigned long ReadDR3(void); +extern unsigned long ReadDR6(void); +extern unsigned long ReadDR7(void); +extern void WriteDR0(unsigned long v); +extern void WriteDR1(unsigned long v); +extern void WriteDR2(unsigned long v); +extern void WriteDR3(unsigned long v); +extern void WriteDR6(unsigned long v); +extern void WriteDR7(unsigned long v); +extern unsigned long ReadCR0(void); +extern unsigned long ReadCR2(void); +extern unsigned long ReadCR3(void); +extern unsigned long ReadCR4(void); +extern void WriteCR0(unsigned long v); +extern void WriteCR2(unsigned long v); +extern void WriteCR3(unsigned long v); +extern void WriteCR4(unsigned long v); +extern void ReadMSR(unsigned long r, unsigned long *v1, unsigned long *v2); +extern void WriteMSR(unsigned long r, unsigned long *v1, unsigned long *v2); +#endif -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/