MCPcopy Create free account
hub / github.com/F-Stack/f-stack / cpufreq_settings_sysctl

Function cpufreq_settings_sysctl

freebsd/kern/kern_cpu.c:1031–1065  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1029}
1030
1031static int
1032cpufreq_settings_sysctl(SYSCTL_HANDLER_ARGS)
1033{
1034 device_t dev;
1035 struct cf_setting *sets;
1036 struct sbuf sb;
1037 int error, i, set_count;
1038
1039 dev = oidp->oid_arg1;
1040 sbuf_new(&sb, NULL, 128, SBUF_AUTOEXTEND);
1041
1042 /* Get settings from the device and generate the output string. */
1043 set_count = MAX_SETTINGS;
1044 sets = malloc(set_count * sizeof(*sets), M_TEMP, M_NOWAIT);
1045 if (sets == NULL) {
1046 sbuf_delete(&sb);
1047 return (ENOMEM);
1048 }
1049 error = CPUFREQ_DRV_SETTINGS(dev, sets, &set_count);
1050 if (error)
1051 goto out;
1052 if (set_count) {
1053 for (i = 0; i < set_count; i++)
1054 sbuf_printf(&sb, "%d/%d ", sets[i].freq, sets[i].power);
1055 } else
1056 sbuf_cpy(&sb, "0");
1057 sbuf_trim(&sb);
1058 sbuf_finish(&sb);
1059 error = sysctl_handle_string(oidp, sbuf_data(&sb), sbuf_len(&sb), req);
1060
1061out:
1062 free(sets, M_TEMP);
1063 sbuf_delete(&sb);
1064 return (error);
1065}
1066
1067static void
1068cpufreq_add_freq_driver_sysctl(device_t cf_dev)

Callers

nothing calls this directly

Calls 11

sbuf_newFunction · 0.85
mallocFunction · 0.85
sbuf_deleteFunction · 0.85
sbuf_printfFunction · 0.85
sbuf_cpyFunction · 0.85
sbuf_trimFunction · 0.85
sbuf_finishFunction · 0.85
sysctl_handle_stringFunction · 0.85
sbuf_dataFunction · 0.85
sbuf_lenFunction · 0.85
freeFunction · 0.70

Tested by

no test coverage detected