Subversion Repositories HelenOS-historic

Rev

Rev 534 | Rev 538 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 534 Rev 537
Line 52... Line 52...
52
    link_t link;        /**< link to previous and next zone */
52
    link_t link;        /**< link to previous and next zone */
53
 
53
 
54
    spinlock_t lock;    /**< this lock protects everything below */
54
    spinlock_t lock;    /**< this lock protects everything below */
55
    __address base;     /**< physical address of the first frame in the frames array */
55
    __address base;     /**< physical address of the first frame in the frames array */
56
    frame_t *frames;    /**< array of frame_t structures in this zone */
56
    frame_t *frames;    /**< array of frame_t structures in this zone */
57
    link_t free_head;   /**< list of free frame_t structures */
-
 
58
    count_t free_count; /**< number of frame_t structures in free list */
57
    count_t free_count; /**< number of frame_t structures in free list */
59
    count_t busy_count; /**< number of frame_t structures not in free list */
58
    count_t busy_count; /**< number of frame_t structures not in free list */
60
   
59
   
61
    buddy_system_t * buddy_system; /**< buddy system for the zone */
60
    buddy_system_t * buddy_system; /**< buddy system for the zone */
62
    int flags;
61
    int flags;
63
};
62
};
64
 
63
 
65
struct frame {
64
struct frame {
66
    count_t refcount;   /**< when == 0, the frame is in free list */
65
    count_t refcount;   /**< tracking of shared frames  */
67
    link_t link;        /**< link to zone free list when refcount == 0 */
-
 
68
    __u8 buddy_order;   /**< buddy system block order */
66
    __u8 buddy_order;   /**< buddy system block order */
69
    link_t buddy_link;  /**< link to the next free block inside one order*/
67
    link_t buddy_link;  /**< link to the next free block inside one order */
70
};
68
};
71
 
69
 
72
struct region {
70
struct region {
73
    __address base;
71
    __address base;
74
    size_t size;
72
    size_t size;