/********************************************************************************************************* ** 函数名称: ls1xWatchDogDrv ** 功能描述: 安装 WATCH_DOG 驱动 ** 输 入 : NONE ** 输 出 : ERROR_CODE ** 全局变量: ** 调用模块: *********************************************************************************************************/ INT ls1xWatchDogDrv (VOID) { struct file_operations fileop; if (_G_ils1xWDTDrvNum) { return (ERROR_NONE); } lib_memset(&fileop, 0, sizeof(struct file_operations)); fileop.owner = THIS_MODULE; fileop.fo_create = ls1xWDTOpen; fileop.fo_open = ls1xWDTOpen; fileop.fo_close = ls1xWDTClose; fileop.fo_lstat = ls1xWDTLstat; fileop.fo_ioctl = ls1xWDTIoctl; _G_ils1xWDTDrvNum = iosDrvInstallEx2(&fileop, LW_DRV_TYPE_NEW_1); DRIVER_LICENSE(_G_ils1xWDTDrvNum, "Dual BSD/GPL->Ver 1.0"); DRIVER_AUTHOR(_G_ils1xWDTDrvNum, "Ryan.xin"); DRIVER_DESCRIPTION(_G_ils1xWDTDrvNum, "ls1x watchdog driver."); return (_G_ils1xWDTDrvNum > 0) ? (ERROR_NONE) : (PX_ERROR); }
/********************************************************************************************************* ** 函数名称: API_EventfdDrvInstall ** 功能描述: 安装 eventfd 设备驱动程序 ** 输 入 : NONE ** 输 出 : 驱动是否安装成功 ** 全局变量: ** 调用模块: API 函数 *********************************************************************************************************/ LW_API INT API_EventfdDrvInstall (VOID) { if (_G_iEvtfdDrvNum <= 0) { _G_iEvtfdDrvNum = iosDrvInstall(LW_NULL, LW_NULL, _evtfdOpen, _evtfdClose, _evtfdRead, _evtfdWrite, _evtfdIoctl); DRIVER_LICENSE(_G_iEvtfdDrvNum, "Dual BSD/GPL->Ver 1.0"); DRIVER_AUTHOR(_G_iEvtfdDrvNum, "Han.hui"); DRIVER_DESCRIPTION(_G_iEvtfdDrvNum, "eventfd driver."); } if (_G_hEvtfdSelMutex == LW_OBJECT_HANDLE_INVALID) { _G_hEvtfdSelMutex = API_SemaphoreMCreate("evtfdsel_lock", LW_PRIO_DEF_CEILING, LW_OPTION_WAIT_PRIORITY | LW_OPTION_DELETE_SAFE | LW_OPTION_INHERIT_PRIORITY | LW_OPTION_OBJECT_GLOBAL, LW_NULL); } return ((_G_iEvtfdDrvNum == (PX_ERROR)) ? (PX_ERROR) : (ERROR_NONE)); }
/********************************************************************************************************* ** 函数名称: API_CanDrvInstall ** 功能描述: 安装 can 驱动程序 ** 输 入 : NONE ** ** 输 出 : NONE ** 全局变量: ** 调用模块: ** API 函数 *********************************************************************************************************/ LW_API INT API_CanDrvInstall (void) { if (_G_iCanDrvNum > 0) { return (ERROR_NONE); } _G_iCanDrvNum = iosDrvInstall(__canOpen, LW_NULL, __canOpen, __canClose, __canRead, __canWrite, __canIoctl); DRIVER_LICENSE(_G_iCanDrvNum, "Dual BSD/GPL->Ver 1.0"); DRIVER_AUTHOR(_G_iCanDrvNum, "Wang.feng"); DRIVER_DESCRIPTION(_G_iCanDrvNum, "CAN Bus driver."); return (_G_iCanDrvNum > 0) ? (ERROR_NONE) : (PX_ERROR); }
/********************************************************************************************************* ** 函数名称: _hotplugDrvInstall ** 功能描述: 安装 hotplug 消息设备驱动程序 ** 输 入 : NONE ** 输 出 : 驱动是否安装成功 ** 全局变量: ** 调用模块: *********************************************************************************************************/ INT _hotplugDrvInstall (VOID) { if (_G_iHotplugDrvNum <= 0) { _G_iHotplugDrvNum = iosDrvInstall(_hotplugOpen, LW_NULL, _hotplugOpen, _hotplugClose, _hotplugRead, _hotplugWrite, _hotplugIoctl); DRIVER_LICENSE(_G_iHotplugDrvNum, "GPL->Ver 2.0"); DRIVER_AUTHOR(_G_iHotplugDrvNum, "Han.hui"); DRIVER_DESCRIPTION(_G_iHotplugDrvNum, "hotplug message driver."); } return ((_G_iHotplugDrvNum == (PX_ERROR)) ? (PX_ERROR) : (ERROR_NONE)); }
LW_API INT API_PipeDrvInstall (VOID) { if (_G_iPipeDrvNum <= 0) { _G_iPipeDrvNum = iosDrvInstall( (LONGFUNCPTR)LW_NULL, /* CREATE */ (FUNCPTR)LW_NULL, /* DELETE */ _PipeOpen, /* OPEN */ _PipeClose, /* CLOSE */ _PipeRead, /* READ */ _PipeWrite, /* WRITE */ _PipeIoctl); /* IOCTL */ DRIVER_LICENSE(_G_iPipeDrvNum, "Dual BSD/GPL->Ver 1.0"); DRIVER_AUTHOR(_G_iPipeDrvNum, "Han.hui"); DRIVER_DESCRIPTION(_G_iPipeDrvNum, "VxWorks pipe driver."); } return ((_G_iPipeDrvNum == (PX_ERROR)) ? (PX_ERROR) : (ERROR_NONE)); }
/********************************************************************************************************* ** 函数名称: API_RomFsDrvInstall ** 功能描述: 安装 romfs 文件系统驱动程序 ** 输 入 : ** 输 出 : < 0 表示失败 ** 全局变量: ** 调用模块: API 函数 *********************************************************************************************************/ LW_API INT API_RomFsDrvInstall (VOID) { struct file_operations fileop; if (_G_iRomfsDrvNum > 0) { return (ERROR_NONE); } lib_bzero(&fileop, sizeof(struct file_operations)); fileop.owner = THIS_MODULE; fileop.fo_create = __romFsOpen; fileop.fo_release = __romFsRemove; fileop.fo_open = __romFsOpen; fileop.fo_close = __romFsClose; fileop.fo_read = __romFsRead; fileop.fo_read_ex = __romFsPRead; fileop.fo_write = __romFsWrite; fileop.fo_write_ex = __romFsPWrite; fileop.fo_lstat = __romFsLStat; fileop.fo_ioctl = __romFsIoctl; fileop.fo_readlink = __romFsReadlink; _G_iRomfsDrvNum = iosDrvInstallEx2(&fileop, LW_DRV_TYPE_NEW_1); /* 使用 NEW_1 型设备驱动程序 */ DRIVER_LICENSE(_G_iRomfsDrvNum, "GPL->Ver 2.0"); DRIVER_AUTHOR(_G_iRomfsDrvNum, "Han.hui"); DRIVER_DESCRIPTION(_G_iRomfsDrvNum, "romfs driver."); _DebugHandle(__LOGMESSAGE_LEVEL, "rom file system installed.\r\n"); __fsRegister("romfs", API_RomFsDevCreate); /* 注册文件系统 */ return ((_G_iRomfsDrvNum > 0) ? (ERROR_NONE) : (PX_ERROR)); }