macos - iokit 驱动程序中的全局变量
问题描述
我在基于iokit 的驱动程序中使用了一些全局变量,即在主类实例之外。但是,由于使用未初始化的全局变量或在拆卸时尝试双重释放全局变量,这会在驱动程序启动时导致一些意外的恐慌。
iokit驱动程序生命周期中全局变量的生命周期是什么?如果我在声明时设置了一个全局变量,
例如,如果我有来自类型的全局变量lck_grp_t * my_lock_grp
...
我可以假设我的全局变量已经分配并准备好在我的 iokit 驱动程序到达该
::start
方法时进行设置吗?(my_lock_grp = lck_grp_alloc_init("my-locks", my_lock_grp_attr);
)当我尝试在我的 iokit
::free
方法上释放它时,我可以假设我的全局变量仍然有效吗?(lck_grp_free(my_lock_grp)
)一般的问题是,与驱动程序实例本身相比,基于 iokit 的驱动程序中全局变量的生命周期是什么。
解决方案
推荐阅读
- reactjs - 在不传递任何道具的情况下实例化组件时出现流错误“道具与空不兼容”
- php - 我想从我的表中获取结果,按列排序,其中大部分时间重复值在顶部。我正在使用 laravel
- sql - 哪个查询有效且正确,可以根据表中的最高值获取结果
- datepicker - TYPO3 8.7 后端 - 更改日期选择器的范围
- javascript - Angular HttpClient 不包括指定的标头
- vue.js - 如何使用 Vue.js 进行幻灯片调查
- sql - 如何检查列是否正在更新
- c++ - OpenMP 并行 for 循环和 std::vector 缩减
- java - Android Google Maps - 如何检查折线是否为空
- c# - 将 3gp 文件转换为 Ogg Vorbis?