1/*
2 * Copyright (c) 2007 The Hewlett-Packard Development Company
3 * All rights reserved.
4 *
5 * Redistribution and use of this software in source and binary forms,
6 * with or without modification, are permitted provided that the
7 * following conditions are met:
8 *

--- 355 unchanged lines hidden (view full) ---

364 X86Interrupt("Software Interrupt", "INTn")
365 {}
366 };
367
368 // These faults aren't part of the ISA definition. They trigger filling
369 // the tlb on a miss and are to take the place of a hardware table walker.
370 class FakeITLBFault : public X86Fault
371 {
372#if !FULL_SYSTEM
372 protected:
373 Addr vaddr;
374 public:
375 FakeITLBFault(Addr _vaddr) :
376 X86Fault("fake instruction tlb fault", "itlb"),
377 vaddr(_vaddr)
379#else
380 public:
381 FakeITLBFault() :
382 X86Fault("fake instruction tlb fault", "itlb")
383#endif
378 {}
379
386#if !FULL_SYSTEM
380 void invoke(ThreadContext * tc);
388#endif
381 };
382
383 class FakeDTLBFault : public X86Fault
384 {
393#if !FULL_SYSTEM
385 protected:
386 Addr vaddr;
387 public:
388 FakeDTLBFault(Addr _vaddr) :
389 X86Fault("fake data tlb fault", "dtlb"),
390 vaddr(_vaddr)
400#else
401 public:
402 FakeDTLBFault() :
403 X86Fault("fake data tlb fault", "dtlb")
404#endif
391 {}
392
407#if !FULL_SYSTEM
393 void invoke(ThreadContext * tc);
409#endif
394 };
395};
396
397#endif // __ARCH_X86_FAULTS_HH__