FS Helper Functions

The following table summarizes the routines that make up the File System Helper interface between FSDs and the kernel.

# FS Helper Routine Description
1. FSH_ADDSHARE Add a name to the sharing set
2. FSH_BUFSTATE REMOVED in OS/2 Version 2.0
3. FSH_CALLDRIVER Call Device Driver's Extended
Strategy entry point
4. FSH_CANONICALIZE Convert pathname to canonical form
5. FSH_CHECKEANAME Check EA name validity
6. FSH_CRITERROR Signal a hard error to the daemon
7. FSH_DEVIOCTL Send IOCTL request to device driver
8. FSH_DOVOLIO Volume-based sector-oriented
transfer
9. FSH_DOVOLIO2 Send volume-based IOCTL request to
device driver.
10.FSH_FINDCHAR Find first occurrence of char in
string
11.FSH_FINDDUPHVPB Locates equivalent hVPBs
12.FSH_FLUSHBUF REMOVED in OS/2 Version 2.0
13.FSH_FORCENOSWAP Force segments permanently into
memory
14.FSH_GETBUF REMOVED in OS/2 Version 2.0
15.FSH_GETFIRSTOVERLAPB REMOVED in OS/2 Version 2.0
16.FSH_GETPRIORITY Get current thread's I/O priority
17.FSH_GETVOLPARM Get VPB data from VPB handle
18.FSH_INTERR Signal an internal error
19.FSH_IOBOOST Gives the current thread an I/O
priority boost
20.FSH_IOSEMCLEAR Clear an I/O-event semaphore
21.FSH_ISCURDIRPREFIX Test for a prefix of a current
directory
22.FSH_LOADCHAR Load character from a string
23.FSH_NAMEFROMSFN Get the full path name from an SFN
24.FSH_PREVCHAR Move backward in string
25.FSH_PROBEBUF User address validity check
26.FSH_QSYSINFO Query system information
27.FSH_REGISTERPERFCTRS Register a FSD with PERFVIEW
28.FSH_RELEASEBUF REMOVED in OS/2 Version 2.0
29.FSH_REMOVESHARE Remove a name from the sharing set
30.FSH_SEGALLOC Allocate a GDT or LDT segment
31.FSH_SEGFREE Release a GDT or LDT segment
32.FSH_SEGREALLOC Change segment size
33.FSH_SEMCLEAR Clear a semaphore
34.FSH_SEMREQUEST Request a semaphore
35.FSH_SEMSET Set a semaphore
36.FSH_SEMSETWAIT Set a semaphore and wait for clear
37.FSH_SEMWAIT Wait for clear
38.FSH_SETVOLUME Force a volume to be mounted on the
drive
39.FSH_STORECHAR Store character into string
40.FSH_UPPERCASE Uppercase ASCIIZ string
41.FSH_WILDMATCH Match using OS/2 wildcards
42.FSH_YIELD Yield CPU to higher priority
threads

FSDs are loaded as dynamic link libraries and may import services provided by the kernel. These services can be called directly by the file system, passing the relevant parameters.

No validation of input parameters is done unless otherwise specified. The FSD calls FSH_PROBEBUF, where appropriate, before calling the FS help routine.

When any service returns an error code, the FSD must return to the caller as soon as possible and return the specific error code from the helper to the FS router.

There are many deadlocks that may occur as a result of operations issued by FSDs. OS/2 provides no means whereby deadlocks between file systems and applications can be detected.