Ejemplo n.º 1
0
static int
read_proc_dpm_stats(char *page, char **start, off_t offset, 
		    int count, int *eof, void *data)
{
	int i, len = 0;
	struct dpm_stats stats[DPM_STATES];

	if (!dpm_enabled) {
		len += sprintf(page + len, "DPM IS DISABLED\n");
		*eof = 1;
		return len;
	}

	dpm_get_os_stats(stats);

	for (i = 0; i < DPM_STATES; i++) {
		len += sprintf(page + len, "%20s", dpm_state_names[i]);
                len += sprintf_u64(page + len, 1, " ", 
				   (u64)stats[i].total_time);
		len += sprintf_u64(page + len, 1, " ", (u64)stats[i].count);
		len += sprintf(page + len, " %s\n", 
			       dpm_active_policy->classes[i]->opt->name);
	}

	*eof = 1;
	return len;
}
Ejemplo n.º 2
0
static int
u_dpm_get_os_stats(struct dpm_param *params)
{
	int ret;
	struct dpm_stats stats[DPM_STATES], *p;

	if ((ret = dpm_get_os_stats(stats)))
		return ret;

	if (copy_from_user(&p, &params->stats, sizeof (struct dpm_stats *)) ||
	    copy_to_user(p, &stats, DPM_STATES * sizeof (struct dpm_stats))) {
		ret = -EFAULT;
	}
	return ret;
}