Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 412 → Rev 413

/SPARTAN/trunk/src/mm/frame.c
68,7 → 68,7
*/
__address frame_alloc(int flags)
{
pri_t pri;
ipl_t ipl;
link_t *cur, *tmp;
zone_t *z;
zone_t *zone = NULL;
76,7 → 76,7
__address v;
loop:
pri = cpu_priority_high();
ipl = interrupts_disable();
spinlock_lock(&zone_head_lock);
/*
104,7 → 104,7
* TODO: Sleep until frames are available again.
*/
spinlock_unlock(&zone_head_lock);
cpu_priority_restore(pri);
interrupts_restore(ipl);
 
panic("Sleep not implemented.\n");
goto loop;
126,7 → 126,7
spinlock_unlock(&zone->lock);
spinlock_unlock(&zone_head_lock);
cpu_priority_restore(pri);
interrupts_restore(ipl);
return v;
}
141,7 → 141,7
*/
void frame_free(__address addr)
{
pri_t pri;
ipl_t ipl;
link_t *cur;
zone_t *z;
zone_t *zone = NULL;
149,7 → 149,7
ASSERT(addr % FRAME_SIZE == 0);
pri = cpu_priority_high();
ipl = interrupts_disable();
spinlock_lock(&zone_head_lock);
/*
187,7 → 187,7
spinlock_unlock(&zone->lock);
spinlock_unlock(&zone_head_lock);
cpu_priority_restore(pri);
interrupts_restore(ipl);
}
 
/** Mark frame not free.
199,7 → 199,7
*/
void frame_not_free(__address addr)
{
pri_t pri;
ipl_t ipl;
link_t *cur;
zone_t *z;
zone_t *zone = NULL;
207,7 → 207,7
ASSERT(addr % FRAME_SIZE == 0);
pri = cpu_priority_high();
ipl = interrupts_disable();
spinlock_lock(&zone_head_lock);
/*
246,7 → 246,7
spinlock_unlock(&zone->lock);
spinlock_unlock(&zone_head_lock);
cpu_priority_restore(pri);
interrupts_restore(ipl);
}
 
/** Mark frame region not free.
335,15 → 335,15
*/
void zone_attach(zone_t *zone)
{
pri_t pri;
ipl_t ipl;
pri = cpu_priority_high();
ipl = interrupts_disable();
spinlock_lock(&zone_head_lock);
list_append(&zone->link, &zone_head);
spinlock_unlock(&zone_head_lock);
cpu_priority_restore(pri);
interrupts_restore(ipl);
}
 
/** Initialize frame structure