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