|
|
switch (rule->rtype) { | switch (rule->rtype) { |
case RULE_MATCH: | case RULE_MATCH: |
/* skip non-matching rules block */ | /* skip non-matching rules block */ |
/*HAL_INFO(("%p match '%s' at %s", rule, rule->key, hal_device_get_udi (d)));*/ |
HAL_INFO(("%p match '%s' at %s", rule, rule->key, hal_device_get_udi (d))); |
if (!handle_match (rule, d)) { | if (!handle_match (rule, d)) { |
/*HAL_INFO(("no match, skip to rule (%llx)", rule->jump_position));*/ |
HAL_INFO(("no match, skip to rule (%llx)", rule->jump_position)); |
|
|
|
if (!rule->jump_position) |
|
break; |
|
|
|
HAL_INFO(("Jumping to rule %d", rule->jump_position)); |
rule = di_jump(rule); | rule = di_jump(rule); |
| |
if(rule == NULL) | if(rule == NULL) |
|
|
/* Checking if we have at least one preprobe rule */ | /* Checking if we have at least one preprobe rule */ |
if(header->fdi_rules_information > header->fdi_rules_preprobe) | if(header->fdi_rules_information > header->fdi_rules_preprobe) |
{ | { |
/*HAL_INFO(("preprobe rules offset: %ld", header->fdi_rules_preprobe)); |
HAL_INFO(("preprobe rules offset: %ld", header->fdi_rules_preprobe)); |
HAL_INFO(("preprobe rules size: %ld", | HAL_INFO(("preprobe rules size: %ld", |
header->fdi_rules_information - header->fdi_rules_preprobe));*/ |
header->fdi_rules_information - header->fdi_rules_preprobe)); |
rules_match_and_merge_device (RULES_PTR(header->fdi_rules_preprobe), d); | rules_match_and_merge_device (RULES_PTR(header->fdi_rules_preprobe), d); |
} | } |
break; | break; |
|
|
/* Checking if we have at least one information rule */ | /* Checking if we have at least one information rule */ |
if(header->fdi_rules_policy > header->fdi_rules_information) | if(header->fdi_rules_policy > header->fdi_rules_information) |
{ | { |
/*HAL_INFO(("information rules offset: %ld", header->fdi_rules_information)); |
HAL_INFO(("information rules offset: %ld", header->fdi_rules_information)); |
HAL_INFO(("information rules size: %ld", | HAL_INFO(("information rules size: %ld", |
header->fdi_rules_policy - header->fdi_rules_information));*/ |
header->fdi_rules_policy - header->fdi_rules_information)); |
rules_match_and_merge_device (RULES_PTR(header->fdi_rules_information), d); | rules_match_and_merge_device (RULES_PTR(header->fdi_rules_information), d); |
} | } |
break; | break; |
|
|
/* Checking if we have at least one policy rule */ | /* Checking if we have at least one policy rule */ |
if(header->all_rules_size > header->fdi_rules_policy) | if(header->all_rules_size > header->fdi_rules_policy) |
{ | { |
/*HAL_INFO(("policy rules offset: %ld", header->fdi_rules_policy)); |
HAL_INFO(("policy rules offset: %ld", header->fdi_rules_policy)); |
HAL_INFO(("policy rules size: %ld", | HAL_INFO(("policy rules size: %ld", |
header->all_rules_size - header->fdi_rules_policy));*/ |
header->all_rules_size - header->fdi_rules_policy)); |
rules_match_and_merge_device (RULES_PTR(header->fdi_rules_policy), d); | rules_match_and_merge_device (RULES_PTR(header->fdi_rules_policy), d); |
} | } |
break; | break; |