Beispiel #1
0
int vtunerc_read_proc(char *buffer, char **start, off_t offset, int size,
			int *eof, void *data)
{
	char outbuf[MAXBUF] = "[ vtunerc driver, version "
				VTUNERC_MODULE_VERSION " ]\n";
	int blen, i, pcnt;
	struct vtunerc_ctx *ctx = (struct vtunerc_ctx *)data;

	blen = strlen(outbuf);
	sprintf(outbuf+blen, "  sessions: %u\n", ctx->stat_ctrl_sess);
	blen = strlen(outbuf);
	sprintf(outbuf+blen, "  TS data : %u\n", ctx->stat_wr_data);
	blen = strlen(outbuf);
	sprintf(outbuf+blen, "  PID tab :");
	pcnt = 0;
	for (i = 0; i < MAX_PIDTAB_LEN; i++) {
		blen = strlen(outbuf);
		if (ctx->pidtab[i] != PID_UNKNOWN) {
			sprintf(outbuf+blen, " %x", ctx->pidtab[i]);
			pcnt++;
		}
	}
	blen = strlen(outbuf);
	sprintf(outbuf+blen, " (len=%d)\n", pcnt);
	blen = strlen(outbuf);
	sprintf(outbuf+blen, "  FE type : %s\n", get_fe_name(ctx->feinfo));

	blen = strlen(outbuf);

	if (size < blen)
		return -EINVAL;

	if (offset != 0)
		return 0;

	strcpy(buffer, outbuf);

	/* signal EOF */
	*eof = 1;

	return blen;

}
static int vtunerc_read_proc(struct seq_file *seq, void *v)
{
	int i, pcnt = 0;
	struct vtunerc_ctx *ctx = (struct vtunerc_ctx *)seq->private;

	seq_printf(seq, "[ vtunerc driver, version "
				VTUNERC_MODULE_VERSION " ]\n");
	seq_printf(seq, "  sessions: %u\n", ctx->stat_ctrl_sess);
	seq_printf(seq, "  TS data : %u\n", ctx->stat_wr_data);
	seq_printf(seq, "  PID tab :");
	for (i = 0; i < MAX_PIDTAB_LEN; i++)
		if (ctx->pidtab[i] != PID_UNKNOWN) {
			seq_printf(seq, " %x", ctx->pidtab[i]);
			pcnt++;
		}
	seq_printf(seq, " (len=%d)\n", pcnt);
	seq_printf(seq, "  FE type : %s\n", get_fe_name(ctx->feinfo));

	seq_printf(seq, "  msg xchg: %d/%d\n", ctx->ctrldev_request.type, ctx->ctrldev_response.type);

	return 0;
}