Thanks for all the quick answers, guys. Saves me from digging in the dark too much.
I am not looking into writing a new FS but want to explore some techniques to manipulate behavior with existing the FSs at the API level. (Yes, I am aware of what I’m doing might be dangerous, but I’ve worked with file systems for over 30 years, so I have some basic understanding on this topic, even though I’m still totally unexperienced with Darwin and VFS.)
Can anyone think of a way to hook into the function calls between the FS API as seen by the user (i.e. BSD or Carbon APIs) and a file system’s kernel hooks (that’s VFS, I assume) to the point where I can tweak parameters centrally, affecting all file systems? In the end, I only want to affect certain FS, AFP in particular, but without access to its source code I’ll have to find another way to get to it.
E.g, how does fs_usage do it? Is that able to tweak parameters or can it only monitor? It appears to me that it doesn’t use fs_events. IIRC, there’s also a BSD-level FS monitoring hook, though - is it using that?
Lastly, does someone have suggestions on how to browse the kernel source better? The included xnu Xcode project opens just fine but (a) wants an older SDK (10.6) that I can’t seem to get for Xcode 5 and (b) does not seem to be able to parse the entire source code to the point where I can cmd-click on identifiers to find their declarations, thereby making navigation in the source quite cumbersome.