Subversion Repositories HelenOS-historic

Rev

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
}