Changeset 567807b1 in mainline for arch/ia32/include


Ignore:
Timestamp:
2006-05-24T17:03:29Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
8d6bc2d5
Parents:
82da5f5
Message:

Modify the hierarchy of page fault handlers to pass access mode that caused the fault.
Architectures are required to pass either PF_ACCESS_READ, PF_ACCESS_WRITE or PF_ACCESS_EXEC
to as_page_fault(), depending on the cause of the fault.

Location:
arch/ia32/include
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • arch/ia32/include/interrupt.h

    r82da5f5 r567807b1  
    9393extern void (* eoi_function)(void);
    9494
     95extern void PRINT_INFO_ERRCODE(istate_t *istate);
    9596extern void null_interrupt(int n, istate_t *istate);
    9697extern void gp_fault(int n, istate_t *istate);
     
    9899extern void ss_fault(int n, istate_t *istate);
    99100extern void simd_fp_exception(int n, istate_t *istate);
    100 extern void page_fault(int n, istate_t *istate);
    101101extern void syscall(int n, istate_t *istate);
    102102extern void tlb_shootdown_ipi(int n, istate_t *istate);
  • arch/ia32/include/mm/page.h

    r82da5f5 r567807b1  
    9191#include <typedefs.h>
    9292
     93/* Page fault error codes. */
     94
     95/** When bit on this position is 0, the page fault was caused by a not-present page. */
     96#define PFERR_CODE_P            (1<<0)
     97
     98/** When bit on this position is 1, the page fault was caused by a write. */
     99#define PFERR_CODE_RW           (1<<1)
     100
     101/** When bit on this position is 1, the page fault was caused in user mode. */
     102#define PFERR_CODE_US           (1<<2)
     103
     104/** When bit on this position is 1, a reserved bit was set in page directory. */
     105#define PFERR_CODE_RSVD         (1<<3) 
     106
    93107/** Page Table Entry. */
    94108struct page_specifier {
     
    139153
    140154extern void page_arch_init(void);
     155extern void page_fault(int n, istate_t *istate);
    141156
    142157#endif /* __ASM__ */
Note: See TracChangeset for help on using the changeset viewer.