Changeset 6e8b3c8 in mainline for generic/include/mm/frame.h
- Timestamp:
- 2005-11-11T18:50:41Z (20 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 30187eb
- Parents:
- 8a0b3730
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
generic/include/mm/frame.h
r8a0b3730 r6e8b3c8 34 34 #include <list.h> 35 35 #include <synch/spinlock.h> 36 #include <mm/buddy.h> 36 37 37 38 #define FRAME_KA 1 /* skip frames conflicting with user address space */ 38 39 #define FRAME_PANIC 2 /* panic on failure */ 40 41 #define FRAME2ADDR(zone, frame) ((zone)->base + ((frame) - (zone)->frames) * FRAME_SIZE) 42 #define ADDR2FRAME(zone, addr) (&((zone)->frames[((addr) - (zone)->base) / FRAME_SIZE])) 39 43 40 44 struct zone { … … 47 51 count_t free_count; /**< number of frame_t structures in free list */ 48 52 count_t busy_count; /**< number of frame_t structures not in free list */ 53 54 buddy_system_t * buddy_system; /**< buddy system allocator for the zone */ 49 55 int flags; 50 56 }; … … 53 59 count_t refcount; /**< when == 0, the frame is in free list */ 54 60 link_t link; /**< link to zone free list when refcount == 0 */ 61 __u8 order; /**< buddy system block order */ 62 link_t buddy_link; /**< link to the next free block inside one order*/ 55 63 }; 56 64 … … 70 78 71 79 /* 80 * Buddy system operations 81 */ 82 link_t * zone_buddy_find_buddy(link_t * buddy); 83 link_t * zone_buddy_bisect(link_t * block); 84 link_t * zone_buddy_coalesce(link_t * buddy_l, link_t * buddy_r); 85 void zone_buddy_set_order(link_t * block, __u8 order); 86 __u8 zone_buddy_get_order(link_t * block); 87 88 __address zone_buddy_frame_alloc(int flags, __u8 order); 89 void zone_buddy_frame_free(__address addr); 90 91 /* 72 92 * TODO: Implement the following functions. 73 93 */
Note:
See TracChangeset
for help on using the changeset viewer.