[Toc][Index]

FSD Utilities

  
FSD Utility Support   
Each FSD is required to provide a single .DLL executable module that 
supports the OS/2 FORMAT, CHKDSK, SYS, and RECOVER utilities. The 
FS-supported executable will be invoked by these utilities when performing 
a FORMAT, CHKDSK, SYS, or RECOVER function for that file system. The 
command line that was passed to the utility will be passed unchanged to 
the FS-specific executable. 
The procedures that support these utilities reside in a file called 
U<fsdname >.DLL, where <fsdname> is the name returned by DosQFSAttach. If 
the file system utility support .DLL file is to reside on a FAT partition, 
then <fsdname> should be up to 7 bytes long. 
FSD Utility Guidelines   
The FSD utility procedures are expected to follow these guidelines: 
oNo preparation is done by the base utilities before they invoke the FSD 
utility procedure. Therefore, base utilities do not lock drives, parse 
names, open drives, etc. This allows maximum flexibility for the FSD. 
oThe FSD utility procedures are expected to follow the standard 
conventions for the operations that they are performing, for example, /F 
for CHKDSK implies 'fix'. 
oThe FSD procedures may use stdin, stdout, and stderr, but should be aware 
that they may have been redirected to a file or device. 
oIt is the responsibility of the FSD procedures to worry about volumes 
being changed while the operation is in progress. The normal action would 
be to stop the operation when such a situation is detected. 
oWhen the FSD procedures are called, they will be passed argc, argv, and 
envp , that they can use to determine the operations. 
oFSD procedures are responsible for displaying relevant prompts and 
messages . 
oFSD utility procedures must follow the standard convention of entering 
the target drive as specified for each utility. 
  
FSD Utility Interfaces   
All FSD utility procedures are called with the same arguments: 

int far pascal CHKDSK(int argc, char far * far *argv,
char far * far *envp);

int far pascal FORMAT(int argc, char far * far *argv,
char far * far *envp);

int far pascal RECOVER(int argc, char far * far *argv,
char far * far *envp);

int far pascal SYS(int argc, char far * far *argv,
char far * far *envp);


where argc, argv, and envp have the same semantics as the corresponding 
variables in C. 

Created using Inf-PHP v.2 (c) 2003 Yuri Prokushev
Created using Inf-HTML v.0.9b (c) 1995 Peter Childs