home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_progs / commands / arp.lzh / ARP / TOOLS / LIBS.C < prev    next >
Encoding:
C/C++ Source or Header  |  1991-08-16  |  1.8 KB  |  70 lines

  1. /************************************************************************
  2.  * libraries.c
  3.  * print the names of resident libraries, along with their vital statistics.
  4.  * Author: SDB
  5.  ************************************************************************/
  6.  
  7. #include <exec/types.h>
  8. #include <exec/exec.h>
  9. #include <exec/execbase.h>
  10.  
  11. #define MAXLIBS        100
  12. #define MAXSTR        100
  13.  
  14. IMPORT    struct ExecBase *SysBase;
  15.  
  16. struct LibInfo {
  17.     UWORD    li_VecSize;
  18.     UWORD    li_DataSize;
  19.     UWORD    li_Version;
  20.     UWORD    li_Revision;
  21.     UWORD    li_Opens;
  22.     BYTE    li_Name[MAXSTR];
  23.     BYTE    li_ID[MAXSTR];
  24. };
  25.  
  26. struct LibInfo    li[MAXLIBS];
  27. UWORD        lib_count = 0;
  28.  
  29. char *format_string = "%-17s %4ld     %4d %4d    %4d  %4d\n";
  30.  
  31. main()
  32. {
  33.     struct Library        *lib;
  34.     REGISTER UWORD        i;
  35.     REGISTER struct LibInfo    *info = &li[0];
  36.  
  37.     Forbid();
  38.     lib = (struct Library *)SysBase->LibList.lh_Head;
  39.     for ( ; lib->lib_Node.ln_Succ && lib_count < MAXLIBS;
  40.         lib = (struct Library *)lib->lib_Node.ln_Succ, lib_count++, info++)
  41.     {
  42.         strncpy(info->li_Name, lib->lib_Node.ln_Name, MAXSTR);
  43.         strncpy(info->li_ID, (char *)lib->lib_IdString, MAXSTR);
  44.         info->li_VecSize = lib->lib_NegSize;
  45.         info->li_DataSize = lib->lib_PosSize;
  46.         info->li_Version = lib->lib_Version;
  47.         info->li_Revision = lib->lib_Revision;
  48.         info->li_Opens = lib->lib_OpenCnt;
  49.     }
  50.     Permit();
  51.     printf(
  52. "Name              #Vectors Data Version Revison Opens\n");
  53.     printf(
  54. "=====================================================\n");
  55.     info = &li[0];
  56.     for (i = 0; i < lib_count; i++, info++)
  57.         printf(format_string,   info->li_Name,
  58.                     (info->li_VecSize / LIB_VECTSIZE),
  59.                     info->li_DataSize,
  60.                     info->li_Version,
  61.                     info->li_Revision,
  62.                     info->li_Opens );
  63.     printf("\nLibraries with ID strings:\n");
  64.     info = &li[0];
  65.     for (i = 0; i < lib_count; i++, info++)
  66.         if (info->li_ID[0])
  67.             printf("%-17s ID = %s", info->li_Name, info->li_ID);
  68.  
  69. }
  70.