void PrintVerbose(dev_t device) { fs_info info; if (fs_stat_dev(device, &info) != B_OK) { fprintf(stderr, "Could not stat fs: %s\n", strerror(errno)); return; } printf(" Device No.: %ld\n", info.dev); PrintMountPoint(info.dev, true); printf(" Volume Name: \"%s\"\n", info.volume_name); printf(" File System: %s\n", info.fsh_name); printf(" Device: %s\n", info.device_name); printf(" Flags: "); PrintFlag(info.flags, B_FS_HAS_QUERY, "Q", "-"); PrintFlag(info.flags, B_FS_HAS_ATTR, "A", "-"); PrintFlag(info.flags, B_FS_HAS_MIME, "M", "-"); PrintFlag(info.flags, B_FS_IS_SHARED, "S", "-"); PrintFlag(info.flags, B_FS_IS_PERSISTENT, "P", "-"); PrintFlag(info.flags, B_FS_IS_REMOVABLE, "R", "-"); PrintFlag(info.flags, B_FS_IS_READONLY, "-", "W"); printf("\n I/O Size: %10s (%Ld byte)\n", ByteString(info.io_size, 1), info.io_size); printf(" Block Size: %10s (%Ld byte)\n", ByteString(info.block_size, 1), info.block_size); printf(" Total Blocks: %10s (%Ld blocks)\n", ByteString(info.total_blocks, info.block_size), info.total_blocks); printf(" Free Blocks: %10s (%Ld blocks)\n", ByteString(info.free_blocks, info.block_size), info.free_blocks); printf(" Total Nodes: %Ld\n", info.total_nodes); printf(" Free Nodes: %Ld\n", info.free_nodes); printf(" Root Inode: %Ld\n", info.root); }
void PrintCompact(dev_t device, bool showBlocks, bool all) { fs_info info; if (fs_stat_dev(device, &info) != B_OK) return; if (!all && (info.flags & B_FS_IS_PERSISTENT) == 0) return; PrintMountPoint(info.dev, false); PrintType(info.fsh_name); PrintBlocks(info.total_blocks, info.block_size, showBlocks); PrintBlocks(info.free_blocks, info.block_size, showBlocks); printf(" "); PrintFlag(info.flags, B_FS_HAS_QUERY, "Q", "-"); PrintFlag(info.flags, B_FS_HAS_ATTR, "A", "-"); PrintFlag(info.flags, B_FS_HAS_MIME, "M", "-"); PrintFlag(info.flags, B_FS_IS_SHARED, "S", "-"); PrintFlag(info.flags, B_FS_IS_PERSISTENT, "P", "-"); PrintFlag(info.flags, B_FS_IS_REMOVABLE, "R", "-"); PrintFlag(info.flags, B_FS_IS_READONLY, "-", "W"); printf(" %s\n", info.device_name); }
static void DoDebug(xadUINT32 mode, const xadSTRING *fmt, xadTAGPTR tags, va_list data) { xadUINT32 i; xadUINT32 Flags = 0; if(!function && (deb_flags & DEBUGFLAG_STATIC)) return; #ifdef AMIGA Forbid(); #endif if((deb_flags & DEBUGFLAG_STATIC) || (mode & (DEBUGFLAG_CONTINUE|DEBUGFLAG_CONTINUEEND))) Flags = deb_flags; else { xadSTRING Mode[17] = ""; #ifdef AMIGA GetVar("XADDEBUG", (xadSTRPTR) &Mode, sizeof(Mode)-1, GVF_GLOBAL_ONLY); #else const xadSTRING *modePtr = getenv("XADDEBUG"); if (modePtr) strncpy(Mode, modePtr, sizeof(Mode)-1); #endif function = 0; for(i=0; Mode[i] && i < 15; ++i) { switch(Mode[i]) { case 'A': Flags |= DEBUGFLAG_TAGLIST|DEBUGFLAG_RUNTIME|DEBUGFLAG_HOOK |DEBUGFLAG_ERROR|DEBUGFLAG_OTHER|DEBUGFLAG_MEM |DEBUGFLAG_FLAGS|DEBUGFLAG_RESOURCE|DEBUGFLAG_CLIENT |DEBUGFLAG_SEARCHED; break; case 'M': Flags |= DEBUGFLAG_MEM; break; case 'O': Flags |= DEBUGFLAG_OTHER; break; case 'E': Flags |= DEBUGFLAG_ERROR; break; case 'C': Flags |= DEBUGFLAG_RESOURCE; break; case 'D': Flags |= DEBUGFLAG_CLIENT|DEBUGFLAG_SEARCHED; break; case 'F': Flags |= DEBUGFLAG_FLAGS; break; case 'H': Flags |= DEBUGFLAG_HOOK; break; case 'R': Flags |= DEBUGFLAG_RUNTIME; break; case 'T': Flags |= DEBUGFLAG_TAGLIST; break; case 'S': Flags |= DEBUGFLAG_STATIC; break; #ifdef __MORPHOS__ case 's': function = RAWFMTFUNC_SERIAL; break; #elif defined(AMIGA) case 's': function = serfunc; break; case 'p': function = parfunc; break; #endif case 'f': function = normfunc; break; case 'e': function = errfunc; break; case 'o': function = outfunc; break; case 'n': function = 0; break; } } deb_flags = Flags; } mode &= Flags|DEBUGFLAG_CONTINUE|DEBUGFLAG_CONTINUEEND |DEBUGFLAG_CONTINUESTART; if(mode & (~(DEBUGFLAG_TAGLIST|DEBUGFLAG_STATIC|DEBUGFLAG_CONTINUE |DEBUGFLAG_CONTINUEEND|DEBUGFLAG_CONTINUESTART))) { #ifdef AMIGA xadPTR fh = 0; if(function==normfunc) { if((fh = (xadPTR) Open("T:xadMasterOut", MODE_READWRITE))) { Seek((BPTR)fh, 0, OFFSET_END); } else function = 0; } #else FILE *fh = NULL; switch(function) { case normfunc: fh = fopen(".libxad-debug", "a"); break; case outfunc: default: fh = stdout; break; case errfunc: fh = stderr; break; } #endif if(function) { #ifdef AMIGA if(!(mode & (DEBUGFLAG_CONTINUE|DEBUGFLAG_CONTINUEEND))) { i = (xadUINT32) FindTask(0); OutputDebugArgs("XadM(%08lx):", (putchtype) function, fh, i); } #endif OutputDebugVA(fmt, (putchtype) function, fh, data); if(!(mode & (DEBUGFLAG_CONTINUESTART|DEBUGFLAG_CONTINUE)) || (mode & DEBUGFLAG_CONTINUEEND)) OutputDebug("\n", (putchtype) function, fh); #ifdef DEBUG if(mode & DEBUGFLAG_TAGLIST) { xadTAGPTR ti; while((ti = NextTagItem(&tags))) { xadUINT32 i[2], dmode = 0; const xadSTRING *s; /* dmode == 1 - BOOL data, dmode == 2 - unknown, dmode == 3 - error text */ switch(ti->ti_Tag) { case XAD_INSIZE: s = "XAD_INSIZE, %lu"; break; case XAD_INFILENAME: s = "XAD_INFILENAME, \"%s\" ($%08lx)"; break; case XAD_INFILEHANDLE: s = "XAD_INFILEHANDLE, $%08lx"; break; case XAD_INMEMORY: s = "XAD_INMEMORY, $%08lx"; break; case XAD_INHOOK: s = "XAD_INHOOK, $%08lx"; break; case XAD_INSPLITTED: s = "XAD_INSPLITTED, $%08lx"; break; case XAD_INDISKARCHIVE: s = "XAD_INDISKARCHIVE, $%08lx"; break; case XAD_INXADSTREAM: s = "XAD_INXADSTREAM, $%08lx"; break; #ifdef AMIGA case XAD_INDEVICE: s = "XAD_INDEVICE, $%08lx"; break; #endif case XAD_OUTSIZE: s = "XAD_OUTSIZE, %lu"; break; case XAD_OUTFILENAME: s = "XAD_OUTFILENAME, \"%s\" ($%08lx)"; break; case XAD_OUTFILEHANDLE: s = "XAD_OUTFILEHANDLE, $%08lx"; break; case XAD_OUTMEMORY: s = "XAD_OUTMEMORY, $%08lx"; break; case XAD_OUTHOOK: s = "XAD_OUTHOOK, $%08lx"; break; #ifdef AMIGA case XAD_OUTDEVICE: s = "XAD_OUTDEVICE, $%08lx"; break; #endif case XAD_OUTXADSTREAM: s = "XAD_OUTXADSTREAM, $%08lx"; break; case XAD_OBJNAMESIZE: s = "XAD_OBJNAMESIZE, %lu"; break; case XAD_OBJCOMMENTSIZE: s = "XAD_OBJCOMMENTSIZE, %lu"; break; case XAD_OBJBLOCKENTRIES: s = "XAD_OBJBLOCKENTRIES, %lu"; break; case XAD_OBJPRIVINFOSIZE: s = "XAD_OBJPRIVINFOSIZE, %lu"; break; case XAD_NOEXTERN: s = "XAD_NOEXTERN, %s"; dmode = 1; break; case XAD_PASSWORD: s = "XAD_PASSWORD, \"%s\" ($%08lx)"; break; case XAD_ENTRYNUMBER: s = "XAD_ENTRYNUMBER, %lu"; break; case XAD_PROGRESSHOOK: s = "XAD_PROGRESSHOOK, $%08lx"; break; case XAD_OVERWRITE: s = "XAD_OVERWRITE, %s"; dmode = 1; break; #ifdef AMIGA case XAD_IGNOREGEOMETRY: s = "XAD_IGNOREGEOMETRY, %s"; dmode = 1; break; case XAD_USESECTORLABELS: s = "XAD_USESECTORLABELS, %s"; dmode = 1; break; #endif case XAD_LOWCYLINDER: s = "XAD_LOWCYLINDER, %lu"; break; case XAD_HIGHCYLINDER: s = "XAD_HIGHCYLINDER, %lu"; break; #ifdef AMIGA case XAD_VERIFY: s = "XAD_VERIFY, %s"; dmode = 1; break; #endif case XAD_NOKILLPARTIAL: s = "XAD_NOKILLPARTIAL, %s"; dmode = 1; break; #ifdef AMIGA case XAD_FORMAT: s = "XAD_FORMAT, %s"; dmode = 1; break; #endif case XAD_MAKEDIRECTORY: s = "XAD_MAKEDIRECTORY, %s"; dmode = 1; break; case XAD_DATEUNIX: s = "XAD_DATEUNIX, %ld"; break; case XAD_DATEAMIGA: s = "XAD_DATEAMIGA, %ld"; break; case XAD_DATECURRENTTIME: s = "XAD_DATECURRENTTIME"; break; case XAD_DATEDATESTAMP: s = "XAD_DATEDATESTAMP, $%08lx"; break; case XAD_DATEXADDATE: s = "XAD_DATEXADDATE, $%08lx"; break; case XAD_DATECLOCKDATA: s = "XAD_DATECLOCKDATA, $%08lx"; break; case XAD_DATEMSDOS: s = "XAD_DATEMSDOS, $%08lx"; break; case XAD_DATEMAC: s = "XAD_DATEMAC, $%08lx"; break; case XAD_DATECPM: s = "XAD_DATECPM, $%08lx"; break; case XAD_DATECPM2: s = "XAD_DATECPM2, $%08lx"; break; case XAD_GETDATEUNIX: s = "XAD_GETDATEUNIX, $%08lx"; break; case XAD_GETDATEAMIGA: s = "XAD_GETDATEAMIGA, $%08lx"; break; #ifdef AMIGA case XAD_GETDATEDATESTAMP: s = "XAD_GETDATEDATESTAMP, $%08lx"; break; #endif case XAD_GETDATEXADDATE: s = "XAD_GETDATEXADDATE, $%08lx"; break; #ifdef AMIGA case XAD_GETDATECLOCKDATA: s = "XAD_GETDATECLOCKDATA, $%08lx"; break; #endif case XAD_GETDATEMSDOS: s = "XAD_GETDATEMSDOS, $%08lx"; break; case XAD_GETDATEMAC: s = "XAD_GETDATEMAC, $%08lx"; break; case XAD_GETDATECPM: s = "XAD_GETDATECPM, $%08lx"; break; case XAD_GETDATECPM2: s = "XAD_GETDATECPM2, $%08lx"; break; case XAD_PROTAMIGA: s = "XAD_PROTAMIGA, $%08lx"; break; case XAD_PROTUNIX: s = "XAD_PROTUNIX, $%08lx"; break; case XAD_PROTMSDOS: s = "XAD_PROTMSDOS, $%08lx"; break; case XAD_PROTFILEINFO: s = "XAD_PROTFILEINFO, $%08lx"; break; case XAD_GETPROTAMIGA: s = "XAD_GETPROTAMIGA, $%08lx"; break; case XAD_GETPROTUNIX: s = "XAD_GETPROTUNIX, $%08lx"; break; case XAD_GETPROTMSDOS: s = "XAD_GETPROTMSDOS, $%08lx"; break; case XAD_GETPROTFILEINFO: s = "XAD_GETPROTFILEINFO, $%08lx"; break; case XAD_MAKEGMTDATE: s = "XAD_MAKEGMTDATE, %s", dmode = 1; break; case XAD_MAKELOCALDATE: s = "XAD_MAKELOCALDATE, %s", dmode = 1; break; case XAD_STARTCLIENT: s = "XAD_STARTCLIENT, $%08lx"; break; case XAD_NOEMPTYERROR: s = "XAD_NOEMPTYERROR, %s"; dmode = 1; break; case XAD_ARCHIVEINFO: s = "XAD_ARCHIVEINFO, $%08lx"; break; case XAD_WASERROR: s = "XAD_WASERROR, \"%s\" (%ld)"; dmode = 3; break; case XAD_SECTORLABELS: s = "XAD_SECTORLABELS, $%08lx"; break; case XAD_INSERTDIRSFIRST: s = "XAD_INSERTDIRSFIRST, %s"; dmode = 1; break; case XAD_SETINPOS: s = "XAD_SETINPOS, %ld"; break; case XAD_IGNOREFLAGS: s = "XAD_IGNOREFLAGS, $%08lx"; dmode = 100; break; case XAD_ONLYFLAGS: s = "XAD_ONLYFLAGS, $%08lx"; dmode=100; break; case XAD_ERRORCODE: s = "XAD_ERRORCODE, $%08lx"; break; case XAD_PATHSEPERATOR: s = "XAD_PATHSEPERATOR, $%08lx"; break; case XAD_CHARACTERSET: s = "XAD_CHARACTERSET, %ld (%s)"; dmode = 4; break; case XAD_STRINGSIZE: s = "XAD_STRINGSIZE, %ld"; break; case XAD_CSTRING: s = "XAD_CSTRING, $%08lx"; break; case XAD_PSTRING: s = "XAD_PSTRING, $%08lx"; break; case XAD_XADSTRING: s = "XAD_XADSTRING, $%08lx"; break; case XAD_ADDPATHSEPERATOR: s = "XAD_ADDPATHSEPERATOR, %s"; dmode = 1; break; case XAD_NOLEADINGPATH: s = "XAD_NOLEADINGPATH, %s"; dmode = 1; break; case XAD_NOTRAILINGPATH: s = "XAD_NOTRAILINGPATH, %s"; dmode = 1; break; case XAD_MASKCHARACTERS: s = "XAD_MASKCHARACTERS, $%08lx"; break; case XAD_MASKINGCHAR: s = "XAD_MASKINGCHAR, '%lc'"; break; case XAD_REQUIREDBUFFERSIZE: s = "XAD_REQUIREDBUFFERSIZE, $%08lx"; break; case XAD_USESKIPINFO: s = "XAD_USESKIPINFO, %s"; dmode = 1; break; case XAD_EXTENSION: s = "XAD_EXTENSION, \"%s\" ($%08lx)"; break; default: s = "$%08lx, $%08lx"; dmode = 2; break; } switch(dmode) { case 1: i[0] = ti->ti_Data ? (xadUINT32) "TRUE" : (xadUINT32) "FALSE"; break; case 2: i[0] = ti->ti_Tag; i[1] = ti->ti_Data; break; #ifdef AMIGA case 3: i[0] = (xadUINT32) xadGetErrorText(XADM ti->ti_Data); i[1] = ti->ti_Data; break; #else /* Special case: We pass a NULL to xadGetErrorText() since we don't have XMB as a global variable in Unix. xadGetErrorText() will make an exception for this. */ case 3: i[0] = (xadUINT32) xadGetErrorText(NULL, ti->ti_Data); i[1] = ti->ti_Data; break; #endif case 4: i[0] = ti->ti_Data; switch(i[0]) { case CHARSET_HOST: i[1] = (xadUINT32) "CHARSET_HOST"; break; case CHARSET_UNICODE_UCS2_HOST: i[1] = (xadUINT32) "CHARSET_UNICODE_UCS2_HOST"; break; case CHARSET_UNICODE_UCS2_BIGENDIAN: i[1] = (xadUINT32) "CHARSET_UNICODE_UCS2BIGENDIAN"; break; case CHARSET_UNICODE_UCS2_LITTLEENDIAN: i[1] = (xadUINT32) "CHARSET_UNICODE_UCS2_LITTLEENDIAN"; break; case CHARSET_UNICODE_UTF8: i[1] = (xadUINT32) "CHARSET_UNICODE_UTF8"; break; case CHARSET_AMIGA: i[1] = (xadUINT32) "CHARSET_AMIGA"; break; case CHARSET_MSDOS: i[1] = (xadUINT32) "CHARSET_MSDOS"; break; case CHARSET_MACOS: i[1] = (xadUINT32) "CHARSET_MACOS"; break; case CHARSET_C64: i[1] = (xadUINT32) "CHARSET_C64"; break; case CHARSET_ATARI_ST: i[1] = (xadUINT32) "CHARSET_ATARI_ST"; break; case CHARSET_WINDOWS: i[1] = (xadUINT32) "CHARSET_WINDOWS"; break; case CHARSET_ASCII: i[1] = (xadUINT32) "CHARSET_ASCII"; break; case CHARSET_ISO_8859_1: i[1] = (xadUINT32) "CHARSET_ISO_8859_1"; break; case CHARSET_ISO_8859_15: i[1] = (xadUINT32) "CHARSET_ISO_8859_15"; break; case CHARSET_ATARI_ST_US: i[1] = (xadUINT32) "CHARSET_ATARI_ST_US"; break; case CHARSET_PETSCII_C64_LC: i[1] = (xadUINT32) "CHARSET_PETSCII_C64_LC"; break; case CHARSET_CODEPAGE_437: i[1] = (xadUINT32) "CHARSET_CODEPAGE_437"; break; case CHARSET_CODEPAGE_1252: i[1] = (xadUINT32) "CHARSET_CODEPAGE_1252"; break; default: i[1] = (xadUINT32) "unknown"; break; } break; default: i[0] = i[1] = ti->ti_Data; } OutputDebug(" ", (putchtype) function, fh); OutputDebugArgs(s, (putchtype) function, fh, i[0], i[1]); if(dmode >= 100 && (Flags & DEBUGFLAG_FLAGS)) { OutputDebug(" ("/*)*/, (putchtype) function, fh); switch(dmode) { case 100: i[1] = PrintFlag(XADCF_FILEARCHIVER, i[1]); i[1] = PrintFlag(XADCF_DISKARCHIVER, i[1]); i[1] = PrintFlag(XADCF_EXTERN, i[1]); i[1] = PrintFlag(XADCF_FILESYSTEM, i[1]); i[1] = PrintFlag(XADCF_NOCHECKSIZE, i[1]); i[1] = PrintFlag(XADCF_DATACRUNCHER, i[1]); i[1] = PrintFlag(XADCF_EXECRUNCHER, i[1]); i[1] = PrintFlag(XADCF_ADDRESSCRUNCHER, i[1]); i[1] = PrintFlag(XADCF_LINKER, i[1]); i[1] = PrintFlag(XADCF_FREESPECIALINFO, i[1]); i[1] = PrintFlag(XADCF_FREESKIPINFO, i[1]); i[1] = PrintFlag(XADCF_FREETEXTINFO, i[1]); i[1] = PrintFlag(XADCF_FREETEXTINFOTEXT, i[1]); i[1] = PrintFlag(XADCF_FREEFILEINFO, i[1]); i[1] = PrintFlag(XADCF_FREEDISKINFO, i[1]); } if(i[1]) { OutputDebugArgs("$%lx", (putchtype) function, fh, i[1]); } OutputDebug(/*(*/")", (putchtype) function, fh); } OutputDebug("\n", (putchtype) function, fh); } OutputDebug(" TAG_DONE\n", (putchtype) function, fh); } #endif } #ifdef AMIGA if(fh) Close((BPTR)fh); #else if(fh && function == normfunc) fclose(fh); #endif } #ifdef AMIGA Permit(); #endif }