In mm_display_info the following casting is needed to show correct memory limits:
fprintf(stderr, " memory area.......(unsigned long)((unsigned long)mm+mm->mp_size)...
instead of:
fprintf(stderr, " memory area.......(unsigned long)(mm+mm->mp_size)...
and:
fprintf(stderr, " chunk.....(unsigned long)((unsigned long)mc+mc->mc_size...
instead of:
fprintf(stderr, " chunk.....(unsigned long)(mc+mc->mc_size)..