Changeset 594a468 in mainline for generic/src/mm/buddy.c
- Timestamp:
- 2005-11-15T16:00:24Z (20 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- db79676
- Parents:
- 93354b0
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
generic/src/mm/buddy.c
r93354b0 r594a468 41 41 * @param max_order The biggest allocable size will be 2^max_order. 42 42 * @param op Operations for new buddy system. 43 * @param data Pointer to be used by implentation. 43 44 * 44 45 * @return New buddy system. 45 46 */ 46 buddy_system_t *buddy_system_create(__u8 max_order, buddy_system_operations_t *op )47 buddy_system_t *buddy_system_create(__u8 max_order, buddy_system_operations_t *op, void *data) 47 48 { 48 49 buddy_system_t *b; … … 77 78 b->max_order = max_order; 78 79 b->op = op; 80 b->data = data; 79 81 } 80 82 … … 131 133 * Bisect the block and set order of both of its parts to i. 132 134 */ 133 hlp = b->op->bisect( res);134 b->op->set_order( res, i);135 b->op->set_order( hlp, i);135 hlp = b->op->bisect(b, res); 136 b->op->set_order(b, res, i); 137 b->op->set_order(b, hlp, i); 136 138 137 139 /* … … 159 161 * Determine block's order. 160 162 */ 161 i = b->op->get_order(b lock);163 i = b->op->get_order(b, block); 162 164 163 165 ASSERT(i < b->max_order); … … 167 169 * See if there is any buddy in the list of order i. 168 170 */ 169 buddy = b->op->find_buddy(b lock);171 buddy = b->op->find_buddy(b, block); 170 172 if (buddy) { 171 173 172 ASSERT(b->op->get_order(b uddy) == i);174 ASSERT(b->op->get_order(b, buddy) == i); 173 175 174 176 /* … … 180 182 * Invalidate order of both block and buddy. 181 183 */ 182 b->op->set_order(b lock, BUDDY_SYSTEM_INNER_BLOCK);183 b->op->set_order(b uddy, BUDDY_SYSTEM_INNER_BLOCK);184 b->op->set_order(b, block, BUDDY_SYSTEM_INNER_BLOCK); 185 b->op->set_order(b, buddy, BUDDY_SYSTEM_INNER_BLOCK); 184 186 185 187 /* 186 188 * Coalesce block and buddy into one block. 187 189 */ 188 hlp = b->op->coalesce(b lock, buddy);190 hlp = b->op->coalesce(b, block, buddy); 189 191 190 192 /* 191 193 * Set order of the coalesced block to i + 1. 192 194 */ 193 b->op->set_order( hlp, i + 1);195 b->op->set_order(b, hlp, i + 1); 194 196 195 197 /*
Note:
See TracChangeset
for help on using the changeset viewer.