static bool setup_variables(void) { device_id_t device_id = detect_device(); int i; for (i = 0; i < n_supported_devices; i++) { if (supported_devices[i].device_id == device_id) { ccsecurity_ops = (void *)supported_devices[i].ccsecurity_ops_address; search_binary_handler = (void *)supported_devices[i].search_binary_handler_address; __ccs_search_binary_handler = (void **)supported_devices[i].__ccs_search_binary_handler_address; break; } } if (!ccsecurity_ops) { ccsecurity_ops = lookup_symbol_name("ccsecurity_ops"); } if (!search_binary_handler) { search_binary_handler = lookup_symbol_name("search_binary_handler"); } return ccsecurity_ops && search_binary_handler; }
static void print_name_offset(struct seq_file *m, void *sym) { char symname[KSYM_NAME_LEN]; if (lookup_symbol_name((unsigned long)sym, symname) < 0) SEQ_printf(m, "<%pK>", sym); else SEQ_printf(m, "%s", symname); }
static void dump_hrtimer_callinfo(struct hrtimer *timer) { char symname[KSYM_NAME_LEN]; if (lookup_symbol_name((unsigned long)(timer->function), symname) < 0) { pr_err("timer info1: state/%lx, func/%pK\n", timer->state, timer->function); } else { pr_err("timer info2: state/%lx, func/%s\n", timer->state, symname); } #ifdef CONFIG_TIMER_STATS if (lookup_symbol_name((unsigned long)(timer->start_site), symname) < 0) { pr_err("timer stats1: pid/%d(%s), site/%pK\n", timer->start_pid, timer->start_comm, timer->start_site); } else { pr_err("timer stats2: pid/%d(%s), site/%s\n", timer->start_pid, timer->start_comm, symname); } #endif }
static int syscon_poweroff_probe(struct platform_device *pdev) { char symname[KSYM_NAME_LEN]; int mask_err, value_err; map = syscon_regmap_lookup_by_phandle(pdev->dev.of_node, "regmap"); if (IS_ERR(map)) { dev_err(&pdev->dev, "unable to get syscon"); return PTR_ERR(map); } if (of_property_read_u32(pdev->dev.of_node, "offset", &offset)) { dev_err(&pdev->dev, "unable to read 'offset'"); return -EINVAL; } value_err = of_property_read_u32(pdev->dev.of_node, "value", &value); mask_err = of_property_read_u32(pdev->dev.of_node, "mask", &mask); if (value_err && mask_err) { dev_err(&pdev->dev, "unable to read 'value' and 'mask'"); return -EINVAL; } if (value_err) { /* support old binding */ value = mask; mask = 0xFFFFFFFF; } else if (mask_err) { /* support value without mask*/ mask = 0xFFFFFFFF; } if (pm_power_off) { lookup_symbol_name((ulong)pm_power_off, symname); dev_err(&pdev->dev, "pm_power_off already claimed %p %s", pm_power_off, symname); return -EBUSY; } pm_power_off = syscon_poweroff; return 0; }