Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/mm/km.c

    rb0c2075 r9d58539  
    233233 * @param[inout] framep Pointer to a variable which will receive the physical
    234234 *                      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.
    237236 * @return              Virtual address of the allocated frame.
    238237 */
    239238uintptr_t km_temporary_page_get(uintptr_t *framep, frame_flags_t flags)
    240239{
     240        uintptr_t frame;
     241        uintptr_t page;
     242
    241243        ASSERT(THREAD);
    242244        ASSERT(framep);
    243         ASSERT(!(flags & ~(FRAME_NO_RESERVE | FRAME_ATOMIC)));
    244        
     245        ASSERT(!(flags & ~FRAME_NO_RESERVE));
     246
    245247        /*
    246248         * Allocate a frame, preferably from high memory.
    247249         */
    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);
    251252        if (frame) {
    252253                page = km_map(frame, PAGE_SIZE,
    253254                    PAGE_READ | PAGE_WRITE | PAGE_CACHEABLE);
    254                
    255                 // FIXME
    256                 ASSERT(page);
     255                ASSERT(page);   // FIXME
    257256        } 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);
    262259                page = PA2KA(frame);
    263260        }
    264        
     261
    265262        *framep = frame;
    266         return page;
     263        return page;   
    267264}
    268265
Note: See TracChangeset for help on using the changeset viewer.