示例#1
0
/*********************************************************************************************************
** 函数名称: 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);
}
示例#2
0
/*********************************************************************************************************
** 函数名称: 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));
}
示例#3
0
文件: can.c 项目: Ga-vin/libsylixos
/*********************************************************************************************************
** 函数名称: 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);
}
示例#4
0
/*********************************************************************************************************
** 函数名称: _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));
}
示例#5
0
文件: pipe.c 项目: Ga-vin/libsylixos
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));
}
示例#6
0
/*********************************************************************************************************
** 函数名称: 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));
}