Now that we've seen the data structures, we can discuss interactions between
the parts that you'd supply to actually make your resource manager
do something.
The resmgr_attach() function and its parameters
As you saw in the /dev/null example above, the first thing you'll want to do is register your chosen mountpoint with the process manager. This is done via resmgr_attach().
Putting in your own functions
When designing your very first resource manager, you'll most likely want to take an incremental design approach. It can be very frustrating to write thousands of lines of code only to run into a fundamental misunderstanding and then having to make the ugly decision of whether to try to kludge (er, I mean fix) all that code, or scrap it and start from scratch.
The general flow of a resource manager
As we alluded to in the client and resource manager overview sections above, the general flow of a resource manager begins on the client side with the open(). This gets translated into a connect message and ends up being received by the resource manager's open connect function handler.
Combine messages
As it turns out, this concept of combine messages isn't useful just for saving bandwidth (as in the chown() case, above). It's also critical for ensuring atomic completion of operations.