发明名称 LINUX作业系统下IDE设备热插/拔系统及实现方法
摘要 一种Linux作业系统下IDE设备热插/拔系统及方法,包括中断处理模组,用户空间处理模组,IDE注册资讯处理模组,首先捕获IDE设备热插/拔事件,接着定位发生该热插/拔事件的具体IDE设备并分析插/拔类型,然后根据该IDE设备的使用情况将其与应用程式在用户空间分离,最后根据插/拔类型修改IDE控制器中的注册资讯,本发明不需要昂贵的硬体设备和专用的驱动程式,即可在系统带电运行的过程中,实现IDE设备的插入和拔除。
申请公布号 TWI275998 申请公布日期 2007.03.11
申请号 TW092134745 申请日期 2003.12.09
申请人 英业达股份有限公司 发明人 刘文涵;陈玄同;王兴家
分类号 G06F9/44(2006.01) 主分类号 G06F9/44(2006.01)
代理机构 代理人 许世正 台北市信义区忠孝东路5段410号4楼
主权项 1.一种Linux作业系统下IDE设备热插/拔系统,用于在 Linux作业系统带电运行的过程中,实现IDE设备的插 入和拔除,该系统包括: 一中断处理模组,用于自动侦测并分析IDE设备热插 /拔操作所引起硬体中断; 一用户空间处理模组,用于在接到该中断处理模组 发出的通知后根据插/拔类型而将该IDE设备与应用 程式在用户空间相分离;及 一IDE注册资讯处理模组,用于根据用户空间的处理 情况以及插/拔类型而对IDE设备的注册资讯进行修 改。 2.如申请专利范围第1项所述之Linux作业系统下IDE 设备热插/拔系统,其中该中断处理模组设计为Linux 核心(Kernel)可载入模组。 3.如申请专利范围第1项所述之Linux作业系统下IDE 设备热插/拔系统,其中该用户空间处理模组在Linux 作业系统启动后自动处于等待状态,直至接到该中 断处理模组的通知后执行处理过程。 4.如申请专利范围第1项所述之Linux作业系统下IDE 设备热插/拔系统,其中该IDE注册资讯处理模组运 行在Linux核心空间。 5.一种Linux作业系统下IDE设备热插/拔的实现方法, 在Linux作业系统带电运行的过程中,实现IDE设备的 插入和拔除,该方法包括如下步骤: 捕获IDE设备热插/拔事件; 定位发生该热插/拔事件的具体IDE设备并分析插/ 拔类型; 根据该IDE设备的使用情况将其与应用程式在用户 空间分离;及 根据插/拔类型修改IDE控制器中的注册资讯。 6.如申请专利范围第5项所述之Linux作业系统下IDE 设备热插/拔的实现方法,其中该捕获热插/拔事件 并分析插/拔类型之步骤,更包括如下步骤: 注册一中断处理函数并等待中断发生; 当发生IDE设备热插/拔事件后触发该中断处理函数 ;及 由该中断处理函数判断是哪一个IDE控制器发生热 插拔,是插入还是拔除。 7.如申请专利范围第5项所述之Linux作业系统下IDE 设备热插/拔的实现方法,其中该插/拔类型为拔除 时,所述将IDE设备与应用程式在用户空间分离之步 骤,更包括如下步骤: 取得发生中断的具体IDE设备并确定其为拔除操作; 判断该设备是否被应用程式使用; 如果该设备被应用程式使用,则判断该设备是否为 磁片阵列的一部分,是否有冗余;及 如果该设备没有冗余,则强制终止使用该设备的用 户应用程式,清除对该设备的使用。 8.如申请专利范围第5项所述之Linux作业系统下IDE 设备热插/拔的实现方法,其中该插/拔类型为拔除 时,该修改IDE控制器中的注册资讯之步骤,为清除 该IDE设备控制器的注册资讯。 9.如申请专利范围第5项所述之Linux作业系统下IDE 设备热插/拔的实现方法,其中该清除控制器注册 资讯之步骤,是透过呼叫核心(Kernel)函数ide_ unregister来实现的。 10.如申请专利范围第5项所述之Linux作业系统下IDE 设备热插/拔的实现方法,其中该插/拔类型为插入 时,该修改IDE控制器中的注册资讯之步骤,更包括 如下步骤: 获取指定控制器的资料结构; 初始化该控制器的硬体参数; 探测该控制器,填充注册资讯到控制器的资料结构 中; 设置该控制器的DMA方式;及 启用DMA方式。 图式简单说明: 第1图为本发明之Linux作业系统下IDE设备热插/拔的 实现方法流程图; 第2图为本发明之Linux作业系统下IDE设备热插/拔系 统模组架构图; 第3图为本发明所提之中断处理模组的处理流程图 ; 第4图为本发明所提之用户空间处理模组的处理流 程图;及 第5图为本发明所提之IDE注册资讯处理模组的处理 流程图。
地址 台北市士林区后港街66号