faults.hh (5139:2422708d4fcb) faults.hh (5237:6c819dbe8045)
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 {
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
373 protected:
374 Addr vaddr;
375 public:
376 FakeITLBFault(Addr _vaddr) :
377 X86Fault("fake instruction tlb fault", "itlb"),
378 vaddr(_vaddr)
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
384 {}
385
378 {}
379
386#if !FULL_SYSTEM
387 void invoke(ThreadContext * tc);
380 void invoke(ThreadContext * tc);
388#endif
389 };
390
391 class FakeDTLBFault : public X86Fault
392 {
381 };
382
383 class FakeDTLBFault : public X86Fault
384 {
393#if !FULL_SYSTEM
394 protected:
395 Addr vaddr;
396 public:
397 FakeDTLBFault(Addr _vaddr) :
398 X86Fault("fake data tlb fault", "dtlb"),
399 vaddr(_vaddr)
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
405 {}
406
391 {}
392
407#if !FULL_SYSTEM
408 void invoke(ThreadContext * tc);
393 void invoke(ThreadContext * tc);
409#endif
410 };
411};
412
413#endif // __ARCH_X86_FAULTS_HH__
394 };
395};
396
397#endif // __ARCH_X86_FAULTS_HH__