y6575800055第五章 电源管理D O Z E 模式时的操作函 数, 系统在进入D O Z E 模式时, 就会遍历设备链, 发现设备 L C D正在使用 ( 设备控制块的 “ 设备状态”域表征是否使用) ,用户也挂接了 这种情况下 L C D的操作函数,系统就会通过L C D控制块中的存放的函 数指针调用该操作,其他设备在其他状态转换时的情况类同。p P WR - F r e e D e v i c e C h a i nu s e d}u n u s e d}u n u s e du s e d I u n u s e dP P W几D e v i c e C h a i n图5 -2 设备链示意图初 始 化 时 ,所 有 设 备 都 是 空 闲 的 ,整 个 链 表 组 成 空 闲链 , p P W R _ F r e e D e v i c e C h a i n 和p P W R D e v i c e C h a i n 都 指向 链首, 每 个 控制 块的 指 针域p N e x t 指向 下一个空闲块, 最后一个块的p N e x t 为N U L L . 每分配一个控制块,分配出去的控制块的 p N e x t 置为 N U L L ,同时更新p P W R F r e e D e v i c e C h a i n ; 每回 收一 个空 闲 块, 将该 块链接到空闲 链的 链首。 所以,空闲链是一个单向非循环链表,而使用中的块是分散的,不是一个 链结构。 采用这种设计是考虑到如果维护 “ 使用中” 和“ 空闲” 两个单向 链表, 每次分配和回收需要维护链表的操作太多,特别是在回收的时候 ( 如果要在回收时也比……