ACPICA User Guide and Programmer Reference 翻译8

3.2.4异常处理

所有在对ACPICA子系统的请求的处理过程中发生的异常都以ACPI_STATUS为返回码返回到调用者。所有ACPICA的异常都是以“AE_”开头,例如,AE_OK表示请求执行成功。

所有异常处理都由调用者内联到ACPICA子系统接口中。对于以Acpi和AcpiOs开头的调用没有异常处理函数与之关联。

3.2.5 多任务和可重入

ACPICA子系统的所有组成部分都应该是可重入的并且支持多线程的。为了实现可重入和多线程,OSL必须根据特定的主操作系统的操作原语实现互斥访问接口,以保证能够正常使用同步和异常访问。尽管依赖与这写互斥访问接口的实现,然而ACPICA子系统的所有组成部分都是可重入和支持多线程的。AML翻译器是个例外。解释如下。

由于ACPI协议的约束,AML翻译器并发性的实现有很大的限制。协议规定在任意时间,最多只能有一个控制方法能够执行AML代码。如果一个控制方法执行时被阻塞(在一些限制条件下是可能发生的),其它的控制方法应该可以执行。不管怎样,可以说ACPI协议妨碍了控制方法的并发执行。因此,在ACPICA子系统的所有组成部分中,AML翻译器是单线程的。对与对控制方法的内部或者外部请求的串行化是由翻译器的前置部分完成的。

3.2.6 事件处理

词语“事件处理”宽泛的指在ACPICA子系统执行过程中的异步事件。这些事件包括:

  1. 由ACPI固定的和通用事件触发的SCI
  2. 执行ASL中的Notify关键字表示的控制方法而触发的通知事件
  3. 在执行控制方法的过程中,由于进入地址空间或者操作域而触发的事件

对于每个事件的描述以及ACPICA子系统对于这些事件的支持,下面将进行详细的描述。

3.2.6.1 固定事件

固定事件由ACPICA子系统默认事件处理handler处理,对于每个事件,可以安装单独的handler。只有设备驱动和系统服务需要安装此类的handler。

3.2.6.2通用事件

通用事件通常是通过执行与事件相关的控制方法来进行处理的。根据ACPI协议,每一级别的GPE都能有相应的控制方法与之对应。这些控制方法中,以_Exx为名字的是边沿触发方式,以_Lxx为名字的是电平触发方式。xx是以十六进制表示的GPE的级别(详见ACPI协议)。这个控制方法不会在SCI中断handler的上下文执行,但是会被主操作系统入队列以延后执行。

除了这种机制,对于不同级别的GPE可以有单独的handler,这不是强制性的,实际上,现在需要独立的GPE handler的设备只有ACPI EC。EC的驱动会为属于EC 的GPE安装独立handler。

如果GPE安装了handler,handler会使用优先级而不会使用_Exx/_Lxx控制方法。

还支持GPE块设备(GPE Block Devices)。根据需要,这些块嫩够被动态的安装和卸载。ACPICA子系统嫩够对GPE集中处理和分派,并且提供了必要的接口来安装和卸载GPE块设备。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《Win32 Programmer's Reference Guide》是一本关于Win32编程的指南,它的规模很大。Win32是微软公司开发的基于Windows操作系统的编程接口,这本指南详细介绍了如何使用Win32 API进行程序开发。 该指南涵盖了Win32编程中的各个方面,包括窗口管理、消息处理、图形绘制、多线程、文件和目录操作、网络通信等等。它提供了丰富的API文档和示例代码,方便开发人员查阅和学习。 对于初学者来说,《Win32 Programmer's Reference Guide》是一个非常宝贵的学习资源。通过阅读该指南,他们可以了解Win32编程的基本原理和概念,学会使用各种API函数来操作窗口、处理消息和实现各种功能。该指南的详细内容可以帮助初学者逐步掌握Win32编程的技巧和方法。 对于有一定经验的开发人员来说,《Win32 Programmer's Reference Guide》也是一个不可或缺的参考工具。尽管他们可能已经熟悉了Win32编程的基本知识,但是在实际开发过程中仍然会遇到各种问题和挑战。这时他们可以使用该指南来快速查找并解决问题,它提供了详细的API文档和示例,方便开发人员进行参考和调试。 总之,《Win32 Programmer's Reference Guide》是一本权威且内容丰富的Win32编程指南,它对初学者和有经验的开发人员都非常有价值。无论是作为学习材料还是开发工具,该指南都能帮助开发人员快速掌握和应用Win32编程技术。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值