Generic IO Implements generic input/output functions. It can be used as is or as a base IO layer for virtual devices using UCM-to-UCM communication.