* Authors: Kevin Lim
  */
 
+#ifndef __CPU_BASE_DYN_INST_IMPL_HH__
+#define __CPU_BASE_DYN_INST_IMPL_HH__
+
 #include <iostream>
 #include <set>
 #include <sstream>
 
     return true;
 }
+
+#endif//__CPU_BASE_DYN_INST_IMPL_HH__
 
  *          Geoffrey Blake
  */
 
+#ifndef __CPU_CHECKER_CPU_IMPL_HH__
+#define __CPU_CHECKER_CPU_IMPL_HH__
+
 #include <list>
 #include <string>
 
     }
 
 }
+
+#endif//__CPU_CHECKER_CPU_IMPL_HH__
 
  * Authors: Kevin Lim
  *          Korey Sewell
  */
+#ifndef __CPU_O3_COMMIT_IMPL_HH__
+#define __CPU_O3_COMMIT_IMPL_HH__
 
 #include <algorithm>
 #include <set>
         return InvalidThreadID;
     }
 }
+
+#endif//__CPU_O3_COMMIT_IMPL_HH__
 
  * Authors: Kevin Lim
  */
 
+#ifndef __CPU_O3_DECODE_IMPL_HH__
+#define __CPU_O3_DECODE_IMPL_HH__
+
 #include "arch/types.hh"
 #include "base/trace.hh"
 #include "config/the_isa.hh"
         wroteToTimeBuffer = true;
     }
 }
+
+#endif//__CPU_O3_DECODE_IMPL_HH__
 
  * Authors: Kevin Lim
  */
 
+#ifndef __CPU_O3_DYN_INST_IMPL_HH__
+#define __CPU_O3_DYN_INST_IMPL_HH__
+
 #include "base/cp_annotate.hh"
 #include "cpu/o3/dyn_inst.hh"
 #include "sim/full_system.hh"
     }
 }
 
+#endif//__CPU_O3_DYN_INST_IMPL_HH__
 
  *          Korey Sewell
  */
 
+#ifndef __CPU_O3_FETCH_IMPL_HH__
+#define __CPU_O3_FETCH_IMPL_HH__
+
 #include <algorithm>
 #include <cstring>
 #include <list>
              tid, fetchStatus[tid]);
     }
 }
+
+#endif//__CPU_O3_FETCH_IMPL_HH__
 
  * Authors: Kevin Lim
  */
 
+#ifndef __CPU_O3_IEW_IMPL_IMPL_HH__
+#define __CPU_O3_IEW_IMPL_IMPL_HH__
+
 // @todo: Fix the instantaneous communication among all the stages within
 // iew.  There's a clear delay between issue and execute, yet backwards
 // communication happens simultaneously.
         }
     }
 }
+
+#endif//__CPU_O3_IEW_IMPL_IMPL_HH__
 
  *          Korey Sewell
  */
 
+#ifndef __CPU_O3_INST_QUEUE_IMPL_HH__
+#define __CPU_O3_INST_QUEUE_IMPL_HH__
+
 #include <limits>
 #include <vector>
 
         ++num;
     }
 }
+
+#endif//__CPU_O3_INST_QUEUE_IMPL_HH__
 
  * Authors: Korey Sewell
  */
 
+#ifndef __CPU_O3_LSQ_IMPL_HH__
+#define __CPU_O3_LSQ_IMPL_HH__
+
 #include <algorithm>
 #include <list>
 #include <string>
         thread[tid].dumpInsts();
     }
 }
+
+#endif//__CPU_O3_LSQ_IMPL_HH__
 
  *          Korey Sewell
  */
 
+#ifndef __CPU_O3_LSQ_UNIT_IMPL_HH__
+#define __CPU_O3_LSQ_UNIT_IMPL_HH__
+
 #include "arch/generic/debugfaults.hh"
 #include "arch/locked_mem.hh"
 #include "base/str.hh"
 
     cprintf("\n");
 }
+
+#endif//__CPU_O3_LSQ_UNIT_IMPL_HH__
 
  * Authors: Kevin Lim
  */
 
+#ifndef __CPU_O3_MEM_DEP_UNIT_IMPL_HH__
+#define __CPU_O3_MEM_DEP_UNIT_IMPL_HH__
+
 #include <map>
 
 #include "cpu/o3/inst_queue.hh"
     cprintf("Memory dependence entries: %i\n", MemDepEntry::memdep_count);
 #endif
 }
+
+#endif//__CPU_O3_MEM_DEP_UNIT_IMPL_HH__
 
  *          Korey Sewell
  */
 
+#ifndef __CPU_O3_RENAME_IMPL_HH__
+#define __CPU_O3_RENAME_IMPL_HH__
+
 #include <list>
 
 #include "arch/isa_traits.hh"
         }
     }
 }
+
+#endif//__CPU_O3_RENAME_IMPL_HH__
 
  *          Korey Sewell
  */
 
+#ifndef __CPU_O3_ROB_IMPL_HH__
+#define __CPU_O3_ROB_IMPL_HH__
+
 #include <list>
 
 #include "cpu/o3/rob.hh"
     }
     return NULL;
 }
+
+#endif//__CPU_O3_ROB_IMPL_HH__
 
  *          Korey Sewell
  */
 
+#ifndef __CPU_O3_THREAD_CONTEXT_IMPL_HH__
+#define __CPU_O3_THREAD_CONTEXT_IMPL_HH__
+
 #include "arch/kernel_stats.hh"
 #include "arch/registers.hh"
 #include "config/the_isa.hh"
     conditionalSquash();
 }
 
+#endif//__CPU_O3_THREAD_CONTEXT_IMPL_HH__
 template <class Impl>
 void
 O3ThreadContext<Impl>::setMiscReg(int misc_reg, const MiscReg &val)
 
  * Authors: Kevin Lim
  */
 
+#ifndef __CPU_OZONE_BACK_END_IMPL_HH__
+#define __CPU_OZONE_BACK_END_IMPL_HH__
+
 #include "cpu/ozone/back_end.hh"
 #include "encumbered/cpu/full/op_class.hh"
 
         ++num;
     }
 }
+
+#endif//__CPU_OZONE_BACK_END_IMPL_HH__
 
  *          Nathan Binkert
  */
 
+#ifndef __CPU_OZONE_CPU_IMPL_HH__
+#define __CPU_OZONE_CPU_IMPL_HH__
+
 #include "arch/alpha/osfpal.hh"
 #include "arch/isa_traits.hh" // For MachInst
 #include "arch/kernel_stats.hh"
     }
 }
 
+#endif//__CPU_OZONE_CPU_IMPL_HH__
+
 template <class Impl>
 void
 OzoneCPU<Impl>::OzoneTC::setMiscReg(int misc_reg, const MiscReg &val)
 
  * Authors: Kevin Lim
  */
 
+#ifndef __CPU_OZONE_DYN_INST_IMPL_HH__
+#define __CPU_OZONE_DYN_INST_IMPL_HH__
+
 #include "config/the_isa.hh"
 #include "cpu/ozone/dyn_inst.hh"
 #include "kern/kernel_stats.hh"
 {
     this->cpu->syscall(callnum);
 }
+
+#endif//__CPU_OZONE_DYN_INST_IMPL_HH__
 
  *
  * Authors: Kevin Lim
  */
+#ifndef __CPU_OZONE_BACK_END_IMPL_HH__
+#define __CPU_OZONE_BACK_END_IMPL_HH__
 
 #include "arch/isa_traits.hh"
 #include "arch/utility.hh"
         buff_it++;
     }
 }
+
+#endif//__CPU_OZONE_BACK_END_IMPL_HH__
 
  * Authors: Kevin Lim
  */
 
+#ifndef __CPU_OZONE_INORDER_BACK_END_IMPL_HH__
+#define __CPU_OZONE_INORDER_BACK_END_IMPL_HH__
+
 #include "arch/types.hh"
 #include "config/the_isa.hh"
 #include "cpu/ozone/inorder_back_end.hh"
 {
     return "DCache completion";
 }
+#endif//__CPU_OZONE_INORDER_BACK_END_IMPL_HH__
 
  * Authors: Kevin Lim
  */
 
+#ifndef __CPU_OZONE_INST_QUEUE_IMPL_HH__
+#define __CPU_OZONE_INST_QUEUE_IMPL_HH__
+
 // Todo:
 // Current ordering allows for 0 cycle added-to-scheduled.  Could maybe fake
 // it; either do in reverse order, or have added instructions put into a
 */
     }
 }
+
+#define//__CPU_OZONE_INST_QUEUE_IMPL_HH__
 
  *
  * Authors: Kevin Lim
  */
+#ifndef __CPU_OZONE_LSQ_UNIT_IMPL_HH__
+#define __CPU_OZONE_LSQ_UNIT_IMPL_HH__
 
 #include "base/str.hh"
 #include "config/the_isa.hh"
     if (--load_idx < 0)
         load_idx += LQEntries;
 }
+#endif//__CPU_OZONE_LSQ_UNIT_IMPL_HH__
 
  *
  * Authors: Kevin Lim
  */
+#ifndef __CPU_OZONE_LW_BACK_END_IMPL_HH__
+#define __CPU_OZONE_LW_BACK_END_IMPL_HH__
 
 #include "config/the_isa.hh"
 #include "cpu/checker/cpu.hh"
     }
     cprintf("\n");
 }
+#endif//__CPU_OZONE_LW_BACK_END_IMPL_HH__
 
  * Authors: Kevin Lim
  */
 
+#ifndef __CPU_OZONE_LW_LSQ_IMPL_HH__
+#define __CPU_OZONE_LW_LSQ_IMPL_HH__
+
 #include "base/str.hh"
 #include "config/the_isa.hh"
 #include "cpu/checker/cpu.hh"
 
     blockedLoadSeqNum = 0;
 }
+
+#endif//__CPU_OZONE_LW_LSQ_IMPL_HH__
 
  *
  * Authors: Kevin Lim
  */
+#ifndef __CPU_OZONE_RENAME_TABLE_IMPL_HH__
+#define __CPU_OZONE_RENAME_TABLE_IMPL_HH__
 
 #include <cstdlib>  // Not really sure what to include to get NULL
 
         table[i] = table_to_copy.table[i];
     }
 }
+
+#endif//__CPU_OZONE_RENAME_TABLE_IMPL_HH__
 
  * Authors: Kevin Lim
  */
 
+#ifndef __CPU_PRED_BPRED_UNIT_IMPL_HH__
+#define __CPU_PRED_BPRED_UNIT_IMPL_HH__
+
 #include <algorithm>
 
 #include "arch/isa_traits.hh"
         }
     }
 }
+
+#endif//__CPU_PRED_BPRED_UNIT_IMPL_HH__
 
  *          Andreas Sandberg
  */
 
+#ifndef __MEM_CACHE_CACHE_IMPL_HH__
+#define __MEM_CACHE_CACHE_IMPL_HH__
+
 /**
  * @file
  * Cache definitions.
       _queue(*_cache, *this, _label), cache(_cache)
 {
 }
+
+#endif//__MEM_CACHE_CACHE_IMPL_HH__