[PATCH 2.6.27-rc1 9/25] mdb: Merkey's Kernel Debugger 2.6.27-rc1

From: jmerkey
Date: Mon Aug 04 2008 - 02:53:42 EST


Netware style debugger for Linux written by Jeffrey Vernon Merkey

--- a/debug/mdb-ia32.h 1969-12-31 17:00:00.000000000 -0700
+++ b/debug/mdb-ia32.h 2008-08-03 16:15:00.000000000 -0600
@@ -0,0 +1,175 @@
+
+/***************************************************************************
+*
+* Copyright (c) 2008 Jeff V. Merkey All Rights Reserved.
+* 1058 East 50 South
+* Lindon, Utah 84042
+* jmerkey@xxxxxxxxxxxxxxxxxxxxx
+*
+* 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 3.
+*
+* 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@xxxxxxxxxxxxxxxxxxxxx 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
+* FILE : MDB-IA32.H
+* DESCRIP : Merkey's NetWare Debugger
+* DATE : April 8, 2008
+*
+***************************************************************************/
+
+#ifndef _MDB_IA32_H
+#define _MDB_IA32_H
+
+typedef struct _StackFrame {
+ ULONG tReserved[7];
+ ULONG *tCR3;
+ ULONG tEIP;
+ ULONG tSystemFlags;
+ ULONG tEAX;
+ ULONG tECX;
+ ULONG tEDX;
+ ULONG tEBX;
+ ULONG tESP;
+ ULONG tEBP;
+ ULONG tESI;
+ ULONG tEDI;
+ WORD tES;
+ WORD Res1;
+ WORD tCS;
+ WORD Res2;
+ WORD tSS;
+ WORD Res3;
+ WORD tDS;
+ WORD Res4;
+ WORD tFS;
+ WORD Res5;
+ WORD tGS;
+ WORD Res6;
+ WORD tLDT;
+ WORD Res7;
+ ULONG tIOMap;
+} StackFrame;
+
+// 128 bytes total size numeric register context
+
+typedef struct _NPXREG {
+ WORD sig0; // 10 bytes total size this structure
+ WORD sig1;
+ WORD sig2;
+ WORD sig3;
+ WORD exponent:15;
+ WORD sign:1;
+} NUMERIC_REGISTER_CONTEXT;
+
+typedef struct _NPX {
+ ULONG control;
+ ULONG status;
+ ULONG tag;
+ ULONG eip;
+ ULONG cs;
+ ULONG dataptr;
+ ULONG datasel;
+ NUMERIC_REGISTER_CONTEXT reg[8]; // 80 bytes
+ ULONG pad[5];
+} NUMERIC_FRAME;
+
+// 128 bytes total size register context
+
+typedef struct _CONTEXT_FRAME {
+ WORD cBackLink;
+ WORD cTSSReserved;
+ ULONG cESP0;
+ WORD cSS0;
+ WORD cSS0res;
+ ULONG cESP1;
+ WORD cSS1;
+ WORD cSS1res;
+ ULONG cESP2;
+ WORD cSS2;
+ WORD cSS2res;
+ ULONG cCR3;
+ ULONG cEIP;
+ ULONG cSystemFlags;
+ ULONG cEAX;
+ ULONG cECX;
+ ULONG cEDX;
+ ULONG cEBX;
+ ULONG cESP;
+ ULONG cEBP;
+ ULONG cESI;
+ ULONG cEDI;
+ ULONG cES;
+ ULONG cCS;
+ ULONG cSS;
+ ULONG cDS;
+ ULONG cFS;
+ ULONG cGS;
+ ULONG cLDT;
+ ULONG cIOPermissMap;
+ ULONG pad[6];
+} CONTEXT_FRAME;
+
+static inline void _cli(void)
+{
+ __asm__ __volatile__("cli" : : : "memory");
+}
+
+static inline void _sti(void)
+{
+ __asm__ __volatile__("sti" : : : "memory");
+}
+
+static inline unsigned long get_flags(void)
+{
+ unsigned long flags;
+
+ __asm__ __volatile__(
+ "pushfl ; popl %0"
+ : "=g" (flags)
+ : /* no input */
+ );
+ return flags;
+}
+
+static inline unsigned long save_flags(void)
+{
+ unsigned long flags;
+
+ __asm__ __volatile__(
+ "pushfl ; popl %0"
+ : "=g" (flags)
+ : /* no input */
+ );
+ __asm__ __volatile__("cli" : : : "memory");
+ return flags;
+}
+
+static inline void restore_flags(unsigned long flags)
+{
+ __asm__ __volatile__(
+ "pushl %0 ; popfl"
+ :
+ :"g" (flags)
+ :"memory", "cc"
+ );
+}
+
+#endif
+


By making a contribution to this project, I certify that
the contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file.

Jeffrey Vernon Merkey



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/