Changeset b43eaba0 in mainline for kernel/generic/include/mm/buddy.h
- Timestamp:
- 2006-12-25T11:38:48Z (18 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 66eb2c8
- Parents:
- b2e5e25
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/include/mm/buddy.h
rb2e5e25 rb43eaba0 43 43 /** Buddy system operations to be implemented by each implementation. */ 44 44 struct buddy_system_operations { 45 link_t *(* find_buddy)(buddy_system_t *, link_t *); /**< Return pointer to left-side or right-side buddy for block passed as argument. */ 46 link_t *(* bisect)(buddy_system_t *, link_t *); /**< Bisect the block passed as argument and return pointer to the new right-side buddy. */ 47 link_t *(* coalesce)(buddy_system_t *, link_t *, link_t *); /**< Coalesce two buddies into a bigger block. */ 48 void (*set_order)(buddy_system_t *, link_t *, uint8_t); /**< Set order of block passed as argument. */ 49 uint8_t (*get_order)(buddy_system_t *, link_t *); /**< Return order of block passed as argument. */ 50 void (*mark_busy)(buddy_system_t *, link_t *); /**< Mark block as busy. */ 51 void (*mark_available)(buddy_system_t *, link_t *); /**< Mark block as available. */ 45 /** Return pointer to left-side or right-side buddy for block passed as 46 * argument. */ 47 link_t *(* find_buddy)(buddy_system_t *, link_t *); 48 /** Bisect the block passed as argument and return pointer to the new 49 * right-side buddy. */ 50 link_t *(* bisect)(buddy_system_t *, link_t *); 51 /** Coalesce two buddies into a bigger block. */ 52 link_t *(* coalesce)(buddy_system_t *, link_t *, link_t *); 53 /** Set order of block passed as argument. */ 54 void (*set_order)(buddy_system_t *, link_t *, uint8_t); 55 /** Return order of block passed as argument. */ 56 uint8_t (*get_order)(buddy_system_t *, link_t *); 57 /** Mark block as busy. */ 58 void (*mark_busy)(buddy_system_t *, link_t *); 59 /** Mark block as available. */ 60 void (*mark_available)(buddy_system_t *, link_t *); 52 61 /** Find parent of block that has given order */ 53 62 link_t *(* find_block)(buddy_system_t *, link_t *, uint8_t); … … 56 65 57 66 struct buddy_system { 58 uint8_t max_order; /**< Maximal order of block which can be stored by buddy system. */ 67 /** Maximal order of block which can be stored by buddy system. */ 68 uint8_t max_order; 59 69 link_t *order; 60 70 buddy_system_operations_t *op; 61 void *data; /**< Pointer to be used by the implementation. */ 71 /** Pointer to be used by the implementation. */ 72 void *data; 62 73 }; 63 74 64 extern void buddy_system_create(buddy_system_t *b, 65 uint8_t max_order, 66 buddy_system_operations_t *op, void *data); 75 extern void buddy_system_create(buddy_system_t *b, uint8_t max_order, 76 buddy_system_operations_t *op, void *data); 67 77 extern link_t *buddy_system_alloc(buddy_system_t *b, uint8_t i); 68 78 extern bool buddy_system_can_alloc(buddy_system_t *b, uint8_t order);
Note:
See TracChangeset
for help on using the changeset viewer.