Changeset 9928240 in mainline


Ignore:
Timestamp:
2014-10-12T11:18:49Z (10 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
416ef49
Parents:
0b49d4e
Message:

Use exc_dispatcher() for ia64 interruptions.

This is necessary for proper cycle accounting and also CPU state
tracking (idle / non-idle). Syscalls continue to use a different
path, but call syscall_handler() eventually. The speculation
vector needs to be handled differently, outside of exc_dispatch().

Location:
kernel/arch/ia64
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia64/include/arch/interrupt.h

    r0b49d4e r9928240  
    3636#define KERN_ia64_INTERRUPT_H_
    3737
     38#ifndef __ASM__
    3839#include <typedefs.h>
    3940#include <arch/istate.h>
     41#endif
     42
     43#define EXC_ALT_ITLB_FAULT      0xc
     44#define EXC_ALT_DTLB_FAULT      0x10
     45#define EXC_NESTED_TLB_FAULT    0x14
     46#define EXC_DATA_D_BIT_FAULT    0x20
     47#define EXC_INST_A_BIT_FAULT    0x24
     48#define EXC_DATA_A_BIT_FAULT    0x28
     49#define EXC_BREAK_INSTRUCTION   0x2c
     50#define EXC_EXT_INTERRUPT       0x30
     51#define EXC_PAGE_NOT_PRESENT    0x50
     52#define EXC_DATA_AR_FAULT       0x53
     53#define EXC_GENERAL_EXCEPTION   0x54
     54#define EXC_DISABLED_FP_REG     0x55
     55#define EXC_SPECULATION         0x57
    4056
    4157/** ia64 has 256 INRs. */
    4258#define INR_COUNT  256
    4359
    44 /*
    45  * We need to keep this just to compile.
    46  * We might eventually move interrupt/ stuff
    47  * to genarch.
    48  */
    49 #define IVT_ITEMS  0
     60#define IVT_ITEMS  128
    5061#define IVT_FIRST  0
    5162
     
    7283#define EOI  0  /**< The actual value doesn't matter. */
    7384
     85#ifndef __ASM__
    7486extern void *ivt;
    7587
    76 extern void general_exception(uint64_t, istate_t *);
    77 extern int break_instruction(uint64_t, istate_t *);
    78 extern void universal_handler(uint64_t, istate_t *);
    79 extern void nop_handler(uint64_t, istate_t *);
    80 extern void external_interrupt(uint64_t, istate_t *);
    81 extern void disabled_fp_register(uint64_t, istate_t *);
     88extern void general_exception(unsigned int, istate_t *);
     89extern sysarg_t break_instruction(unsigned int, istate_t *);
     90extern void universal_handler(unsigned int, istate_t *);
     91extern void external_interrupt(unsigned int, istate_t *);
     92extern void disabled_fp_register(unsigned int, istate_t *);
    8293
    8394extern void trap_virtual_enable_irqs(uint16_t);
     95
     96void exception_init(void);
     97#endif
    8498
    8599#endif
  • kernel/arch/ia64/include/arch/mm/tlb.h

    r0b49d4e r9928240  
    8686extern void itc_pte_copy(pte_t *t);
    8787
    88 extern void alternate_instruction_tlb_fault(uint64_t vector, istate_t *istate);
    89 extern void alternate_data_tlb_fault(uint64_t vector, istate_t *istate);
    90 extern void data_nested_tlb_fault(uint64_t vector, istate_t *istate);
    91 extern void data_dirty_bit_fault(uint64_t vector, istate_t *istate);
    92 extern void instruction_access_bit_fault(uint64_t vector, istate_t *istate);
    93 extern void data_access_bit_fault(uint64_t vector, istate_t *istate);
    94 extern void data_access_rights_fault(uint64_t vector, istate_t *istate);
    95 extern void page_not_present(uint64_t vector, istate_t *istate);
     88extern void alternate_instruction_tlb_fault(unsigned int, istate_t *);
     89extern void alternate_data_tlb_fault(unsigned int, istate_t *);
     90extern void data_nested_tlb_fault(unsigned int, istate_t *);
     91extern void data_dirty_bit_fault(unsigned int, istate_t *);
     92extern void instruction_access_bit_fault(unsigned int, istate_t *);
     93extern void data_access_bit_fault(unsigned int, istate_t *);
     94extern void data_access_rights_fault(unsigned int, istate_t *);
     95extern void page_not_present(unsigned int, istate_t *);
    9696
    9797#endif
  • kernel/arch/ia64/src/ia64.c

    r0b49d4e r9928240  
    3737#include <errno.h>
    3838#include <interrupt.h>
     39#include <arch/interrupt.h>
    3940#include <macros.h>
    4041#include <str.h>
     
    8586void arch_pre_mm_init(void)
    8687{
     88        if (config.cpu_active == 1)
     89                exception_init();
    8790}
    8891
  • kernel/arch/ia64/src/interrupt.c

    r0b49d4e r9928240  
    5454#include <synch/spinlock.h>
    5555#include <mm/tlb.h>
     56#include <arch/mm/tlb.h>
    5657#include <symtab.h>
    5758#include <putchar.h>
     
    5960#define VECTORS_64_BUNDLE        20
    6061#define VECTORS_16_BUNDLE        48
    61 #define VECTORS_16_BUNDLE_START  0x5000
    62 
    63 #define VECTOR_MAX  0x7f00
    64 
    65 #define BUNDLE_SIZE  16
     62#define VECTORS_16_BUNDLE_START  0x50
     63
     64#define VECTOR_MAX  0x7f
    6665
    6766static const char *vector_names_64_bundle[VECTORS_64_BUNDLE] = {
     
    122121};
    123122
    124 static const char *vector_to_string(uint16_t vector)
    125 {
    126         ASSERT(vector <= VECTOR_MAX);
    127        
    128         if (vector >= VECTORS_16_BUNDLE_START)
    129                 return vector_names_16_bundle[(vector -
    130                     VECTORS_16_BUNDLE_START) / (16 * BUNDLE_SIZE)];
     123static const char *vector_to_string(unsigned int n)
     124{
     125        ASSERT(n <= VECTOR_MAX);
     126       
     127        if (n >= VECTORS_16_BUNDLE_START)
     128                return vector_names_16_bundle[n - VECTORS_16_BUNDLE_START];
    131129        else
    132                 return vector_names_64_bundle[vector / (64 * BUNDLE_SIZE)];
     130                return vector_names_64_bundle[n / 4];
    133131}
    134132
     
    153151}
    154152
    155 void general_exception(uint64_t vector, istate_t *istate)
     153void general_exception(unsigned int n, istate_t *istate)
    156154{
    157155        const char *desc;
     
    182180       
    183181        fault_if_from_uspace(istate, "General Exception (%s).", desc);
    184         panic_badtrap(istate, vector, "General Exception (%s).", desc);
    185 }
    186 
    187 void disabled_fp_register(uint64_t vector, istate_t *istate)
     182        panic_badtrap(istate, n, "General Exception (%s).", desc);
     183}
     184
     185void disabled_fp_register(unsigned int n, istate_t *istate)
    188186{
    189187#ifdef CONFIG_FPU_LAZY
     
    191189#else
    192190        fault_if_from_uspace(istate, "Interruption: %#hx (%s).",
    193             (uint16_t) vector, vector_to_string(vector));
     191            (uint16_t) n, vector_to_string(n));
    194192        panic_badtrap(istate, vector, "Interruption: %#hx (%s).",
    195             (uint16_t) vector, vector_to_string(vector));
     193            (uint16_t) n, vector_to_string(n));
    196194#endif
    197195}
    198196
    199 void nop_handler(uint64_t vector, istate_t *istate)
    200 {
    201 }
    202 
    203197/** Handle syscall. */
    204 int break_instruction(uint64_t vector, istate_t *istate)
     198sysarg_t break_instruction(unsigned int n, istate_t *istate)
    205199{
    206200        /*
     
    218212}
    219213
    220 void universal_handler(uint64_t vector, istate_t *istate)
     214void universal_handler(unsigned int n, istate_t *istate)
    221215{
    222216        fault_if_from_uspace(istate, "Interruption: %#hx (%s).",
    223             (uint16_t) vector, vector_to_string(vector));
    224         panic_badtrap(istate, vector, "Interruption: %#hx (%s).",
    225             (uint16_t) vector, vector_to_string(vector));
     217            n, vector_to_string(n));
     218        panic_badtrap(istate, n, "Interruption: %#hx (%s).",
     219            n, vector_to_string(n));
    226220}
    227221
     
    229223{
    230224        asm volatile (
    231                 "mov cr.eoi=r0;;"
     225                "mov cr.eoi = r0 ;;"
    232226        );
    233227}
    234228
    235 void external_interrupt(uint64_t vector, istate_t *istate)
     229void external_interrupt(unsigned int n, istate_t *istate)
    236230{
    237231        cr_ivr_t ivr;
     
    298292}
    299293
     294void exception_init(void)
     295{
     296        unsigned int i;
     297
     298        for (i = 0; i < IVT_ITEMS; i++)
     299                exc_register(i, "universal_handler", false, universal_handler);
     300
     301        exc_register(EXC_ALT_ITLB_FAULT,
     302            vector_to_string(EXC_ALT_ITLB_FAULT), true,
     303            alternate_instruction_tlb_fault);
     304        exc_register(EXC_ALT_DTLB_FAULT,
     305            vector_to_string(EXC_ALT_DTLB_FAULT), true,
     306            alternate_data_tlb_fault);
     307        exc_register(EXC_NESTED_TLB_FAULT,
     308            vector_to_string(EXC_NESTED_TLB_FAULT), false,
     309            data_nested_tlb_fault);
     310        exc_register(EXC_DATA_D_BIT_FAULT,
     311            vector_to_string(EXC_DATA_D_BIT_FAULT), true,
     312            data_dirty_bit_fault);
     313        exc_register(EXC_INST_A_BIT_FAULT,
     314            vector_to_string(EXC_INST_A_BIT_FAULT), true,
     315            instruction_access_bit_fault);
     316        exc_register(EXC_DATA_A_BIT_FAULT,
     317            vector_to_string(EXC_DATA_A_BIT_FAULT), true,
     318            data_access_bit_fault);
     319        exc_register(EXC_EXT_INTERRUPT,
     320            vector_to_string(EXC_EXT_INTERRUPT), true,
     321            external_interrupt);
     322
     323        exc_register(EXC_PAGE_NOT_PRESENT,
     324            vector_to_string(EXC_PAGE_NOT_PRESENT), true,
     325            page_not_present);
     326        exc_register(EXC_DATA_AR_FAULT,
     327            vector_to_string(EXC_DATA_AR_FAULT), true,
     328            data_access_rights_fault);
     329        exc_register(EXC_GENERAL_EXCEPTION,
     330            vector_to_string(EXC_GENERAL_EXCEPTION), false,
     331            general_exception);
     332        exc_register(EXC_DISABLED_FP_REG,
     333            vector_to_string(EXC_DISABLED_FP_REG), true,
     334            disabled_fp_register);
     335}
     336
    300337/** @}
    301338 */
  • kernel/arch/ia64/src/ivt.S

    r0b49d4e r9928240  
    3131#include <arch/register.h>
    3232#include <arch/mm/page.h>
     33#include <arch/interrupt.h>
    3334#include <arch/istate_struct.h>
    3435#include <align.h>
     
    3940
    4041/** Partitioning of bank 0 registers. */
    41 #define R_OFFS          r16
     42#define R_VECTOR        r16
    4243#define R_HANDLER       r17
    4344#define R_RET           r18
    44 #define R_TMP           r19
    4545#define R_KSTACK_BSP    r22     /* keep in sync with before_thread_runs_arch() */
    4646#define R_KSTACK        r23     /* keep in sync with before_thread_runs_arch() */
    4747
    4848/* Speculation vector handler */
    49 .macro SPECULATION_VECTOR_HANDLER offs
    50     .org ivt + \offs
     49.macro SPECULATION_VECTOR_HANDLER vector
     50    .org ivt + \vector * 0x100
    5151
    5252    /* 1. Save predicates, IIM, IIP, IPSR and ISR CR's in bank 0 registers. */
     
    9494 * @param handler Interrupt handler address.
    9595 */
    96 .macro HEAVYWEIGHT_HANDLER offs, handler=universal_handler
    97     .org ivt + \offs
    98         mov R_OFFS = \offs
     96.macro HEAVYWEIGHT_HANDLER vector, handler=exc_dispatch
     97    .org ivt + \vector * 0x100
     98        mov R_VECTOR = \vector
    9999        movl R_HANDLER = \handler ;;
    100100        br heavyweight_handler
     
    165165         * copy input parameters to stack.
    166166         */
    167         mov R_TMP = 0x2c00 ;;
    168         cmp.eq p6, p5 = R_OFFS, R_TMP ;;
     167        cmp.eq p6, p5 = EXC_BREAK_INSTRUCTION, R_VECTOR ;;
    169168       
    170169        /*
     
    309308        mov loc1 = R_RET        /* b0 belonging to interrupted context */
    310309        mov loc2 = R_HANDLER
    311         mov out0 = R_OFFS
     310        mov out0 = R_VECTOR
    312311       
    313312        add out1 = STACK_SCRATCH_AREA_SIZE, r12
     
    543542.align 32768
    544543ivt:
    545         HEAVYWEIGHT_HANDLER 0x0000
    546         HEAVYWEIGHT_HANDLER 0x0400
    547         HEAVYWEIGHT_HANDLER 0x0800
    548         HEAVYWEIGHT_HANDLER 0x0c00 alternate_instruction_tlb_fault
    549         HEAVYWEIGHT_HANDLER 0x1000 alternate_data_tlb_fault
    550         HEAVYWEIGHT_HANDLER 0x1400 data_nested_tlb_fault
    551         HEAVYWEIGHT_HANDLER 0x1800
    552         HEAVYWEIGHT_HANDLER 0x1c00
    553         HEAVYWEIGHT_HANDLER 0x2000 data_dirty_bit_fault
    554         HEAVYWEIGHT_HANDLER 0x2400 instruction_access_bit_fault
    555         HEAVYWEIGHT_HANDLER 0x2800 data_access_bit_fault
    556         HEAVYWEIGHT_HANDLER 0x2c00 break_instruction
    557         HEAVYWEIGHT_HANDLER 0x3000 external_interrupt   /* For external interrupt, heavyweight handler is used. */
    558         HEAVYWEIGHT_HANDLER 0x3400
    559         HEAVYWEIGHT_HANDLER 0x3800
    560         HEAVYWEIGHT_HANDLER 0x3c00
    561         HEAVYWEIGHT_HANDLER 0x4000
    562         HEAVYWEIGHT_HANDLER 0x4400
    563         HEAVYWEIGHT_HANDLER 0x4800
    564         HEAVYWEIGHT_HANDLER 0x4c00
    565 
    566         HEAVYWEIGHT_HANDLER 0x5000 page_not_present
    567         HEAVYWEIGHT_HANDLER 0x5100
    568         HEAVYWEIGHT_HANDLER 0x5200
    569         HEAVYWEIGHT_HANDLER 0x5300 data_access_rights_fault
    570         HEAVYWEIGHT_HANDLER 0x5400 general_exception
    571         HEAVYWEIGHT_HANDLER 0x5500 disabled_fp_register
    572         HEAVYWEIGHT_HANDLER 0x5600
    573         SPECULATION_VECTOR_HANDLER 0x5700
    574         HEAVYWEIGHT_HANDLER 0x5800
    575         HEAVYWEIGHT_HANDLER 0x5900
    576         HEAVYWEIGHT_HANDLER 0x5a00
    577         HEAVYWEIGHT_HANDLER 0x5b00
    578         HEAVYWEIGHT_HANDLER 0x5c00
    579         HEAVYWEIGHT_HANDLER 0x5d00
    580         HEAVYWEIGHT_HANDLER 0x5e00
    581         HEAVYWEIGHT_HANDLER 0x5f00
    582        
    583         HEAVYWEIGHT_HANDLER 0x6000
    584         HEAVYWEIGHT_HANDLER 0x6100
    585         HEAVYWEIGHT_HANDLER 0x6200
    586         HEAVYWEIGHT_HANDLER 0x6300
    587         HEAVYWEIGHT_HANDLER 0x6400
    588         HEAVYWEIGHT_HANDLER 0x6500
    589         HEAVYWEIGHT_HANDLER 0x6600
    590         HEAVYWEIGHT_HANDLER 0x6700
    591         HEAVYWEIGHT_HANDLER 0x6800
    592         HEAVYWEIGHT_HANDLER 0x6900
    593         HEAVYWEIGHT_HANDLER 0x6a00
    594         HEAVYWEIGHT_HANDLER 0x6b00
    595         HEAVYWEIGHT_HANDLER 0x6c00
    596         HEAVYWEIGHT_HANDLER 0x6d00
    597         HEAVYWEIGHT_HANDLER 0x6e00
    598         HEAVYWEIGHT_HANDLER 0x6f00
    599 
    600         HEAVYWEIGHT_HANDLER 0x7000
    601         HEAVYWEIGHT_HANDLER 0x7100
    602         HEAVYWEIGHT_HANDLER 0x7200
    603         HEAVYWEIGHT_HANDLER 0x7300
    604         HEAVYWEIGHT_HANDLER 0x7400
    605         HEAVYWEIGHT_HANDLER 0x7500
    606         HEAVYWEIGHT_HANDLER 0x7600
    607         HEAVYWEIGHT_HANDLER 0x7700
    608         HEAVYWEIGHT_HANDLER 0x7800
    609         HEAVYWEIGHT_HANDLER 0x7900
    610         HEAVYWEIGHT_HANDLER 0x7a00
    611         HEAVYWEIGHT_HANDLER 0x7b00
    612         HEAVYWEIGHT_HANDLER 0x7c00
    613         HEAVYWEIGHT_HANDLER 0x7d00
    614         HEAVYWEIGHT_HANDLER 0x7e00
    615         HEAVYWEIGHT_HANDLER 0x7f00
     544        HEAVYWEIGHT_HANDLER 0x00
     545        HEAVYWEIGHT_HANDLER 0x04
     546        HEAVYWEIGHT_HANDLER 0x08
     547        HEAVYWEIGHT_HANDLER 0x0c
     548        HEAVYWEIGHT_HANDLER 0x10
     549        HEAVYWEIGHT_HANDLER 0x14
     550        HEAVYWEIGHT_HANDLER 0x18
     551        HEAVYWEIGHT_HANDLER 0x1c
     552        HEAVYWEIGHT_HANDLER 0x20
     553        HEAVYWEIGHT_HANDLER 0x24
     554        HEAVYWEIGHT_HANDLER 0x28
     555        HEAVYWEIGHT_HANDLER 0x2c break_instruction
     556        HEAVYWEIGHT_HANDLER 0x30
     557        HEAVYWEIGHT_HANDLER 0x34
     558        HEAVYWEIGHT_HANDLER 0x38
     559        HEAVYWEIGHT_HANDLER 0x3c
     560        HEAVYWEIGHT_HANDLER 0x40
     561        HEAVYWEIGHT_HANDLER 0x44
     562        HEAVYWEIGHT_HANDLER 0x48
     563        HEAVYWEIGHT_HANDLER 0x4c
     564
     565        HEAVYWEIGHT_HANDLER 0x50
     566        HEAVYWEIGHT_HANDLER 0x51
     567        HEAVYWEIGHT_HANDLER 0x52
     568        HEAVYWEIGHT_HANDLER 0x53
     569        HEAVYWEIGHT_HANDLER 0x54
     570        HEAVYWEIGHT_HANDLER 0x55
     571        HEAVYWEIGHT_HANDLER 0x56
     572        SPECULATION_VECTOR_HANDLER 0x57
     573        HEAVYWEIGHT_HANDLER 0x58
     574        HEAVYWEIGHT_HANDLER 0x59
     575        HEAVYWEIGHT_HANDLER 0x5a
     576        HEAVYWEIGHT_HANDLER 0x5b
     577        HEAVYWEIGHT_HANDLER 0x5c
     578        HEAVYWEIGHT_HANDLER 0x5d
     579        HEAVYWEIGHT_HANDLER 0x5e
     580        HEAVYWEIGHT_HANDLER 0x5f
     581       
     582        HEAVYWEIGHT_HANDLER 0x60
     583        HEAVYWEIGHT_HANDLER 0x61
     584        HEAVYWEIGHT_HANDLER 0x62
     585        HEAVYWEIGHT_HANDLER 0x63
     586        HEAVYWEIGHT_HANDLER 0x64
     587        HEAVYWEIGHT_HANDLER 0x65
     588        HEAVYWEIGHT_HANDLER 0x66
     589        HEAVYWEIGHT_HANDLER 0x67
     590        HEAVYWEIGHT_HANDLER 0x68
     591        HEAVYWEIGHT_HANDLER 0x69
     592        HEAVYWEIGHT_HANDLER 0x6a
     593        HEAVYWEIGHT_HANDLER 0x6b
     594        HEAVYWEIGHT_HANDLER 0x6c
     595        HEAVYWEIGHT_HANDLER 0x6d
     596        HEAVYWEIGHT_HANDLER 0x6e
     597        HEAVYWEIGHT_HANDLER 0x6f
     598
     599        HEAVYWEIGHT_HANDLER 0x70
     600        HEAVYWEIGHT_HANDLER 0x71
     601        HEAVYWEIGHT_HANDLER 0x72
     602        HEAVYWEIGHT_HANDLER 0x73
     603        HEAVYWEIGHT_HANDLER 0x74
     604        HEAVYWEIGHT_HANDLER 0x75
     605        HEAVYWEIGHT_HANDLER 0x76
     606        HEAVYWEIGHT_HANDLER 0x77
     607        HEAVYWEIGHT_HANDLER 0x78
     608        HEAVYWEIGHT_HANDLER 0x79
     609        HEAVYWEIGHT_HANDLER 0x7a
     610        HEAVYWEIGHT_HANDLER 0x7b
     611        HEAVYWEIGHT_HANDLER 0x7c
     612        HEAVYWEIGHT_HANDLER 0x7d
     613        HEAVYWEIGHT_HANDLER 0x7e
     614        HEAVYWEIGHT_HANDLER 0x7f
  • kernel/arch/ia64/src/mm/tlb.c

    r0b49d4e r9928240  
    477477/** Instruction TLB fault handler for faults with VHPT turned off.
    478478 *
    479  * @param vector Interruption vector.
    480  * @param istate Structure with saved interruption state.
    481  *
    482  */
    483 void alternate_instruction_tlb_fault(uint64_t vector, istate_t *istate)
     479 * @param n Interruption vector.
     480 * @param istate Structure with saved interruption state.
     481 *
     482 */
     483void alternate_instruction_tlb_fault(unsigned int n, istate_t *istate)
    484484{
    485485        uintptr_t va;
     
    566566/** Data TLB fault handler for faults with VHPT turned off.
    567567 *
    568  * @param vector Interruption vector.
    569  * @param istate Structure with saved interruption state.
    570  *
    571  */
    572 void alternate_data_tlb_fault(uint64_t vector, istate_t *istate)
     568 * @param n Interruption vector.
     569 * @param istate Structure with saved interruption state.
     570 *
     571 */
     572void alternate_data_tlb_fault(unsigned int n, istate_t *istate)
    573573{
    574574        if (istate->cr_isr.sp) {
     
    623623 * This fault should not occur.
    624624 *
    625  * @param vector Interruption vector.
    626  * @param istate Structure with saved interruption state.
    627  *
    628  */
    629 void data_nested_tlb_fault(uint64_t vector, istate_t *istate)
     625 * @param n Interruption vector.
     626 * @param istate Structure with saved interruption state.
     627 *
     628 */
     629void data_nested_tlb_fault(unsigned int n, istate_t *istate)
    630630{
    631631        ASSERT(false);
     
    634634/** Data Dirty bit fault handler.
    635635 *
    636  * @param vector Interruption vector.
    637  * @param istate Structure with saved interruption state.
    638  *
    639  */
    640 void data_dirty_bit_fault(uint64_t vector, istate_t *istate)
     636 * @param n Interruption vector.
     637 * @param istate Structure with saved interruption state.
     638 *
     639 */
     640void data_dirty_bit_fault(unsigned int n, istate_t *istate)
    641641{
    642642        uintptr_t va;
     
    665665/** Instruction access bit fault handler.
    666666 *
    667  * @param vector Interruption vector.
    668  * @param istate Structure with saved interruption state.
    669  *
    670  */
    671 void instruction_access_bit_fault(uint64_t vector, istate_t *istate)
     667 * @param n Interruption vector.
     668 * @param istate Structure with saved interruption state.
     669 *
     670 */
     671void instruction_access_bit_fault(unsigned int n, istate_t *istate)
    672672{
    673673        uintptr_t va;
     
    694694/** Data access bit fault handler.
    695695 *
    696  * @param vector Interruption vector.
    697  * @param istate Structure with saved interruption state.
    698  *
    699  */
    700 void data_access_bit_fault(uint64_t vector, istate_t *istate)
     696 * @param n Interruption vector.
     697 * @param istate Structure with saved interruption state.
     698 *
     699 */
     700void data_access_bit_fault(unsigned int n, istate_t *istate)
    701701{
    702702        uintptr_t va;
     
    729729/** Data access rights fault handler.
    730730 *
    731  * @param vector Interruption vector.
    732  * @param istate Structure with saved interruption state.
    733  *
    734  */
    735 void data_access_rights_fault(uint64_t vector, istate_t *istate)
     731 * @param n Interruption vector.
     732 * @param istate Structure with saved interruption state.
     733 *
     734 */
     735void data_access_rights_fault(unsigned int n, istate_t *istate)
    736736{
    737737        uintptr_t va;
     
    753753/** Page not present fault handler.
    754754 *
    755  * @param vector Interruption vector.
    756  * @param istate Structure with saved interruption state.
    757  *
    758  */
    759 void page_not_present(uint64_t vector, istate_t *istate)
     755 * @param n Interruption vector.
     756 * @param istate Structure with saved interruption state.
     757 *
     758 */
     759void page_not_present(unsigned int n, istate_t *istate)
    760760{
    761761        uintptr_t va;
Note: See TracChangeset for help on using the changeset viewer.