#include <kernel/kernel.h> #include <kernel/driver.h> #include <errno.h> bool devRequest(device_t* dev, request_t* req) { switch (req->code) { case DEV_REMOVE: hndFree(dev); case DEV_OPEN: case DEV_CLOSE: hndSignal(req->event, true); return true; } req->result = ENOTIMPL; return false; } device_t* devAddDevice(driver_t* drv, const wchar_t* name, device_config_t* cfg) { device_t* dev; dev = hndAlloc(sizeof(device_t), NULL); dev->request = devRequest; dev->driver = drv; return dev; } bool STDCALL INIT_CODE drvInit(driver_t* drv) { drv->add_device = vgatAddDevice; return true; }