Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/amd64/src/pm.c

    r1d3d2cf r149d14e5  
    171171
    172172                d->unused = 0;
    173                 d->selector = GDT_SELECTOR(KTEXT_DES);
     173                d->selector = gdtselector(KTEXT_DES);
    174174
    175175                d->present = 1;
    176176                d->type = AR_INTERRUPT; /* masking interrupt */
     177
     178                idt_setoffset(d, ((uintptr_t) interrupt_handlers) +
     179                    i * interrupt_handler_size);
    177180        }
    178 
    179         d = &idt[0];
    180         idt_setoffset(d++, (uintptr_t) &int_0);
    181         idt_setoffset(d++, (uintptr_t) &int_1);
    182         idt_setoffset(d++, (uintptr_t) &int_2);
    183         idt_setoffset(d++, (uintptr_t) &int_3);
    184         idt_setoffset(d++, (uintptr_t) &int_4);
    185         idt_setoffset(d++, (uintptr_t) &int_5);
    186         idt_setoffset(d++, (uintptr_t) &int_6);
    187         idt_setoffset(d++, (uintptr_t) &int_7);
    188         idt_setoffset(d++, (uintptr_t) &int_8);
    189         idt_setoffset(d++, (uintptr_t) &int_9);
    190         idt_setoffset(d++, (uintptr_t) &int_10);
    191         idt_setoffset(d++, (uintptr_t) &int_11);
    192         idt_setoffset(d++, (uintptr_t) &int_12);
    193         idt_setoffset(d++, (uintptr_t) &int_13);
    194         idt_setoffset(d++, (uintptr_t) &int_14);
    195         idt_setoffset(d++, (uintptr_t) &int_15);
    196         idt_setoffset(d++, (uintptr_t) &int_16);
    197         idt_setoffset(d++, (uintptr_t) &int_17);
    198         idt_setoffset(d++, (uintptr_t) &int_18);
    199         idt_setoffset(d++, (uintptr_t) &int_19);
    200         idt_setoffset(d++, (uintptr_t) &int_20);
    201         idt_setoffset(d++, (uintptr_t) &int_21);
    202         idt_setoffset(d++, (uintptr_t) &int_22);
    203         idt_setoffset(d++, (uintptr_t) &int_23);
    204         idt_setoffset(d++, (uintptr_t) &int_24);
    205         idt_setoffset(d++, (uintptr_t) &int_25);
    206         idt_setoffset(d++, (uintptr_t) &int_26);
    207         idt_setoffset(d++, (uintptr_t) &int_27);
    208         idt_setoffset(d++, (uintptr_t) &int_28);
    209         idt_setoffset(d++, (uintptr_t) &int_29);
    210         idt_setoffset(d++, (uintptr_t) &int_30);
    211         idt_setoffset(d++, (uintptr_t) &int_31);
    212         idt_setoffset(d++, (uintptr_t) &int_32);
    213         idt_setoffset(d++, (uintptr_t) &int_33);
    214         idt_setoffset(d++, (uintptr_t) &int_34);
    215         idt_setoffset(d++, (uintptr_t) &int_35);
    216         idt_setoffset(d++, (uintptr_t) &int_36);
    217         idt_setoffset(d++, (uintptr_t) &int_37);
    218         idt_setoffset(d++, (uintptr_t) &int_38);
    219         idt_setoffset(d++, (uintptr_t) &int_39);
    220         idt_setoffset(d++, (uintptr_t) &int_40);
    221         idt_setoffset(d++, (uintptr_t) &int_41);
    222         idt_setoffset(d++, (uintptr_t) &int_42);
    223         idt_setoffset(d++, (uintptr_t) &int_43);
    224         idt_setoffset(d++, (uintptr_t) &int_44);
    225         idt_setoffset(d++, (uintptr_t) &int_45);
    226         idt_setoffset(d++, (uintptr_t) &int_46);
    227         idt_setoffset(d++, (uintptr_t) &int_47);
    228         idt_setoffset(d++, (uintptr_t) &int_48);
    229         idt_setoffset(d++, (uintptr_t) &int_49);
    230         idt_setoffset(d++, (uintptr_t) &int_50);
    231         idt_setoffset(d++, (uintptr_t) &int_51);
    232         idt_setoffset(d++, (uintptr_t) &int_52);
    233         idt_setoffset(d++, (uintptr_t) &int_53);
    234         idt_setoffset(d++, (uintptr_t) &int_54);
    235         idt_setoffset(d++, (uintptr_t) &int_55);
    236         idt_setoffset(d++, (uintptr_t) &int_56);
    237         idt_setoffset(d++, (uintptr_t) &int_57);
    238         idt_setoffset(d++, (uintptr_t) &int_58);
    239         idt_setoffset(d++, (uintptr_t) &int_59);
    240         idt_setoffset(d++, (uintptr_t) &int_60);
    241         idt_setoffset(d++, (uintptr_t) &int_61);
    242         idt_setoffset(d++, (uintptr_t) &int_62);
    243         idt_setoffset(d++, (uintptr_t) &int_63);
    244181}
    245182
     
    291228         * to its own TSS. We just need to load the TR register.
    292229         */
    293         tr_load(GDT_SELECTOR(TSS_DES));
     230        tr_load(gdtselector(TSS_DES));
    294231}
    295232
Note: See TracChangeset for help on using the changeset viewer.