Subversion Repositories HelenOS

Rev

Rev 2292 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2292 Rev 2307
Line 64... Line 64...
64
     * The order must be calculated with respect to the emulated
64
     * The order must be calculated with respect to the emulated
65
     * 16K page size.
65
     * 16K page size.
66
     */
66
     */
67
    int order = fnzb32(((ITSB_ENTRY_COUNT + DTSB_ENTRY_COUNT) *
67
    int order = fnzb32(((ITSB_ENTRY_COUNT + DTSB_ENTRY_COUNT) *
68
        sizeof(tsb_entry_t)) >> FRAME_WIDTH);
68
        sizeof(tsb_entry_t)) >> FRAME_WIDTH);
-
 
69
 
69
    uintptr_t tsb = (uintptr_t) frame_alloc(order, flags | FRAME_KA);
70
    uintptr_t tsb = (uintptr_t) frame_alloc(order, flags | FRAME_KA);
70
 
71
 
71
    if (!tsb)
72
    if (!tsb)
72
        return -1;
73
        return -1;
73
 
74
 
74
    as->arch.itsb = (tsb_entry_t *) tsb;
75
    as->arch.itsb = (tsb_entry_t *) tsb;
75
    as->arch.dtsb = (tsb_entry_t *) (tsb + ITSB_ENTRY_COUNT *
76
    as->arch.dtsb = (tsb_entry_t *) (tsb + ITSB_ENTRY_COUNT *
76
        sizeof(tsb_entry_t));
77
        sizeof(tsb_entry_t));
-
 
78
 
77
    memsetb((uintptr_t) as->arch.itsb,
79
    memsetb((uintptr_t) as->arch.itsb,
78
        (ITSB_ENTRY_COUNT + DTSB_ENTRY_COUNT) * sizeof(tsb_entry_t), 0);
80
        (ITSB_ENTRY_COUNT + DTSB_ENTRY_COUNT) * sizeof(tsb_entry_t), 0);
79
#endif
81
#endif
80
    return 0;
82
    return 0;
81
}
83
}