Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 762 → Rev 763

/kernel/trunk/generic/include/mm/frame.h
48,8 → 48,8
#define FRAME_NO_MEMORY 1 /* frame_alloc return status */
#define FRAME_ERROR 2 /* frame_alloc return status */
 
#define FRAME2ADDR(zone, frame) ((zone)->base + ((frame) - (zone)->frames) * FRAME_SIZE)
#define ADDR2FRAME(zone, addr) (&((zone)->frames[((addr) - (zone)->base) / FRAME_SIZE]))
#define FRAME2ADDR(zone, frame) ((zone)->base + (((frame) - (zone)->frames) << FRAME_WIDTH))
#define ADDR2FRAME(zone, addr) (&((zone)->frames[(((addr) - (zone)->base) >> FRAME_WIDTH)]))
#define FRAME_INDEX(zone, frame) ((index_t)((frame) - (zone)->frames))
#define FRAME_INDEX_ABS(zone, frame) (((index_t)((frame) - (zone)->frames)) + (zone)->base_index)
#define FRAME_INDEX_VALID(zone, index) (((index) >= 0) && ((index) < ((zone)->free_count + (zone)->busy_count)))
/kernel/trunk/generic/src/mm/slab.c
86,8 → 86,7
}
 
/* Fill in slab structures */
/* TODO: some better way of accessing the frame, although
* the optimizer might optimize the division out :-/ */
/* TODO: some better way of accessing the frame */
for (i=0; i< (1<<cache->order); i++) {
ADDR2FRAME(zone, (__address)(data+i*PAGE_SIZE))->parent = slab;
}
144,7 → 143,7
if (!slab)
slab = obj2slab(obj);
 
spinlock_lock(cache->lock);
spinlock_lock(&cache->lock);
 
*((int *)obj) = slab->nextavail;
slab->nextavail = (obj - slab->start)/cache->size;
165,7 → 164,7
spinlock_lock(&cache->lock);
}
 
spinlock_unlock(cache->lock);
spinlock_unlock(&cache->lock);
 
return frames;
}