OS_FSControl 49 - reads free space on the disc or image file that holds a specified object. Entry: r0 = 49
r1 = pinter to name of object (null terminated)
Exit: r0 = free space
r1 = largest creatable object

        r2 = disc size

If you pass adfs::4.$.PC.Drive_C.DRDOS.TMP in r1, the information returned in r0-r2 will be for the PC hard disk image Drive_C and not ADFS drive 4.

You can intercept the *Free call made by IDEFSFiler with:

*SetMacro Alias$Free If "<Wimp$State>"="desktop" then ShowFree -FS <FileSwitch$TemporaryFilingSystem> %0 else %Free %0

This should be enough for you to bolt interactive free space display on top of any RISC OS 2 filing system you may have, unless IDEFSFiler does a *%Free rather than *Free in which case you'd have to sit on OS_CLI in some way.