Hgfs VMCI Transport: Part I fix the shared memory interface to not assert
THe HGFS VMCI transport uses the shared memory access functions to extract
HGFS protocol packets for the HGFS server processing and for returning results.
This interface recently changed to add thread tracking for these operations with
the addition of register and unregister functions.
The HGFS transport interface was missed on the initial change and hence now triggers
an assert as the register function call has not been made.
This is the first part of a change which addresses the assertion failure by adding the
register and unregister calls for the HGFS VMCI transport interface which uses this
shared memory.
The calls are part of a set of callbacks provided by the supported transports to the
HGFS server code for the VMX and tools. Since the backdoor transport does not make
use of the shared memory and access calls it just sets the function callbacks to NULL.
This is done for both the VMX backdoor channel and tools backdoor channel for packets
routed into the HGFS server.
This change does the following:
- Adds the register and unregister callbacks to the channel callback table.
- Modified the VMX VMCI channel to add the register and unregister callbacks and initialize
the callback table with these new functions which are then passed to the HGFS server.
- Modified the VMX and tools backdoor channels to NULL out the function pointers for the
register and unregister callback functions.
- Add the Hgfs server directory notification callbacks for register and unregister which are
termporarily protected by ifdef statements as they are not yet called from the directory
notification component. These simply callback to the channel register and unregister functions
to do the real work if present for the channel in use. (Only VMCI will use this.)