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__ |