+ if name == 'interrupt_stats' :
+ self._interrupt_stats_list = caching.GetDynamicCacheData("kern._interrupt_stats_list", [])
+ if len(self._interrupt_stats_list) > 0 : return self._interrupt_stats_list
+ interrupt_stats_head = self.GetGlobalVariable('gInterruptAccountingDataList')
+ interrupt_stats_type = LazyTarget.GetTarget().FindFirstType('IOInterruptAccountingData')
+ interrupt_stats_ptr_type = interrupt_stats_type.GetPointerType()
+ for interrupt_stats_obj in IterateQueue(interrupt_stats_head, interrupt_stats_ptr_type, 'chain'):
+ self._interrupt_stats_list.append(interrupt_stats_obj)
+ caching.SaveDynamicCacheData("kern._interrupt_stats", self._interrupt_stats_list)
+ return self._interrupt_stats_list
+