int main(void) { char *status; float mem; int bat0; char *datetime; char *address; char battext[6]; char *volume; if (!(dpy = XOpenDisplay(NULL))) { fprintf(stderr, "Cannot open display.\n"); return 1; } status = xmalloc(200); for (;;sleep(1)) { datetime = getdatetime(); mem = getmeminfo(); bat0 = getbattery(); address = getaddress(); volume = getvolume(); if (ischarging()) strcpy(battext, "ac:"); else { if (bat0 > 50) strcpy(battext, "bat:"); else if (bat0 < 20) strcpy(battext, "bat:"); else strcpy(battext, "bat:"); } snprintf(status, 200, "|%s|mem:%0.0f%%|%s%d%%|vol:%s|%s|", address, mem, battext, bat0, volume, datetime); free(datetime); free(address); free(volume); setstatus(status); } free(status); XCloseDisplay(dpy); return 0; }
void main(int argc, char *argv[]) { getmeminfo(); printf("\n"); printf("DPMI Memory Information:\n"); printf("-----------------------------------------------------------------\n"); printf("Largest Available Free Block Size: "); printf("0x%08X (%9d) bytes", Mem.LargestFreeBlock, Mem.LargestFreeBlock); printf("\n"); printf("Maximum Unlocked Page Allocations: "); if(Mem.MaxUnlockedPages!=-1) printf("0x%08X (%9d) pages", Mem.MaxUnlockedPages, Mem.MaxUnlockedPages); else printf("information not available"); printf("\n"); printf("Maximum Locked Page Allocations: "); if(Mem.MaxLockedPages!=-1) printf("0x%08X (%9d) pages", Mem.MaxLockedPages, Mem.MaxLockedPages); else printf("information not available"); printf("\n"); printf("Linear Address Space Size: "); if(Mem.LinearSpaceInPages!=-1) printf("0x%08X (%9d) pages", Mem.LinearSpaceInPages, Mem.LinearSpaceInPages); else printf("information not available"); printf("\n"); printf("Total Number of Unlocked Pages: "); if(Mem.TotalNumOfUnlockedPages!=-1) printf("0x%08X (%9d) pages", Mem.TotalNumOfUnlockedPages, Mem.TotalNumOfUnlockedPages); else printf("information not available"); printf("\n"); printf("Total Number of Free Pages: "); if(Mem.TotalNumOfFreePages!=-1) printf("0x%08X (%9d) pages", Mem.TotalNumOfFreePages, Mem.TotalNumOfFreePages); else printf("information not available"); printf("\n"); printf("Total Number of Physical Pages: "); if(Mem.TotalNumOfPhysPages!=-1) printf("0x%08X (%9d) pages", Mem.TotalNumOfPhysPages, Mem.TotalNumOfPhysPages); else printf("information not available"); printf("\n"); printf("Free Linear Address Space: "); if(Mem.FreeLinearSpaceInPages!=-1) printf("0x%08X (%9d) pages", Mem.FreeLinearSpaceInPages, Mem.FreeLinearSpaceInPages); else printf("information not available"); printf("\n"); printf("Size of Paging File/Partition: "); if(Mem.SizeOfPagingFile!=-1) printf("0x%08X (%9d) pages", Mem.SizeOfPagingFile, Mem.SizeOfPagingFile); else printf("information not available"); printf("\n"); exit(0); }
int showinfo (int fd) { int i,err,n; struct mtd_info_user mtd; static struct region_info_user region[1024]; err = getmeminfo (fd,&mtd); if (err < 0) { perror ("MEMGETINFO"); return (1); } err = getregions (fd,region,&n); if (err < 0) { perror ("MEMGETREGIONCOUNT"); return (1); } printf ("mtd.type = "); switch (mtd.type) { case MTD_ABSENT: printf ("MTD_ABSENT"); break; case MTD_RAM: printf ("MTD_RAM"); break; case MTD_ROM: printf ("MTD_ROM"); break; case MTD_NORFLASH: printf ("MTD_NORFLASH"); break; case MTD_NANDFLASH: printf ("MTD_NANDFLASH"); break; case MTD_PEROM: printf ("MTD_PEROM"); break; case MTD_OTHER: printf ("MTD_OTHER"); break; case MTD_UNKNOWN: printf ("MTD_UNKNOWN"); break; default: printf ("(unknown type - new MTD API maybe?)"); } printf ("\nmtd.flags = "); if (mtd.flags == MTD_CAP_ROM) printf ("MTD_CAP_ROM"); else if (mtd.flags == MTD_CAP_RAM) printf ("MTD_CAP_RAM"); else if (mtd.flags == MTD_CAP_NORFLASH) printf ("MTD_CAP_NORFLASH"); else if (mtd.flags == MTD_CAP_NANDFLASH) printf ("MTD_CAP_NANDFLASH"); else if (mtd.flags == MTD_WRITEABLE) printf ("MTD_WRITEABLE"); else { int i,first = 1; static struct { const char *name; int value; } flags[] = { { "MTD_CLEAR_BITS", MTD_CLEAR_BITS }, { "MTD_SET_BITS", MTD_SET_BITS }, { "MTD_ERASEABLE", MTD_ERASEABLE }, { "MTD_WRITEB_WRITEABLE", MTD_WRITEB_WRITEABLE }, { "MTD_VOLATILE", MTD_VOLATILE }, { "MTD_XIP", MTD_XIP }, { "MTD_OOB", MTD_OOB }, { "MTD_ECC", MTD_ECC }, { NULL, -1 } }; for (i = 0; flags[i].name != NULL; i++) if (mtd.flags & flags[i].value) { if (first) { printf (flags[i].name); first = 0; } else printf (" | %s",flags[i].name); } } printf ("\nmtd.size = "); printsize (mtd.size); printf ("\nmtd.erasesize = "); printsize (mtd.erasesize); printf ("\nmtd.oobblock = "); printsize (mtd.oobblock); printf ("\nmtd.oobsize = "); printsize (mtd.oobsize); printf ("\nmtd.ecctype = "); switch (mtd.ecctype) { case MTD_ECC_NONE: printf ("MTD_ECC_NONE"); break; case MTD_ECC_RS_DiskOnChip: printf ("MTD_ECC_RS_DiskOnChip"); break; case MTD_ECC_SW: printf ("MTD_ECC_SW"); break; default: printf ("(unknown ECC type - new MTD API maybe?)"); } printf ("\n" "regions = %d\n" "\n", n); for (i = 0; i < n; i++) { printf ("region[%d].offset = 0x%.8x\n" "region[%d].erasesize = ", i,region[i].offset,i); printsize (region[i].erasesize); printf ("\nregion[%d].numblocks = %d\n" "region[%d].regionindex = %d\n", i,region[i].numblocks, i,region[i].regionindex); } return (0); }
int showinfo (int fd) { int i,err,n; struct mtd_info_user mtd; static struct region_info_user region[1024]; err = getmeminfo (fd,&mtd); if (err < 0) { perror ("MEMGETINFO"); return (1); } err = getregions (fd,region,&n); if (err < 0) { perror ("MEMGETREGIONCOUNT"); return (1); } printf ("mtd.type = "); switch (mtd.type) { case MTD_ABSENT: printf ("MTD_ABSENT"); break; case MTD_RAM: printf ("MTD_RAM"); break; case MTD_ROM: printf ("MTD_ROM"); break; case MTD_NORFLASH: printf ("MTD_NORFLASH"); break; case MTD_NANDFLASH: printf ("MTD_NANDFLASH"); break; case MTD_DATAFLASH: printf ("MTD_DATAFLASH"); break; case MTD_UBIVOLUME: printf ("MTD_UBIVOLUME"); default: printf ("(unknown type - new MTD API maybe?)"); } printf ("\nmtd.flags = "); if (mtd.flags == MTD_CAP_ROM) printf ("MTD_CAP_ROM"); else if (mtd.flags == MTD_CAP_RAM) printf ("MTD_CAP_RAM"); else if (mtd.flags == MTD_CAP_NORFLASH) printf ("MTD_CAP_NORFLASH"); else if (mtd.flags == MTD_CAP_NANDFLASH) printf ("MTD_CAP_NANDFLASH"); else if (mtd.flags == MTD_WRITEABLE) printf ("MTD_WRITEABLE"); else { int first = 1; static struct { const char *name; int value; } flags[] = { { "MTD_WRITEABLE", MTD_WRITEABLE }, { "MTD_BIT_WRITEABLE", MTD_BIT_WRITEABLE }, { "MTD_NO_ERASE", MTD_NO_ERASE }, { "MTD_STUPID_LOCK", MTD_STUPID_LOCK }, { NULL, -1 } }; for (i = 0; flags[i].name != NULL; i++) if (mtd.flags & flags[i].value) { if (first) { printf (flags[i].name); first = 0; } else printf (" | %s",flags[i].name); } } printf ("\nmtd.size = "); printsize (mtd.size); printf ("\nmtd.erasesize = "); printsize (mtd.erasesize); printf ("\nmtd.writesize = "); printsize (mtd.writesize); printf ("\nmtd.oobsize = "); printsize (mtd.oobsize); printf ("\n" "regions = %d\n" "\n", n); for (i = 0; i < n; i++) { printf ("region[%d].offset = 0x%.8x\n" "region[%d].erasesize = ", i,region[i].offset,i); printsize (region[i].erasesize); printf ("\nregion[%d].numblocks = %d\n" "region[%d].regionindex = %d\n", i,region[i].numblocks, i,region[i].regionindex); } return (0); }