Changeset 8bdcffa in mainline


Ignore:
Timestamp:
2011-11-15T00:03:30Z (12 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
c6f1908e
Parents:
e6a6c02
Message:

Add zone_external_conf_alloc() to automate allocation of external
zone configuration frames.

Location:
kernel/generic
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/include/mm/frame.h

    re6a6c02 r8bdcffa  
    163163extern void frame_mark_unavailable(pfn_t, size_t);
    164164extern size_t zone_conf_size(size_t);
     165extern pfn_t zone_external_conf_alloc(size_t);
    165166extern bool zone_merge(size_t, size_t);
    166167extern void zone_merge_all(void);
  • kernel/generic/src/mm/frame.c

    re6a6c02 r8bdcffa  
    865865{
    866866        return (count * sizeof(frame_t) + buddy_conf_size(fnzb(count)));
     867}
     868
     869/** Allocate external configuration frames from low memory. */
     870pfn_t zone_external_conf_alloc(size_t count)
     871{
     872        size_t size = zone_conf_size(count);
     873        size_t order = ispwr2(size) ? fnzb(size) : (fnzb(size) + 1);
     874
     875        return ADDR2PFN((uintptr_t) frame_alloc(order, FRAME_LOWMEM));
    867876}
    868877
Note: See TracChangeset for help on using the changeset viewer.