@@ -168,6 +168,7 @@ static const char *URaid_summary2 =
168168 "\n-- Memory display commands\n\
169169a litatom\t\tDisplays the top-level value of the litatom\n\
170170B Xaddress\t\tPrint the contents of the arrayblock at that address.\n\
171+ F [size]\t\tPrint the head of the array free list chain for given size, or all\n\
171172d litatom\t\tDisplays the definition cell for the litatom\n\
172173M\t\t\tDisplays TOS,CSP,PVAR,IVAR,PC\n\
173174m func1 func2\t\tMOVD func1 to func2\n\
@@ -201,6 +202,7 @@ l [type]\t\tDisplays backtrace for specified type of stack. (k|m|r|g|p|u|<null>)
201202\n-- Memory display commands\n\
202203a litatom\t\tDisplays the top-level value of the litatom\n\
203204B Xaddress\t\tDisplays the contents of the arrayblock at that address.\n\
205+ F [size]\t\tPrint the head of the array free list chain for given size, or all\n\
204206d litatom\t\tDisplays the definition cell of the litatom\n\
205207M\t\t\tDisplays TOS,CSP,PVAR,IVAR,PC\n\
206208m func1 func2\t\tMoves definition of func1 to func2 (MOVD)\n\
@@ -467,6 +469,26 @@ LispPTR uraid_commands(void) {
467469 }
468470 break ;
469471
472+ case 'F' : { /* print array block free list head(s) */
473+ long size ;
474+ if (URaid_argnum != 1 && URaid_argnum != 2 ) {
475+ printf ("FREE-BLOCK-CHAIN: F [block-size (cells)]\n" );
476+ return (T );
477+ }
478+ if (URaid_argnum == 1 ) {
479+ size = -1 ;
480+ } else {
481+ errno = 0 ;
482+ size = (LispPTR )strtol (URaid_arg1 , & endpointer , 0 );
483+ if (errno != 0 || * endpointer != '\0' ) {
484+ printf ("Arg not number\n" );
485+ return (T );
486+ }
487+ }
488+ printfreeblockchainn (size );
489+ }
490+ break ;
491+
470492 case 'd' : /* DEFCELL */
471493 if (URaid_argnum != 2 ) {
472494 printf ("GETD: d litatom\n" );
0 commit comments