Purpose
Create the specified directory.
Calling Sequence
int far pascal FS_MKDIR(pcdfsi, pcdfsd, pName, iCurDirEnd, pEABuf, flags) struct cdfsi far * pcdfsi; struct cdfsd far * pcdfsd; char far * pName; unsigned short iCurDirEnd; char far * pEABuf; unsigned short flags;
Where
pcdfsi is a pointer to the file-system-independent working directory structure.
pcdfsd is a pointer to the file-system-dependent working directory structure.
pName is a pointer to the ASCIIZ name of the directory to be created.
The FSD does not need to verify this pointer.
iCurDirEnd is the index of the end of the current directory in pName.
This is used to optimize FSD path processing. If iCurDirEnd == -1, there is no current directory relevant to the name text, that is, a device.
pEABuf is a pointer to the extended attribute buffer.
This buffer contains attributes that will be set upon creation of the new directory. If NULL, no extended attributes are to be set. Addressing of this data area has not been validated by the kernel (see FSH_PROBEBUF).
flags indicates the name type.
Flags == 0x0040 indicates a non-8.3 filename format. All other values are reserved.
Remarks
The FSD needs to do the time stamping itself. There is no aid in the kernel for time stamping sub-directories. FAT only supports creation time stamp and sets the other two fields to zeroes. An FSD should do the same. The FSD can obtain the current time/date from the infoseg.
A new directory called pName should be created if possible. The standard directory entries '.' and '..' should be put into the directory.
The non-8.3 filename format attribute in the directory entry should be set according to the value in flags.