Ejemplo n.º 1
0
int kerfs_icache_report(int direction, void *param, size_t size, size_t offset, size_t length, unsigned char *buf)
{
	size_t current = 0;
	KERFS_PRINTF(offset, length, buf, current,
			"icache load: %d%%\n", (100 * hash_count(icache)) / hash_length(icache));
	KERFS_PRINTF(offset, length, buf, current,
			"IN USE %d, DIRTY %d, LRU LEN %d, TOTAL CACHED %d\n",
			ic_inuse->count, ic_dirty->count, ic_lru->count, icache->count);
	return current;
}
Ejemplo n.º 2
0
int kerfs_int_report(int direction, void *param, size_t size, size_t offset, size_t length, unsigned char *buf)
{
	size_t current = 0;
	KERFS_PRINTF(offset, length, buf, current, "INT: # CALLS\tMIN\t      MAX\t    MEAN\n");
	for(int i = 0; i < 256; i++) {
		if(!interrupt_counts[i])
			continue;
		KERFS_PRINTF(offset, length, buf, current, "%3d: %-5d\n   " "| 1 -> %9d\t%9d\t%9d\n   ", i, interrupt_counts[i], interrupt_timers[i].runs > 0 ? (uint32_t)interrupt_timers[i].min / 1000 : 0, (uint32_t)interrupt_timers[i].max / 1000, (uint32_t)interrupt_timers[i].mean / 1000);
	}
	return current;
}
Ejemplo n.º 3
0
int kerfs_frames_report(int direction, void *param, size_t size, size_t offset, size_t length, unsigned char *buf)
{
	size_t current = 0;
	for (size_t i = 0; i < maximum_page_number; i++) {
		size_t count = atomic_load(&frames[i].count);
		if (count) {
			KERFS_PRINTF(offset, length, buf, current, "page %8d: %d\n", i, count);
		}
	}
	return current;
}
Ejemplo n.º 4
0
static void __kfs_mnt_rp_write(struct linkedentry *entry, void *__data)
{
	struct filesystem *fs = entry->obj;
	struct __kfs_data *data = __data;
	char *point = fs->pointname;
	if(current_process->root->filesystem == fs)
		point = "/";
	KERFS_PRINTF((*data->offset), data->length, data->buffer, (*data->current),
			"%s %s %s active,0x%x 0 0\n",
			fs->nodename, point, fs->type, fs->opts);
}
Ejemplo n.º 5
0
int kerfs_mount_report(int direction, void *param, size_t size, size_t offset, size_t length, unsigned char *buf)
{
	size_t current = 0;
	struct __kfs_data data = { .offset = &offset,
							   .length = length, 
							   .current = &current, 
							   .buffer = buf };
	KERFS_PRINTF(offset, length, buf, current,
			"DEVICE MTPOINT TYPE OPTIONS\n");
	linkedlist_apply_data(&fslist, __kfs_mnt_rp_write, &data);
	return current;
}