Rev 683 | Rev 701 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 683 | Rev 686 | ||
|---|---|---|---|
| Line 236... | Line 236... | ||
| 236 | /** Prints out structure of buddy system |
236 | /** Prints out structure of buddy system |
| 237 | * |
237 | * |
| 238 | * @param b Pointer to buddy system |
238 | * @param b Pointer to buddy system |
| 239 | * @param es Element size |
239 | * @param es Element size |
| 240 | */ |
240 | */ |
| 241 | void buddy_system_structure_print(buddy_system_t *b) { |
241 | void buddy_system_structure_print(buddy_system_t *b, size_t elem_size) { |
| 242 | index_t i; |
242 | index_t i; |
| 243 | count_t cnt, elem_count = 0, block_count = 0; |
243 | count_t cnt, elem_count = 0, block_count = 0; |
| 244 | link_t * cur; |
244 | link_t * cur; |
| 245 | 245 | ||
| 246 | 246 | ||
| 247 | printf("Order\tStatistics\n"); |
247 | printf("Order\tBlocks\tSize \tBlock size\tElems per block\n"); |
| 248 | printf("-----\t--------------------------------------\n"); |
248 | printf("-----\t------\t--------\t----------\t---------------\n"); |
| 249 | 249 | ||
| 250 | for (i=0;i < b->max_order; i++) { |
250 | for (i=0;i < b->max_order; i++) { |
| 251 | cnt = 0; |
251 | cnt = 0; |
| 252 | if (!list_empty(&b->order[i])) { |
252 | if (!list_empty(&b->order[i])) { |
| 253 | for (cur = b->order[i].next; cur != &b->order[i]; cur = cur->next) cnt++; |
253 | for (cur = b->order[i].next; cur != &b->order[i]; cur = cur->next) cnt++; |
| 254 | } |
254 | } |
| 255 | 255 | ||
| 256 | printf("#%d:\t%d blocks available (%d elements per block)\n", i, cnt, 1 << i); |
256 | printf("#%d\t%d\t%d kb\t\t%d kb\t\t%d\n", i, cnt, (cnt * (1 << i) * elem_size) >> 10, ((1 << i) * elem_size) >> 10, 1 << i); |
| 257 | 257 | ||
| 258 | block_count += cnt; |
258 | block_count += cnt; |
| 259 | elem_count += (1 << i) * cnt; |
259 | elem_count += (1 << i) * cnt; |
| 260 | } |
260 | } |
| 261 | printf("-----\t--------------------------------------\n"); |
261 | printf("-----\t------\t--------\t----------\t---------------\n"); |
| 262 | printf("Buddy system contains %d elements (%d blocks)\n" , elem_count, block_count); |
262 | printf("Buddy system contains %d elements (%d blocks)\n" , elem_count, block_count); |
| 263 | 263 | ||
| 264 | } |
264 | } |