Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 367 → Rev 368

/SPARTAN/trunk/include/mm/frame.h
51,7 → 51,6
};
 
struct frame {
zone_t *zone; /**< host zone */
count_t refcount; /**< when > 0, the frame is in busy list, otherwise the frame is in free list */
link_t link; /**< link either to frame_zone free or busy list */
};
59,39 → 58,20
extern spinlock_t zone_head_lock; /**< this lock protects zone_head list */
extern link_t zone_head; /**< list of all zones in the system */
 
extern count_t frames;
extern count_t frames_free;
extern void zone_init(void);
extern zone_t *zone_create(__address start, size_t size, int flags);
extern void zone_attach(zone_t *zone);
 
extern count_t kernel_frames;
extern count_t kernel_frames_free;
 
extern __u8 *frame_bitmap;
extern count_t frame_bitmap_octets;
 
extern __u8 *frame_kernel_bitmap;
 
extern void frame_init(void);
 
extern void frame_initialize(frame_t *frame, zone_t *zone);
__address frame_alloc(int flags);
extern void frame_free(__address addr);
extern void frame_not_free(__address addr);
extern void frame_region_not_free(__address start, __address stop);
 
extern void zone_init(void);
extern zone_t *zone_create(__address start, size_t size, int flags);
extern void zone_attach(zone_t *zone);
 
extern void frame_initialize(frame_t *frame, zone_t *zone);
extern __address frame_get_address(frame_t *frame);
 
/*
* TODO: Implement the following functions.
*/
 
/*
extern frame_t *frame_alloc(int flags);
extern void frame_free(frame_t *frame);
*/
extern frame_t *frame_reference(frame_t *frame);
extern void frame_release(frame_t *frame);