frame.c File Reference

Physical frame allocator. More...

Include dependency graph for frame.c:

Go to the source code of this file.

Data Structures

struct  frame_t
struct  zone_t

Functions

static index_t frame_index (zone_t *zone, frame_t *frame)
static index_t frame_index_abs (zone_t *zone, frame_t *frame)
static int frame_index_valid (zone_t *zone, index_t index)
static index_t make_frame_index (zone_t *zone, frame_t *frame)
static void frame_initialize (frame_t *frame)
static int zones_add_zone (zone_t *newzone)
static zone_tfind_zone_and_lock (pfn_t frame, int *pzone)
static int zone_can_alloc (zone_t *z, __u8 order)
static zone_tfind_free_zone_lock (__u8 order, int *pzone)
static link_tzone_buddy_find_block (buddy_system_t *b, link_t *child, __u8 order)
static void zone_buddy_print_id (buddy_system_t *b, link_t *block)
static link_tzone_buddy_find_buddy (buddy_system_t *b, link_t *block)
static link_tzone_buddy_bisect (buddy_system_t *b, link_t *block)
static link_tzone_buddy_coalesce (buddy_system_t *b, link_t *block_1, link_t *block_2)
static void zone_buddy_set_order (buddy_system_t *b, link_t *block, __u8 order)
static __u8 zone_buddy_get_order (buddy_system_t *b, link_t *block)
static void zone_buddy_mark_busy (buddy_system_t *b, link_t *block)
static void zone_buddy_mark_available (buddy_system_t *b, link_t *block)
static pfn_t zone_frame_alloc (zone_t *zone, __u8 order)
static void zone_frame_free (zone_t *zone, index_t frame_idx)
static frame_tzone_get_frame (zone_t *zone, index_t frame_idx)
static void zone_mark_unavailable (zone_t *zone, index_t frame_idx)
static void _zone_merge (zone_t *z, zone_t *z1, zone_t *z2)
static void return_config_frames (zone_t *newzone, zone_t *oldzone)
static void zone_reduce_region (zone_t *zone, pfn_t frame_idx, count_t count)
void zone_merge (int z1, int z2)
void zone_merge_all (void)
static void zone_construct (pfn_t start, count_t count, zone_t *z, int flags)
__address zone_conf_size (count_t count)
int zone_create (pfn_t start, count_t count, pfn_t confframe, int flags)
void frame_set_parent (pfn_t frame, void *data, int hint)
void * frame_get_parent (pfn_t frame, int hint)
pfn_t frame_alloc_generic (__u8 order, int flags, int *status, int *pzone)
void frame_free (pfn_t pfn)
void frame_reference_add (pfn_t pfn)
void frame_mark_unavailable (pfn_t start, count_t count)
void frame_init (void)
void zone_print_list (void)
void zone_print_one (int znum)

Variables

struct {
 SPINLOCK_DECLARE (lock)
   const char *   name
   iroutine   f
   int   count
   zone_t *   info [ZONES_MAX]
zones
static struct buddy_system_operations zone_buddy_system_operations


Detailed Description

This file contains the physical frame allocator and memory zone management. The frame allocator is built on top of the buddy allocator.

See also:
buddy.c

Definition in file frame.c.


Variable Documentation

int count
 

Definition at line 97 of file frame.c.

Referenced by anon_share(), elf_share(), hw_map(), kcpulb(), printf_putstr(), tlb_shootdown_ipi_recv(), zone_get_frame(), and zone_merge_all().

zone_t* info[ZONES_MAX]
 

Definition at line 98 of file frame.c.


Generated on Sun Jun 18 17:39:41 2006 for HelenOS Kernel (sparc64) by  doxygen 1.4.6