#include #include #include #include #include #include #include #include #include "gaugeclass.h" #include "tinymeter.h" getVolsize(struct tm_data *data,char *volname) { struct InfoData inf; struct DevProc *devproc; if(devproc=(struct DevProc *)GetDeviceProc(volname,NULL)) { if( DoPkt(devproc->dvp_Port,ACTION_DISK_INFO,MKBADDR(&inf),NULL,NULL,NULL,NULL)==DOSTRUE) { switch(inf.id_DiskType) { case 0x42555359: data->volmax=0; data->volcur=GAU_err_busy; break; case ID_UNREADABLE_DISK: data->volmax=0; data->volcur=GAU_err_unreadable; break; case ID_NOT_REALLY_DOS: data->volmax=0; data->volcur=GAU_err_nodos; break; case ID_NO_DISK_PRESENT: data->volmax=0; data->volcur=GAU_err_notpresent; break; case ID_KICKSTART_DISK: data->volmax=0L; data->volcur=GAU_err_kickstart; break; default: data->volcur=(inf.id_NumBlocks-inf.id_NumBlocksUsed)*inf.id_BytesPerBlock; data->volmax=inf.id_NumBlocks*inf.id_BytesPerBlock; data->voltype=inf.id_DiskType; break; } } FreeDeviceProc(devproc); } else { data->volmax=0; data->volcur=GAU_err_notmount; } }