Lines Matching refs:rule
145 ''' Represents a single rule in hardware.yml '''
147 def __init__(self, rule: dict, config: Config):
148 self.rule = rule
150 self.interrupts = rule.get('interrupts', {})
153 for reg in rule.get('regions', []):
158 ''' Returns a list of KernelRegionGroups that this rule specifies should be mapped into the kernel for this device. '''
162 for (i, rule) in self.regions.items():
164 # XXX: skip this rule silently
168 kernel_name = rule['kernel']
169 user = rule.get('user', False)
170 macro = rule.get('macro', None)
172 if 'kernel_size' in rule:
173 max_size = rule['kernel_size']
184 ''' Returns a list of KernelInterrupts that this rule says are used by the kernel for this device. '''
188 for name, rule in self.interrupts.items():
190 if type(rule) == dict:
191 en_macro = rule.get('enable_macro', None)
192 if rule['index'] >= len(interrupts):
193 # XXX: skip this rule silently.
195 defaultIrq = interrupts[rule['index']]
196 sel_macro = rule.get('sel_macro', None)
197 falseIrq = interrupts[rule['undef_index']] if 'undef_index' in rule else -1
198 prio = rule.get('priority', 0)
201 elif type(rule) == int:
202 if rule >= len(interrupts):
203 # XXX: skip this rule silently.
205 irq = KernelInterrupt(name, interrupts[rule], desc=irq_desc)
206 else: # rule == 'boot-cpu'
221 rule = DeviceRule(dev, config)
223 self.rules[compat] = rule