When an I2C master device is dedicated for use by a single application, you can compile the hardware interface code as a library and link it to the application.
To increase code portability, the application should call i2c_master_getfuncs() to access the hardware-specific functions. Accessing the hardware library through the function table also makes it easier for an application to load and manage more than one hardware library.
The resource manager interface uses the hardware library in a similar way.