本文整理汇总了C++中register_hotcpu_notifier函数的典型用法代码示例。如果您正苦于以下问题:C++ register_hotcpu_notifier函数的具体用法?C++ register_hotcpu_notifier怎么用?C++ register_hotcpu_notifier使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了register_hotcpu_notifier函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: cpufreq_stats_init
static int __init cpufreq_stats_init(void)
{
int ret;
unsigned int cpu;
spin_lock_init(&cpufreq_stats_lock);
ret = cpufreq_register_notifier(¬ifier_policy_block,
CPUFREQ_POLICY_NOTIFIER);
if (ret)
return ret;
ret = cpufreq_register_notifier(¬ifier_trans_block,
CPUFREQ_TRANSITION_NOTIFIER);
if (ret) {
cpufreq_unregister_notifier(¬ifier_policy_block,
CPUFREQ_POLICY_NOTIFIER);
return ret;
}
register_hotcpu_notifier(&cpufreq_stat_cpu_notifier);
for_each_online_cpu(cpu) {
cpufreq_update_policy(cpu);
}
return 0;
}
开发者ID:12019,项目名称:kernel_zte_u880,代码行数:25,代码来源:cpufreq_stats.c
示例2: ina3221_probe
static int __devinit ina3221_probe(struct i2c_client *client,
const struct i2c_device_id *id)
{
struct ina3221_data *data;
int ret, i;
data = devm_kzalloc(&client->dev, sizeof(struct ina3221_data),
GFP_KERNEL);
if (!data) {
ret = -ENOMEM;
goto exit;
}
i2c_set_clientdata(client, data);
data->plat_data = client->dev.platform_data;
mutex_init(&data->mutex);
data->mode = TRIGGERED;
data->shutdown_complete = 0;
/* reset ina3221 */
ret = i2c_smbus_write_word_data(client, INA3221_CONFIG,
__constant_cpu_to_be16((INA3221_RESET)));
if (ret < 0) {
dev_err(&client->dev, "ina3221 reset failure status: 0x%x\n",
ret);
goto exit_free;
}
for (i = 0; i < ARRAY_SIZE(ina3221); i++) {
ret = device_create_file(&client->dev, &ina3221[i].dev_attr);
if (ret) {
dev_err(&client->dev, "device_create_file failed.\n");
goto exit_remove;
}
}
data->client = client;
data->nb.notifier_call = ina3221_hotplug_notify;
register_hotcpu_notifier(&(data->nb));
data->hwmon_dev = hwmon_device_register(&client->dev);
if (IS_ERR(data->hwmon_dev)) {
ret = PTR_ERR(data->hwmon_dev);
goto exit_remove;
}
/* set ina3221 to power down mode */
ret = __locked_power_down_ina3221(client);
if (ret < 0)
goto exit_remove;
return 0;
exit_remove:
while (i--)
device_remove_file(&client->dev, &ina3221[i].dev_attr);
exit_free:
devm_kfree(&client->dev, data);
exit:
return ret;
}
开发者ID:lostdeveloper,项目名称:Grouper-3.4,代码行数:59,代码来源:ina3221.c
示例3: blk_softirq_init
static __init int blk_softirq_init(void)
{
int i;
for_each_possible_cpu(i)
INIT_LIST_HEAD(&per_cpu(blk_cpu_done, i));
open_softirq(BLOCK_SOFTIRQ, blk_done_softirq);
register_hotcpu_notifier(&blk_cpu_notifier);
return 0;
}
开发者ID:0-T-0,项目名称:ps4-linux,代码行数:11,代码来源:blk-softirq.c
示例4: blk_iopoll_setup
static __init int blk_iopoll_setup(void)
{
int i;
for_each_possible_cpu(i)
INIT_LIST_HEAD(&per_cpu(blk_cpu_iopoll, i));
open_softirq(BLOCK_IOPOLL_SOFTIRQ, blk_iopoll_softirq, NULL);
register_hotcpu_notifier(&blk_iopoll_cpu_notifier);
return 0;
}
开发者ID:xf739645524,项目名称:kernel-rhel5,代码行数:11,代码来源:blk-iopoll.c
示例5: acpi_processor_install_hotplug_notify
static
void acpi_processor_install_hotplug_notify(void)
{
#ifdef CONFIG_ACPI_HOTPLUG_CPU
int action = INSTALL_NOTIFY_HANDLER;
acpi_walk_namespace(ACPI_TYPE_PROCESSOR,
ACPI_ROOT_OBJECT,
ACPI_UINT32_MAX,
processor_walk_namespace_cb, &action, NULL);
#endif
register_hotcpu_notifier(&acpi_cpu_notifier);
}
开发者ID:12019,项目名称:kernel_zte_u880,代码行数:12,代码来源:processor_core.c
示例6: jtag_mm_etm_probe
static int jtag_mm_etm_probe(struct platform_device *pdev, uint32_t cpu)
{
struct etm_ctx *etmdata;
struct resource *res;
struct device *dev = &pdev->dev;
/* Allocate memory per cpu */
etmdata = devm_kzalloc(dev, sizeof(struct etm_ctx), GFP_KERNEL);
if (!etmdata)
return -ENOMEM;
etm[cpu] = etmdata;
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "etm-base");
if (!res)
return -ENODEV;
etmdata->base = devm_ioremap(dev, res->start, resource_size(res));
if (!etmdata->base)
return -EINVAL;
/* Allocate etm state save space per core */
etmdata->state = devm_kzalloc(dev,
MAX_ETM_STATE_SIZE * sizeof(uint64_t),
GFP_KERNEL);
if (!etmdata->state)
return -ENOMEM;
spin_lock_init(&etmdata->spinlock);
mutex_init(&etmdata->mutex);
if (cnt++ == 0)
register_hotcpu_notifier(&jtag_mm_etm_notifier);
if (!smp_call_function_single(cpu, etm_init_arch_data, etmdata,
1))
etmdata->init = true;
if (etmdata->init) {
mutex_lock(&etmdata->mutex);
if (etm_arch_supported(etmdata->arch)) {
if (scm_get_feat_version(TZ_DBG_ETM_FEAT_ID) <
TZ_DBG_ETM_VER)
etmdata->save_restore_enabled = true;
else
pr_info("etm save-restore supported by TZ\n");
} else
pr_info("etm arch %u not supported\n", etmdata->arch);
etmdata->enable = true;
mutex_unlock(&etmdata->mutex);
}
return 0;
}
开发者ID:AudioGod,项目名称:Gods_kernel_yu_msm8916,代码行数:53,代码来源:jtagv8-mm.c
示例7: err_inject_init
static int err_inject_init(void)
{
int err;
dir = notifier_err_inject_init("cpu", notifier_err_inject_dir,
&cpu_notifier_err_inject, priority);
if (IS_ERR(dir))
return PTR_ERR(dir);
err = register_hotcpu_notifier(&cpu_notifier_err_inject.nb);
if (err)
debugfs_remove_recursive(dir);
return err;
}
开发者ID:mikuhatsune001,项目名称:linux2.6.32,代码行数:15,代码来源:cpu-notifier-error-inject.c
示例8: platform_hotplug_init
static int __init platform_hotplug_init(void)
{
acpu_sctrl_base_addr = (unsigned long)HISI_VA_ADDRESS(SOC_ACPU_SCTRL_BASE_ADDR);
g_acpu_core_sc_baseaddr[0] = SOC_ACPU_SCTRL_ACPU_SC_CPU0_CTRL_ADDR(acpu_sctrl_base_addr);
g_acpu_core_sc_baseaddr[1] = SOC_ACPU_SCTRL_ACPU_SC_CPU1_CTRL_ADDR(acpu_sctrl_base_addr);
g_acpu_core_sc_baseaddr[2] = SOC_ACPU_SCTRL_ACPU_SC_CPU2_CTRL_ADDR(acpu_sctrl_base_addr);
g_acpu_core_sc_baseaddr[3] = SOC_ACPU_SCTRL_ACPU_SC_CPU3_CTRL_ADDR(acpu_sctrl_base_addr);
g_acpu_core_sc_baseaddr[4] = SOC_ACPU_SCTRL_ACPU_SC_CPU4_CTRL_ADDR(acpu_sctrl_base_addr);
g_acpu_core_sc_baseaddr[5] = SOC_ACPU_SCTRL_ACPU_SC_CPU5_CTRL_ADDR(acpu_sctrl_base_addr);
g_acpu_core_sc_baseaddr[6] = SOC_ACPU_SCTRL_ACPU_SC_CPU6_CTRL_ADDR(acpu_sctrl_base_addr);
g_acpu_core_sc_baseaddr[7] = SOC_ACPU_SCTRL_ACPU_SC_CPU7_CTRL_ADDR(acpu_sctrl_base_addr);
printk("%s: %lu %lu %lu %lu\n", __FUNCTION__, g_acpu_core_sc_baseaddr[0],
g_acpu_core_sc_baseaddr[1], g_acpu_core_sc_baseaddr[2],
g_acpu_core_sc_baseaddr[3]);
printk("%s: %lu %lu %lu %lu\n", __FUNCTION__, g_acpu_core_sc_baseaddr[4],
g_acpu_core_sc_baseaddr[5], g_acpu_core_sc_baseaddr[6],
g_acpu_core_sc_baseaddr[7]);
#ifndef CONFIG_ARM64
register_hotcpu_notifier(&platform_cpu_up_notifier);
register_hotcpu_notifier(&platform_cpu_down_notifier);
#endif
return 0;
}
开发者ID:HuaweiHonor4C,项目名称:kernel_hi6210sft_mm,代码行数:24,代码来源:hi6xxx-hotplug.c
示例9: pnpmgr_init
static int __init pnpmgr_init(void)
{
int ret;
init_timer(&app_timer);
app_timer.function = app_timeout_handler;
INIT_DELAYED_WORK(&touch_boost_work, touch_boost_handler);
pnpmgr_kobj = kobject_create_and_add("pnpmgr", power_kobj);
if (!pnpmgr_kobj) {
pr_err("%s: Can not allocate enough memory for pnpmgr.\n", __func__);
return -ENOMEM;
}
cpufreq_kobj = kobject_create_and_add("cpufreq", pnpmgr_kobj);
hotplug_kobj = kobject_create_and_add("hotplug", pnpmgr_kobj);
thermal_kobj = kobject_create_and_add("thermal", pnpmgr_kobj);
apps_kobj = kobject_create_and_add("apps", pnpmgr_kobj);
sysinfo_kobj = kobject_create_and_add("sysinfo", pnpmgr_kobj);
battery_kobj = kobject_create_and_add("battery", pnpmgr_kobj);
adaptive_policy_kobj = kobject_create_and_add("adaptive_policy", power_kobj);
if (!cpufreq_kobj || !hotplug_kobj || !thermal_kobj || !apps_kobj || !sysinfo_kobj || !battery_kobj || !adaptive_policy_kobj) {
pr_err("%s: Can not allocate enough memory.\n", __func__);
return -ENOMEM;
}
ret = sysfs_create_group(cpufreq_kobj, &cpufreq_attr_group);
ret |= sysfs_create_group(hotplug_kobj, &hotplug_attr_group);
ret |= sysfs_create_group(thermal_kobj, &thermal_attr_group);
ret |= sysfs_create_group(apps_kobj, &apps_attr_group);
ret |= sysfs_create_group(sysinfo_kobj, &sysinfo_attr_group);
ret |= sysfs_create_group(battery_kobj, &battery_attr_group);
ret |= sysfs_create_group(adaptive_policy_kobj, &adaptive_attr_group);
if (ret) {
pr_err("%s: sysfs_create_group failed\n", __func__);
return ret;
}
#ifdef CONFIG_HOTPLUG_CPU
register_hotcpu_notifier(&cpu_hotplug_notifier);
#endif
return 0;
}
开发者ID:Arc-Team,项目名称:android_kernel_htc_a11,代码行数:48,代码来源:htc_pnpmgr.c
示例10: oprofile_timer_init
int oprofile_timer_init(struct oprofile_operations *ops)
{
int rc;
rc = register_hotcpu_notifier(&oprofile_cpu_notifier);
if (rc)
return rc;
ops->create_files = NULL;
ops->setup = NULL;
ops->shutdown = NULL;
ops->start = oprofile_hrtimer_start;
ops->stop = oprofile_hrtimer_stop;
ops->cpu_type = "timer";
printk(KERN_INFO "oprofile: using timer interrupt.\n");
return 0;
}
开发者ID:Scorpio92,项目名称:mstar6a918,代码行数:16,代码来源:timer_int.c
示例11: acpi_processor_driver_init
static int __init acpi_processor_driver_init(void)
{
int result = 0;
if (acpi_disabled)
return 0;
result = driver_register(&acpi_processor_driver);
if (result < 0)
return result;
register_hotcpu_notifier(&acpi_cpu_notifier);
acpi_thermal_cpufreq_init();
acpi_processor_ppc_init();
acpi_processor_throttling_init();
return 0;
}
开发者ID:ChineseDr,项目名称:linux,代码行数:17,代码来源:processor_driver.c
示例12: err_inject_init
static int __init
err_inject_init(void)
{
int i;
#ifdef ERR_INJ_DEBUG
printk(KERN_INFO "Enter error injection driver.\n");
#endif
for_each_online_cpu(i) {
err_inject_cpu_callback(&err_inject_cpu_notifier, CPU_ONLINE,
(void *)(long)i);
}
register_hotcpu_notifier(&err_inject_cpu_notifier);
return 0;
}
开发者ID:Lord-Devices,项目名称:cm_kernel_samsung_hlte,代码行数:17,代码来源:err_inject.c
示例13: cpufreq_stats_setup
static int cpufreq_stats_setup(void)
{
int ret;
unsigned int cpu;
spin_lock_init(&cpufreq_stats_lock);
ret = cpufreq_register_notifier(¬ifier_policy_block,
CPUFREQ_POLICY_NOTIFIER);
if (ret)
return ret;
register_hotcpu_notifier(&cpufreq_stat_cpu_notifier);
for_each_online_cpu(cpu)
cpufreq_update_policy(cpu);
ret = cpufreq_register_notifier(¬ifier_trans_block,
CPUFREQ_TRANSITION_NOTIFIER);
if (ret) {
cpufreq_unregister_notifier(¬ifier_policy_block,
CPUFREQ_POLICY_NOTIFIER);
unregister_hotcpu_notifier(&cpufreq_stat_cpu_notifier);
for_each_online_cpu(cpu)
cpufreq_stats_free_table(cpu);
return ret;
}
create_all_freq_table();
ret = sysfs_create_file(cpufreq_global_kobject,
&_attr_all_time_in_state.attr);
if (ret)
pr_warn("Cannot create sysfs file for cpufreq stats\n");
ret = sysfs_create_file(cpufreq_global_kobject,
&_attr_current_in_state.attr);
if (ret)
pr_warn("Cannot create sysfs file for cpufreq current stats\n");
create_bL_freq_table();
ret = sysfs_create_file(cpufreq_global_kobject,
&_attr_bL_all_time_in_state.attr);
if (ret)
pr_warn("Error creating sysfs file for bL cpufreq stats\n");
return 0;
}
开发者ID:HougeLangley,项目名称:G920F,代码行数:45,代码来源:cpufreq_stats.c
示例14: palinfo_init
static int __init
palinfo_init(void)
{
int i = 0;
printk(KERN_INFO "PAL Information Facility v%s\n", PALINFO_VERSION);
palinfo_dir = proc_mkdir("pal", NULL);
/* Create palinfo dirs in /proc for all online cpus */
for_each_online_cpu(i) {
create_palinfo_proc_entries(i);
}
/* Register for future delivery via notify registration */
register_hotcpu_notifier(&palinfo_cpu_notifier);
return 0;
}
开发者ID:Medvedroid,项目名称:OT_903D-kernel-2.6.35.7,代码行数:18,代码来源:palinfo.c
示例15: irq_affinity_init
static void irq_affinity_init(struct work_struct *dummy)
{
int ret, cpu, i;
char irq_affinity_key[48];
memset(irq_affinity_records, 0, sizeof(irq_affinity_records));
for (i = 0; i < NR_SOC_IRQS; i++)
{
snprintf(irq_affinity_key, sizeof(irq_affinity_key), irq_affinity_key_prefix, i);
ret = get_hw_config_int(irq_affinity_key, &cpu, NULL);
if (ret == false)
continue;
if (cpu < 0)
continue;
if (cpu > NR_CPUS)
continue;
irq_affinity_register_sysctl_table(i, cpu);
/*init the records. as default, irqs binds to CPU0*/
irq_affinity_records[i] = cpu;
ret = irq_set_affinity(i, cpumask_of(cpu));
if (ret < 0)
printk(KERN_ERR "%s %d : failed to irq_set_affinity %d errno %d\r\n",
__FUNCTION__, __LINE__, i, ret);
}
ret = register_hotcpu_notifier(&cpu_up_notifier);
if (ret < 0){
printk(KERN_ERR"%s : register_hotcpu_notifier failed %d !\n",__FUNCTION__, ret);
}
ret = register_pm_notifier(&post_suspend_notifier);
if (ret < 0){
printk(KERN_ERR"%s : register_pm_notifier failed %d !\n",__FUNCTION__, ret);
}
kfree(dummy);
return;
}
开发者ID:printusrzero,项目名称:hwp6s-kernel,代码行数:44,代码来源:irq_affinity.c
示例16: tboot_late_init
static __init int tboot_late_init(void)
{
if (!tboot_enabled())
return 0;
tboot_create_trampoline();
atomic_set(&ap_wfs_count, 0);
register_hotcpu_notifier(&tboot_cpu_notifier);
#ifdef CONFIG_DEBUG_FS
debugfs_create_file("tboot_log", S_IRUSR,
arch_debugfs_dir, NULL, &tboot_log_fops);
#endif
acpi_os_set_prepare_sleep(&tboot_sleep);
acpi_os_set_prepare_extended_sleep(&tboot_extended_sleep);
return 0;
}
开发者ID:0-T-0,项目名称:ps4-linux,代码行数:19,代码来源:tboot.c
示例17: cpuid_init
static int __init cpuid_init(void)
{
int i, err = 0;
i = 0;
if (__register_chrdev(CPUID_MAJOR, 0, NR_CPUS,
"cpu/cpuid", &cpuid_fops)) {
printk(KERN_ERR "cpuid: unable to get major %d for cpuid\n",
CPUID_MAJOR);
err = -EBUSY;
goto out;
}
cpuid_class = class_create(THIS_MODULE, "cpuid");
if (IS_ERR(cpuid_class)) {
err = PTR_ERR(cpuid_class);
goto out_chrdev;
}
cpuid_class->devnode = cpuid_devnode;
get_online_cpus();
for_each_online_cpu(i) {
err = cpuid_device_create(i);
if (err != 0)
goto out_class;
}
register_hotcpu_notifier(&cpuid_class_cpu_notifier);
put_online_cpus();
err = 0;
goto out;
out_class:
i = 0;
for_each_online_cpu(i) {
cpuid_device_destroy(i);
}
put_online_cpus();
class_destroy(cpuid_class);
out_chrdev:
__unregister_chrdev(CPUID_MAJOR, 0, NR_CPUS, "cpu/cpuid");
out:
return err;
}
开发者ID:03199618,项目名称:linux,代码行数:42,代码来源:cpuid.c
示例18: softirq_init
void __init softirq_init(void)
{
int cpu;
for_each_possible_cpu(cpu) {
int i;
per_cpu(tasklet_vec, cpu).tail =
&per_cpu(tasklet_vec, cpu).head;
per_cpu(tasklet_hi_vec, cpu).tail =
&per_cpu(tasklet_hi_vec, cpu).head;
for (i = 0; i < NR_SOFTIRQS; i++)
INIT_LIST_HEAD(&per_cpu(softirq_work_list[i], cpu));
}
register_hotcpu_notifier(&remote_softirq_cpu_notifier);
open_softirq(TASKLET_SOFTIRQ, tasklet_action);
open_softirq(HI_SOFTIRQ, tasklet_hi_action);
}
开发者ID:AudioGod,项目名称:Gods_kernel_yu_msm8916,代码行数:20,代码来源:softirq.c
示例19: cpu_boost_init
static int cpu_boost_init(void)
{
int cpu, ret;
struct cpu_sync *s;
cpufreq_register_notifier(&boost_adjust_nb, CPUFREQ_POLICY_NOTIFIER);
cpu_boost_wq = alloc_workqueue("cpuboost_wq", WQ_HIGHPRI, 0);
if (!cpu_boost_wq)
return -EFAULT;
INIT_WORK(&input_boost_work, do_input_boost);
for_each_possible_cpu(cpu) {
s = &per_cpu(sync_info, cpu);
s->cpu = cpu;
init_waitqueue_head(&s->sync_wq);
spin_lock_init(&s->lock);
INIT_DELAYED_WORK(&s->boost_rem, do_boost_rem);
INIT_DELAYED_WORK(&s->input_boost_rem, do_input_boost_rem);
s->thread = kthread_run(boost_mig_sync_thread, (void *)cpu,
"boost_sync/%d", cpu);
set_cpus_allowed(s->thread, *cpumask_of(cpu));
}
atomic_notifier_chain_register(&migration_notifier_head,
&boost_migration_nb);
ret = input_register_handler(&cpuboost_input_handler);
return 0;
if (ret)
pr_err("Cannot register cpuboost input handler.\n");
ret = register_hotcpu_notifier(&cpu_nblk);
if (ret)
pr_err("Cannot register cpuboost hotplug handler.\n");
notif.notifier_call = fb_notifier_callback;
return ret;
}
开发者ID:Psycho666,项目名称:Simplicity_trlte_kernel,代码行数:41,代码来源:cpu-boost.c
示例20: cpufreq_stats_init
static int __init cpufreq_stats_init(void)
{
int ret;
unsigned int cpu;
spin_lock_init(&cpufreq_stats_lock);
ret = cpufreq_register_notifier(¬ifier_policy_block,
CPUFREQ_POLICY_NOTIFIER);
if (ret)
return ret;
register_hotcpu_notifier(&cpufreq_stat_cpu_notifier);
for_each_online_cpu(cpu)
cpufreq_update_policy(cpu);
ret = cpufreq_register_notifier(¬ifier_trans_block,
CPUFREQ_TRANSITION_NOTIFIER);
if (ret) {
cpufreq_unregister_notifier(¬ifier_policy_block,
CPUFREQ_POLICY_NOTIFIER);
unregister_hotcpu_notifier(&cpufreq_stat_cpu_notifier);
for_each_online_cpu(cpu)
cpufreq_stats_free_table(cpu);
return ret;
}
create_all_freq_table();
for_each_possible_cpu(cpu) {
cpufreq_allstats_create(cpu);
}
if (all_freq_table && all_freq_table->freq_table)
sort(all_freq_table->freq_table, all_freq_table->table_size,
sizeof(unsigned int), &compare_for_sort, NULL);
ret = sysfs_create_file(cpufreq_global_kobject,
&_attr_all_time_in_state.attr);
if (ret)
pr_warn("Error creating sysfs file for cpufreq stats\n");
return 0;
}
开发者ID:davidnguyenwm,项目名称:Hulk-Kernel,代码行数:40,代码来源:cpufreq_stats.c
注:本文中的register_hotcpu_notifier函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论