#include #include #include "driver.h" int drv_open(const struct driver *drv) { int res = -1; assert(drv != NULL); if(drv->fp->open) { res = drv->fp->open(drv); } return res; } int drv_close(const struct driver *drv) { int res = -1; assert(drv != NULL); if(drv->fp->close) { res = drv->fp->close(drv); } return res; } int drv_read(const struct driver *drv, char *buffer, unsigned int length) { int res = -1; assert(drv != NULL); if(drv->fp->read) { res = drv->fp->read(drv, buffer, length); } return res; } int drv_write(const struct driver *drv, const char *buffer, unsigned int length) { int res = -1; assert(drv != NULL); if(drv->fp->write) { res = drv->fp->write(drv, buffer, length); } return res; } int drv_ioctl(const struct driver *drv, unsigned int cmd, unsigned int argc, ...) { int res = -1; assert(drv != NULL); if(drv->fp->ioctl) { va_list args; va_start(args, argc); res = drv->fp->ioctl(drv, cmd, argc, args); va_end(args); } return res; }