Changeset 328f2934 in mainline for generic/include/mm/frame.h
- Timestamp:
- 2005-12-04T19:37:13Z (20 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- cf585c9
- Parents:
- d7ac642
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
generic/include/mm/frame.h
rd7ac642 r328f2934 43 43 #define ADDR2FRAME(zone, addr) (&((zone)->frames[((addr) - (zone)->base) / FRAME_SIZE])) 44 44 #define FRAME_INDEX(zone, frame) ((count_t)((frame) - (zone)->frames)) 45 #define IS_BUDDY_LEFT_BLOCK(zone, frame) ((FRAME_INDEX((zone), (frame)) % (1 >> ((frame)->buddy_order + 1))) == 0) 46 #define IS_BUDDY_RIGHT_BLOCK(zone, frame) ((FRAME_INDEX((zone), (frame)) % (1 >> ((frame)->buddy_order + 1))) == (1 >> (frame)->buddy_order)) 45 #define FRAME_INDEX_VALID(zone, index) (((index) >= 0) && ((index) < ((zone)->free_count + (zone)->busy_count))) 46 #define IS_BUDDY_LEFT_BLOCK(zone, frame) ((FRAME_INDEX((zone), (frame)) % (1 << ((frame)->buddy_order + 1))) == 0) 47 #define IS_BUDDY_RIGHT_BLOCK(zone, frame) ((FRAME_INDEX((zone), (frame)) % (1 << ((frame)->buddy_order + 1))) == (1 << (frame)->buddy_order)) 47 48 48 49 #define ZONE_BLACKLIST_SIZE 3 49 50 50 51 struct zone { … … 69 70 }; 70 71 72 struct region { 73 __address base; 74 size_t size; 75 }; 76 77 extern region_t zone_blacklist[]; 78 extern count_t zone_blacklist_count; 79 extern void frame_region_not_free(__address base, size_t size); 80 extern void zone_create_in_region(__address base, size_t size); 81 71 82 extern spinlock_t zone_head_lock; /**< this lock protects zone_head list */ 72 83 extern link_t zone_head; /**< list of all zones in the system */ … … 78 89 extern void frame_init(void); 79 90 extern void frame_initialize(frame_t *frame, zone_t *zone); 80 __address frame_alloc(int flags );91 __address frame_alloc(int flags, __u8 order); 81 92 extern void frame_free(__address addr); 82 extern void frame_not_free(__address addr);83 extern void frame_region_not_free(__address start, __address stop);84 93 zone_t * get_zone_by_frame(frame_t * frame); 85 94 … … 92 101 void zone_buddy_set_order(buddy_system_t *b, link_t * block, __u8 order); 93 102 __u8 zone_buddy_get_order(buddy_system_t *b, link_t * block); 94 95 __address zone_buddy_frame_alloc(int flags, __u8 order); 96 void zone_buddy_frame_free(__address addr); 103 void zone_buddy_mark_busy(buddy_system_t *b, link_t * block); 97 104 98 105 /*
Note:
See TracChangeset
for help on using the changeset viewer.