Subversion Repositories HelenOS-historic

Rev

Rev 623 | Rev 629 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 623 Rev 624
Line 40... Line 40...
40
#include <arch.h>
40
#include <arch.h>
41
#include <print.h>
41
#include <print.h>
42
#include <align.h>
42
#include <align.h>
43
 
43
 
44
SPINLOCK_INITIALIZE(zone_head_lock);    /**< this lock protects zone_head list */
44
SPINLOCK_INITIALIZE(zone_head_lock);    /**< this lock protects zone_head list */
45
link_t zone_head;                   /**< list of all zones in the system */
45
LIST_INITIALIZE(zone_head);             /**< list of all zones in the system */
46
 
46
 
47
/** Blacklist containing non-available areas of memory.
47
/** Blacklist containing non-available areas of memory.
48
 *
48
 *
49
 * This blacklist is used to exclude frames that cannot be allocated
49
 * This blacklist is used to exclude frames that cannot be allocated
50
 * (e.g. kernel memory) from available memory map.
50
 * (e.g. kernel memory) from available memory map.
Line 66... Line 66...
66
 * Initialize physical memory managemnt.
66
 * Initialize physical memory managemnt.
67
 */
67
 */
68
void frame_init(void)
68
void frame_init(void)
69
{
69
{
70
    if (config.cpu_active == 1) {
70
    if (config.cpu_active == 1) {
71
        zone_init();
-
 
72
        frame_region_not_free(KA2PA(config.base), config.kernel_size);
71
        frame_region_not_free(KA2PA(config.base), config.kernel_size);
73
    }
72
    }
74
 
73
 
75
    frame_arch_init();
74
    frame_arch_init();
76
}
75
}
Line 233... Line 232...
233
    ASSERT(index < ZONE_BLACKLIST_SIZE);
232
    ASSERT(index < ZONE_BLACKLIST_SIZE);
234
    zone_blacklist[index].base = base;
233
    zone_blacklist[index].base = base;
235
    zone_blacklist[index].size = size;
234
    zone_blacklist[index].size = size;
236
}
235
}
237
 
236
 
238
 
-
 
239
/** Initialize zonekeeping
-
 
240
 *
-
 
241
 * Initialize zonekeeping.
-
 
242
 */
-
 
243
void zone_init(void)
-
 
244
{
-
 
245
    list_initialize(&zone_head);
-
 
246
}
-
 
247
 
-
 
248
/** Create frame zones in region of available memory.
237
/** Create frame zones in region of available memory.
249
 *
238
 *
250
 * Avoid any black listed areas of non-available memory.
239
 * Avoid any black listed areas of non-available memory.
251
 * Assume that the black listed areas cannot overlap
240
 * Assume that the black listed areas cannot overlap
252
 * one another or cross available memory region boundaries.
241
 * one another or cross available memory region boundaries.