add gen_drv as generic dirver interface, not done