diff --git a/drivers/bios_emulator/include/x86emu/debug.h b/drivers/bios_emulator/include/x86emu/debug.h
index 35e1e9a..268c9d3 100644
--- a/drivers/bios_emulator/include/x86emu/debug.h
+++ b/drivers/bios_emulator/include/x86emu/debug.h
@@ -1,10 +1,10 @@
 /****************************************************************************
 *
-*                       Realmode X86 Emulator Library
+*			Realmode X86 Emulator Library
 *
-*               Copyright (C) 1991-2004 SciTech Software, Inc.
-*                    Copyright (C) David Mosberger-Tang
-*                      Copyright (C) 1999 Egbert Eich
+*		Copyright (C) 1991-2004 SciTech Software, Inc.
+*		     Copyright (C) David Mosberger-Tang
+*		       Copyright (C) 1999 Egbert Eich
 *
 *  ========================================================================
 *
@@ -14,7 +14,7 @@
 *  both that copyright notice and this permission notice appear in
 *  supporting documentation, and that the name of the authors not be used
 *  in advertising or publicity pertaining to distribution of the software
-*  without specific, written prior permission.  The authors makes no
+*  without specific, written prior permission.	The authors makes no
 *  representations about the suitability of this software for any purpose.
 *  It is provided "as is" without express or implied warranty.
 *
@@ -28,11 +28,11 @@
 *
 *  ========================================================================
 *
-* Language:     ANSI C
-* Environment:  Any
-* Developer:    Kendall Bennett
+* Language:	ANSI C
+* Environment:	Any
+* Developer:	Kendall Bennett
 *
-* Description:  Header file for debug definitions.
+* Description:	Header file for debug definitions.
 *
 ****************************************************************************/
 
@@ -43,16 +43,16 @@
 
 /* checks to be enabled for "runtime" */
 
-#define CHECK_IP_FETCH_F                0x1
-#define CHECK_SP_ACCESS_F               0x2
-#define CHECK_MEM_ACCESS_F              0x4	/*using regular linear pointer */
-#define CHECK_DATA_ACCESS_F             0x8	/*using segment:offset */
+#define CHECK_IP_FETCH_F		0x1
+#define CHECK_SP_ACCESS_F		0x2
+#define CHECK_MEM_ACCESS_F		0x4	/*using regular linear pointer */
+#define CHECK_DATA_ACCESS_F		0x8	/*using segment:offset */
 
 #ifdef DEBUG
-# define CHECK_IP_FETCH()               (M.x86.check & CHECK_IP_FETCH_F)
-# define CHECK_SP_ACCESS()              (M.x86.check & CHECK_SP_ACCESS_F)
-# define CHECK_MEM_ACCESS()             (M.x86.check & CHECK_MEM_ACCESS_F)
-# define CHECK_DATA_ACCESS()            (M.x86.check & CHECK_DATA_ACCESS_F)
+# define CHECK_IP_FETCH()		(M.x86.check & CHECK_IP_FETCH_F)
+# define CHECK_SP_ACCESS()		(M.x86.check & CHECK_SP_ACCESS_F)
+# define CHECK_MEM_ACCESS()		(M.x86.check & CHECK_MEM_ACCESS_F)
+# define CHECK_DATA_ACCESS()		(M.x86.check & CHECK_DATA_ACCESS_F)
 #else
 # define CHECK_IP_FETCH()
 # define CHECK_SP_ACCESS()
@@ -61,50 +61,50 @@
 #endif
 
 #ifdef DEBUG
-# define DEBUG_INSTRUMENT()     (M.x86.debug & DEBUG_INSTRUMENT_F)
-# define DEBUG_DECODE()         (M.x86.debug & DEBUG_DECODE_F)
-# define DEBUG_TRACE()          (M.x86.debug & DEBUG_TRACE_F)
-# define DEBUG_STEP()           (M.x86.debug & DEBUG_STEP_F)
-# define DEBUG_DISASSEMBLE()    (M.x86.debug & DEBUG_DISASSEMBLE_F)
-# define DEBUG_BREAK()          (M.x86.debug & DEBUG_BREAK_F)
-# define DEBUG_SVC()            (M.x86.debug & DEBUG_SVC_F)
-# define DEBUG_SAVE_IP_CS()     (M.x86.debug & DEBUG_SAVE_CS_IP)
+# define DEBUG_INSTRUMENT()	(M.x86.debug & DEBUG_INSTRUMENT_F)
+# define DEBUG_DECODE()		(M.x86.debug & DEBUG_DECODE_F)
+# define DEBUG_TRACE()		(M.x86.debug & DEBUG_TRACE_F)
+# define DEBUG_STEP()		(M.x86.debug & DEBUG_STEP_F)
+# define DEBUG_DISASSEMBLE()	(M.x86.debug & DEBUG_DISASSEMBLE_F)
+# define DEBUG_BREAK()		(M.x86.debug & DEBUG_BREAK_F)
+# define DEBUG_SVC()		(M.x86.debug & DEBUG_SVC_F)
+# define DEBUG_SAVE_IP_CS()	(M.x86.debug & DEBUG_SAVE_CS_IP)
 
-# define DEBUG_FS()             (M.x86.debug & DEBUG_FS_F)
-# define DEBUG_PROC()           (M.x86.debug & DEBUG_PROC_F)
-# define DEBUG_SYSINT()         (M.x86.debug & DEBUG_SYSINT_F)
-# define DEBUG_TRACECALL()      (M.x86.debug & DEBUG_TRACECALL_F)
-# define DEBUG_TRACECALLREGS()  (M.x86.debug & DEBUG_TRACECALL_REGS_F)
-# define DEBUG_SYS()            (M.x86.debug & DEBUG_SYS_F)
-# define DEBUG_MEM_TRACE()      (M.x86.debug & DEBUG_MEM_TRACE_F)
-# define DEBUG_IO_TRACE()       (M.x86.debug & DEBUG_IO_TRACE_F)
+# define DEBUG_FS()		(M.x86.debug & DEBUG_FS_F)
+# define DEBUG_PROC()		(M.x86.debug & DEBUG_PROC_F)
+# define DEBUG_SYSINT()		(M.x86.debug & DEBUG_SYSINT_F)
+# define DEBUG_TRACECALL()	(M.x86.debug & DEBUG_TRACECALL_F)
+# define DEBUG_TRACECALLREGS()	(M.x86.debug & DEBUG_TRACECALL_REGS_F)
+# define DEBUG_SYS()		(M.x86.debug & DEBUG_SYS_F)
+# define DEBUG_MEM_TRACE()	(M.x86.debug & DEBUG_MEM_TRACE_F)
+# define DEBUG_IO_TRACE()	(M.x86.debug & DEBUG_IO_TRACE_F)
 # define DEBUG_DECODE_NOPRINT() (M.x86.debug & DEBUG_DECODE_NOPRINT_F)
 #else
-# define DEBUG_INSTRUMENT()     0
-# define DEBUG_DECODE()         0
-# define DEBUG_TRACE()          0
-# define DEBUG_STEP()           0
-# define DEBUG_DISASSEMBLE()    0
-# define DEBUG_BREAK()          0
-# define DEBUG_SVC()            0
-# define DEBUG_SAVE_IP_CS()     0
-# define DEBUG_FS()             0
-# define DEBUG_PROC()           0
-# define DEBUG_SYSINT()         0
-# define DEBUG_TRACECALL()      0
-# define DEBUG_TRACECALLREGS()  0
-# define DEBUG_SYS()            0
-# define DEBUG_MEM_TRACE()      0
-# define DEBUG_IO_TRACE()       0
+# define DEBUG_INSTRUMENT()	0
+# define DEBUG_DECODE()		0
+# define DEBUG_TRACE()		0
+# define DEBUG_STEP()		0
+# define DEBUG_DISASSEMBLE()	0
+# define DEBUG_BREAK()		0
+# define DEBUG_SVC()		0
+# define DEBUG_SAVE_IP_CS()	0
+# define DEBUG_FS()		0
+# define DEBUG_PROC()		0
+# define DEBUG_SYSINT()		0
+# define DEBUG_TRACECALL()	0
+# define DEBUG_TRACECALLREGS()	0
+# define DEBUG_SYS()		0
+# define DEBUG_MEM_TRACE()	0
+# define DEBUG_IO_TRACE()	0
 # define DEBUG_DECODE_NOPRINT() 0
 #endif
 
 #ifdef DEBUG
 
-# define DECODE_PRINTF(x)       if (DEBUG_DECODE()) \
-                                    x86emu_decode_printf(x)
-# define DECODE_PRINTF2(x,y)    if (DEBUG_DECODE()) \
-                                    x86emu_decode_printf2(x,y)
+# define DECODE_PRINTF(x)	if (DEBUG_DECODE()) \
+				    x86emu_decode_printf(x)
+# define DECODE_PRINTF2(x,y)	if (DEBUG_DECODE()) \
+				    x86emu_decode_printf2(x,y)
 
 /*
  * The following allow us to look at the bytes of an instruction.  The
@@ -112,15 +112,15 @@
  * the decoding process.  The SAVE_IP_CS is called initially when the
  * major opcode of the instruction is accessed.
  */
-#define INC_DECODED_INST_LEN(x)                     \
-    if (DEBUG_DECODE())                             \
-        x86emu_inc_decoded_inst_len(x)
+#define INC_DECODED_INST_LEN(x)			    \
+    if (DEBUG_DECODE())				    \
+	x86emu_inc_decoded_inst_len(x)
 
-#define SAVE_IP_CS(x,y)                                         \
+#define SAVE_IP_CS(x,y)						\
     if (DEBUG_DECODE() | DEBUG_TRACECALL() | DEBUG_BREAK() \
-              | DEBUG_IO_TRACE() | DEBUG_SAVE_IP_CS()) { \
-        M.x86.saved_cs = x;                                     \
-        M.x86.saved_ip = y;                                     \
+	      | DEBUG_IO_TRACE() | DEBUG_SAVE_IP_CS()) { \
+	M.x86.saved_cs = x;					\
+	M.x86.saved_ip = y;					\
     }
 #else
 # define INC_DECODED_INST_LEN(x)
@@ -130,29 +130,29 @@
 #endif
 
 #ifdef DEBUG
-#define TRACE_REGS()                                        \
-    if (DEBUG_DISASSEMBLE()) {                              \
-        x86emu_just_disassemble();                          \
-        goto EndOfTheInstructionProcedure;                  \
-    }                                                       \
+#define TRACE_REGS()					    \
+    if (DEBUG_DISASSEMBLE()) {				    \
+	x86emu_just_disassemble();			    \
+	goto EndOfTheInstructionProcedure;		    \
+    }							    \
     if (DEBUG_TRACE() || DEBUG_DECODE()) X86EMU_trace_regs()
 #else
 # define TRACE_REGS()
 #endif
 
 #ifdef DEBUG
-# define SINGLE_STEP()      if (DEBUG_STEP()) x86emu_single_step()
+# define SINGLE_STEP()	    if (DEBUG_STEP()) x86emu_single_step()
 #else
 # define SINGLE_STEP()
 #endif
 
 #define TRACE_AND_STEP()    \
-    TRACE_REGS();           \
+    TRACE_REGS();	    \
     SINGLE_STEP()
 
 #ifdef DEBUG
 # define START_OF_INSTR()
-# define END_OF_INSTR()     EndOfTheInstructionProcedure: x86emu_end_instr();
+# define END_OF_INSTR()	    EndOfTheInstructionProcedure: x86emu_end_instr();
 # define END_OF_INSTR_NO_TRACE()    x86emu_end_instr();
 #else
 # define START_OF_INSTR()
@@ -161,30 +161,30 @@
 #endif
 
 #ifdef DEBUG
-# define  CALL_TRACE(u,v,w,x,s)                                 \
-    if (DEBUG_TRACECALLREGS())                                  \
-        x86emu_dump_regs();                                     \
-    if (DEBUG_TRACECALL())                                      \
-        printk("%04x:%04x: CALL %s%04x:%04x\n", u , v, s, w, x);
-# define RETURN_TRACE(n,u,v)                                    \
-    if (DEBUG_TRACECALLREGS())                                  \
-        x86emu_dump_regs();                                     \
-    if (DEBUG_TRACECALL())                                      \
-        printk("%04x:%04x: %s\n",u,v,n);
+# define  CALL_TRACE(u,v,w,x,s)					\
+    if (DEBUG_TRACECALLREGS())					\
+	x86emu_dump_regs();					\
+    if (DEBUG_TRACECALL())					\
+	printk("%04x:%04x: CALL %s%04x:%04x\n", u , v, s, w, x);
+# define RETURN_TRACE(n,u,v)					\
+    if (DEBUG_TRACECALLREGS())					\
+	x86emu_dump_regs();					\
+    if (DEBUG_TRACECALL())					\
+	printk("%04x:%04x: %s\n",u,v,n);
 #else
 # define CALL_TRACE(u,v,w,x,s)
 # define RETURN_TRACE(n,u,v)
 #endif
 
 #ifdef DEBUG
-#define DB(x)   x
+#define DB(x)	x
 #else
 #define DB(x)
 #endif
 
 /*-------------------------- Function Prototypes --------------------------*/
 
-#ifdef  __cplusplus
+#ifdef	__cplusplus
 extern "C" {			/* Use "C" linkage when in C++ mode */
 #endif
 
@@ -203,7 +203,7 @@
 	extern void x86emu_check_mem_access(u32 p);
 	extern void x86emu_check_data_access(uint s, uint o);
 
-#ifdef  __cplusplus
-}				/* End of "C" linkage for C++       */
+#ifdef	__cplusplus
+}				/* End of "C" linkage for C++	    */
 #endif
 #endif				/* __X86EMU_DEBUG_H */
diff --git a/drivers/bios_emulator/include/x86emu/prim_ops.h b/drivers/bios_emulator/include/x86emu/prim_ops.h
index 0ea825d..2291e84 100644
--- a/drivers/bios_emulator/include/x86emu/prim_ops.h
+++ b/drivers/bios_emulator/include/x86emu/prim_ops.h
@@ -139,4 +139,3 @@
 #endif
 
 #endif /* __X86EMU_PRIM_OPS_H */
-
diff --git a/drivers/bios_emulator/include/x86emu/regs.h b/drivers/bios_emulator/include/x86emu/regs.h
index 9dbed50..a7fedd2 100644
--- a/drivers/bios_emulator/include/x86emu/regs.h
+++ b/drivers/bios_emulator/include/x86emu/regs.h
@@ -1,10 +1,10 @@
 /****************************************************************************
 *
-*                       Realmode X86 Emulator Library
+*			Realmode X86 Emulator Library
 *
-*               Copyright (C) 1991-2004 SciTech Software, Inc.
-*                    Copyright (C) David Mosberger-Tang
-*                      Copyright (C) 1999 Egbert Eich
+*		Copyright (C) 1991-2004 SciTech Software, Inc.
+*		     Copyright (C) David Mosberger-Tang
+*		       Copyright (C) 1999 Egbert Eich
 *
 *  ========================================================================
 *
@@ -14,7 +14,7 @@
 *  both that copyright notice and this permission notice appear in
 *  supporting documentation, and that the name of the authors not be used
 *  in advertising or publicity pertaining to distribution of the software
-*  without specific, written prior permission.  The authors makes no
+*  without specific, written prior permission.	The authors makes no
 *  representations about the suitability of this software for any purpose.
 *  It is provided "as is" without express or implied warranty.
 *
@@ -28,11 +28,11 @@
 *
 *  ========================================================================
 *
-* Language:     ANSI C
-* Environment:  Any
-* Developer:    Kendall Bennett
+* Language:	ANSI C
+* Environment:	Any
+* Developer:	Kendall Bennett
 *
-* Description:  Header file for x86 register definitions.
+* Description:	Header file for x86 register definitions.
 *
 ****************************************************************************/
 
@@ -54,11 +54,11 @@
  * EAX & 0xff  === AL
  * EAX & 0xffff == AX
  *
- * etc.  The result is that alot of the calculations can then be
+ * etc.	 The result is that alot of the calculations can then be
  * done using the native instruction set fully.
  */
 
-#ifdef  __BIG_ENDIAN__
+#ifdef	__BIG_ENDIAN__
 
 typedef struct {
 	u32 e_reg;
@@ -178,7 +178,7 @@
 /* flag conditions   */
 #define FB_CF 0x0001		/* CARRY flag  */
 #define FB_PF 0x0004		/* PARITY flag */
-#define FB_AF 0x0010		/* AUX  flag   */
+#define FB_AF 0x0010		/* AUX	flag   */
 #define FB_ZF 0x0040		/* ZERO flag   */
 #define FB_SF 0x0080		/* SIGN flag   */
 #define FB_TF 0x0100		/* TRAP flag   */
@@ -199,7 +199,7 @@
 
 #define F_CF 0x0001		/* CARRY flag  */
 #define F_PF 0x0004		/* PARITY flag */
-#define F_AF 0x0010		/* AUX  flag   */
+#define F_AF 0x0010		/* AUX	flag   */
 #define F_ZF 0x0040		/* ZERO flag   */
 #define F_SF 0x0080		/* SIGN flag   */
 #define F_TF 0x0100		/* TRAP flag   */
@@ -207,60 +207,60 @@
 #define F_DF 0x0400		/* DIR flag    */
 #define F_OF 0x0800		/* OVERFLOW flag */
 
-#define TOGGLE_FLAG(flag)       (M.x86.R_FLG ^= (flag))
-#define SET_FLAG(flag)          (M.x86.R_FLG |= (flag))
-#define CLEAR_FLAG(flag)        (M.x86.R_FLG &= ~(flag))
-#define ACCESS_FLAG(flag)       (M.x86.R_FLG & (flag))
-#define CLEARALL_FLAG(m)        (M.x86.R_FLG = 0)
+#define TOGGLE_FLAG(flag)	(M.x86.R_FLG ^= (flag))
+#define SET_FLAG(flag)		(M.x86.R_FLG |= (flag))
+#define CLEAR_FLAG(flag)	(M.x86.R_FLG &= ~(flag))
+#define ACCESS_FLAG(flag)	(M.x86.R_FLG & (flag))
+#define CLEARALL_FLAG(m)	(M.x86.R_FLG = 0)
 
 #define CONDITIONAL_SET_FLAG(COND,FLAG) \
   if (COND) SET_FLAG(FLAG); else CLEAR_FLAG(FLAG)
 
-#define F_PF_CALC 0x010000	/* PARITY flag has been calced    */
-#define F_ZF_CALC 0x020000	/* ZERO flag has been calced      */
-#define F_SF_CALC 0x040000	/* SIGN flag has been calced      */
+#define F_PF_CALC 0x010000	/* PARITY flag has been calced	  */
+#define F_ZF_CALC 0x020000	/* ZERO flag has been calced	  */
+#define F_SF_CALC 0x040000	/* SIGN flag has been calced	  */
 
-#define F_ALL_CALC      0xff0000	/* All have been calced   */
+#define F_ALL_CALC	0xff0000	/* All have been calced	  */
 
 /*
  * Emulator machine state.
  * Segment usage control.
  */
-#define SYSMODE_SEG_DS_SS       0x00000001
-#define SYSMODE_SEGOVR_CS       0x00000002
-#define SYSMODE_SEGOVR_DS       0x00000004
-#define SYSMODE_SEGOVR_ES       0x00000008
-#define SYSMODE_SEGOVR_FS       0x00000010
-#define SYSMODE_SEGOVR_GS       0x00000020
-#define SYSMODE_SEGOVR_SS       0x00000040
-#define SYSMODE_PREFIX_REPE     0x00000080
-#define SYSMODE_PREFIX_REPNE    0x00000100
-#define SYSMODE_PREFIX_DATA     0x00000200
-#define SYSMODE_PREFIX_ADDR     0x00000400
-#define SYSMODE_INTR_PENDING    0x10000000
-#define SYSMODE_EXTRN_INTR      0x20000000
-#define SYSMODE_HALTED          0x40000000
+#define SYSMODE_SEG_DS_SS	0x00000001
+#define SYSMODE_SEGOVR_CS	0x00000002
+#define SYSMODE_SEGOVR_DS	0x00000004
+#define SYSMODE_SEGOVR_ES	0x00000008
+#define SYSMODE_SEGOVR_FS	0x00000010
+#define SYSMODE_SEGOVR_GS	0x00000020
+#define SYSMODE_SEGOVR_SS	0x00000040
+#define SYSMODE_PREFIX_REPE	0x00000080
+#define SYSMODE_PREFIX_REPNE	0x00000100
+#define SYSMODE_PREFIX_DATA	0x00000200
+#define SYSMODE_PREFIX_ADDR	0x00000400
+#define SYSMODE_INTR_PENDING	0x10000000
+#define SYSMODE_EXTRN_INTR	0x20000000
+#define SYSMODE_HALTED		0x40000000
 
-#define SYSMODE_SEGMASK (SYSMODE_SEG_DS_SS      | \
-                         SYSMODE_SEGOVR_CS      | \
-                         SYSMODE_SEGOVR_DS      | \
-                         SYSMODE_SEGOVR_ES      | \
-                         SYSMODE_SEGOVR_FS      | \
-                         SYSMODE_SEGOVR_GS      | \
-                         SYSMODE_SEGOVR_SS)
-#define SYSMODE_CLRMASK (SYSMODE_SEG_DS_SS      | \
-                         SYSMODE_SEGOVR_CS      | \
-                         SYSMODE_SEGOVR_DS      | \
-                         SYSMODE_SEGOVR_ES      | \
-                         SYSMODE_SEGOVR_FS      | \
-                         SYSMODE_SEGOVR_GS      | \
-                         SYSMODE_SEGOVR_SS      | \
-                         SYSMODE_PREFIX_DATA    | \
-                         SYSMODE_PREFIX_ADDR)
+#define SYSMODE_SEGMASK (SYSMODE_SEG_DS_SS	| \
+			 SYSMODE_SEGOVR_CS	| \
+			 SYSMODE_SEGOVR_DS	| \
+			 SYSMODE_SEGOVR_ES	| \
+			 SYSMODE_SEGOVR_FS	| \
+			 SYSMODE_SEGOVR_GS	| \
+			 SYSMODE_SEGOVR_SS)
+#define SYSMODE_CLRMASK (SYSMODE_SEG_DS_SS	| \
+			 SYSMODE_SEGOVR_CS	| \
+			 SYSMODE_SEGOVR_DS	| \
+			 SYSMODE_SEGOVR_ES	| \
+			 SYSMODE_SEGOVR_FS	| \
+			 SYSMODE_SEGOVR_GS	| \
+			 SYSMODE_SEGOVR_SS	| \
+			 SYSMODE_PREFIX_DATA	| \
+			 SYSMODE_PREFIX_ADDR)
 
-#define  INTR_SYNCH           0x1
-#define  INTR_ASYNCH          0x2
-#define  INTR_HALTED          0x4
+#define	 INTR_SYNCH	      0x1
+#define	 INTR_ASYNCH	      0x2
+#define	 INTR_HALTED	      0x4
 
 typedef struct {
 	struct i386_general_regs gen;
@@ -268,15 +268,15 @@
 	struct i386_segment_regs seg;
 	/*
 	 * MODE contains information on:
-	 *  REPE prefix             2 bits  repe,repne
-	 *  SEGMENT overrides       5 bits  normal,DS,SS,CS,ES
-	 *  Delayed flag set        3 bits  (zero, signed, parity)
-	 *  reserved                6 bits
-	 *  interrupt #             8 bits  instruction raised interrupt
-	 *  BIOS video segregs      4 bits
-	 *  Interrupt Pending       1 bits
-	 *  Extern interrupt        1 bits
-	 *  Halted                  1 bits
+	 *  REPE prefix		    2 bits  repe,repne
+	 *  SEGMENT overrides	    5 bits  normal,DS,SS,CS,ES
+	 *  Delayed flag set	    3 bits  (zero, signed, parity)
+	 *  reserved		    6 bits
+	 *  interrupt #		    8 bits  instruction raised interrupt
+	 *  BIOS video segregs	    4 bits
+	 *  Interrupt Pending	    1 bits
+	 *  Extern interrupt	    1 bits
+	 *  Halted		    1 bits
 	 */
 	long mode;
 	u8 intno;
@@ -288,7 +288,7 @@
 	u16 saved_cs;
 	int enc_pos;
 	int enc_str_pos;
-	char decode_buf[32];	/* encoded byte stream  */
+	char decode_buf[32];	/* encoded byte stream	*/
 	char decoded_buf[256];	/* disassembled strings */
 #endif
 } X86EMU_regs;
@@ -298,9 +298,9 @@
 Structure maintaining the emulator machine state.
 
 MEMBERS:
-x86             - X86 registers
-mem_base        - Base real mode memory for the emulator
-mem_size        - Size of the real mode memory block for the emulator
+x86		- X86 registers
+mem_base	- Base real mode memory for the emulator
+mem_size	- Size of the real mode memory block for the emulator
 ****************************************************************************/
 #undef x86
 typedef struct {
@@ -314,7 +314,7 @@
 
 /*----------------------------- Global Variables --------------------------*/
 
-#ifdef  __cplusplus
+#ifdef	__cplusplus
 extern "C" {			/* Use "C" linkage when in C++ mode */
 #endif
 
@@ -324,7 +324,7 @@
  */
 
 	extern X86EMU_sysEnv _X86EMU_env;
-#define   M             _X86EMU_env
+#define	  M		_X86EMU_env
 
 /*-------------------------- Function Prototypes --------------------------*/
 
@@ -334,7 +334,7 @@
 	void printk(const char *fmt, ...);
 #endif
 
-#ifdef  __cplusplus
-}				/* End of "C" linkage for C++       */
+#ifdef	__cplusplus
+}				/* End of "C" linkage for C++	    */
 #endif
 #endif				/* __X86EMU_REGS_H */
