Changes in kernel/generic/src/mm/km.c [b0c2075:9d58539] in mainline
- File:
-
- 1 edited
-
kernel/generic/src/mm/km.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/mm/km.c
rb0c2075 r9d58539 233 233 * @param[inout] framep Pointer to a variable which will receive the physical 234 234 * address of the allocated frame. 235 * @param[in] flags Frame allocation flags. FRAME_NONE, FRAME_NO_RESERVE 236 * and FRAME_ATOMIC bits are allowed. 235 * @param[in] flags Frame allocation flags. FRAME_NONE or FRAME_NO_RESERVE. 237 236 * @return Virtual address of the allocated frame. 238 237 */ 239 238 uintptr_t km_temporary_page_get(uintptr_t *framep, frame_flags_t flags) 240 239 { 240 uintptr_t frame; 241 uintptr_t page; 242 241 243 ASSERT(THREAD); 242 244 ASSERT(framep); 243 ASSERT(!(flags & ~ (FRAME_NO_RESERVE | FRAME_ATOMIC)));244 245 ASSERT(!(flags & ~FRAME_NO_RESERVE)); 246 245 247 /* 246 248 * Allocate a frame, preferably from high memory. 247 249 */ 248 uintptr_t page; 249 uintptr_t frame = 250 frame_alloc(1, FRAME_HIGHMEM | FRAME_ATOMIC | flags, 0); 250 frame = (uintptr_t) frame_alloc(ONE_FRAME, 251 FRAME_HIGHMEM | FRAME_ATOMIC | flags); 251 252 if (frame) { 252 253 page = km_map(frame, PAGE_SIZE, 253 254 PAGE_READ | PAGE_WRITE | PAGE_CACHEABLE); 254 255 // FIXME 256 ASSERT(page); 255 ASSERT(page); // FIXME 257 256 } else { 258 frame = frame_alloc(1, FRAME_LOWMEM | flags, 0); 259 if (!frame) 260 return (uintptr_t) NULL; 261 257 frame = (uintptr_t) frame_alloc_noreserve(ONE_FRAME, 258 FRAME_LOWMEM); 262 259 page = PA2KA(frame); 263 260 } 264 261 265 262 *framep = frame; 266 return page; 263 return page; 267 264 } 268 265
Note:
See TracChangeset
for help on using the changeset viewer.
