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