Rev 3007 | Rev 3141 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3007 | Rev 3104 | ||
---|---|---|---|
Line 160... | Line 160... | ||
160 | * It is not physically present in the ELF image. |
160 | * It is not physically present in the ELF image. |
161 | * To resolve the situation, a frame must be allocated |
161 | * To resolve the situation, a frame must be allocated |
162 | * and cleared. |
162 | * and cleared. |
163 | */ |
163 | */ |
164 | frame = (uintptr_t)frame_alloc(ONE_FRAME, 0); |
164 | frame = (uintptr_t)frame_alloc(ONE_FRAME, 0); |
165 | memsetb(PA2KA(frame), FRAME_SIZE, 0); |
165 | memsetb((void *) PA2KA(frame), FRAME_SIZE, 0); |
166 | dirty = true; |
166 | dirty = true; |
167 | } else { |
167 | } else { |
168 | size_t pad_lo, pad_hi; |
168 | size_t pad_lo, pad_hi; |
169 | /* |
169 | /* |
170 | * The mixed case. |
170 | * The mixed case. |
Line 185... | Line 185... | ||
185 | 185 | ||
186 | frame = (uintptr_t)frame_alloc(ONE_FRAME, 0); |
186 | frame = (uintptr_t)frame_alloc(ONE_FRAME, 0); |
187 | memcpy((void *) (PA2KA(frame) + pad_lo), |
187 | memcpy((void *) (PA2KA(frame) + pad_lo), |
188 | (void *) (base + i * FRAME_SIZE + pad_lo), |
188 | (void *) (base + i * FRAME_SIZE + pad_lo), |
189 | FRAME_SIZE - pad_lo - pad_hi); |
189 | FRAME_SIZE - pad_lo - pad_hi); |
190 | memsetb(PA2KA(frame), pad_lo, 0); |
190 | memsetb((void *) PA2KA(frame), pad_lo, 0); |
191 | memsetb(PA2KA(frame) + FRAME_SIZE - pad_hi, pad_hi, 0); |
191 | memsetb((void *) (PA2KA(frame) + FRAME_SIZE - pad_hi), pad_hi, 0); |
192 | dirty = true; |
192 | dirty = true; |
193 | } |
193 | } |
194 | 194 | ||
195 | if (dirty && area->sh_info) { |
195 | if (dirty && area->sh_info) { |
196 | frame_reference_add(ADDR2PFN(frame)); |
196 | frame_reference_add(ADDR2PFN(frame)); |