Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 934fe05b authored by Alexey Dobriyan's avatar Alexey Dobriyan Committed by Mike Frysinger
Browse files

Blackfin: convert /proc/sram to seq_file



->read_proc interface is going away, switch to seq_file.

Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
parent 6362ec27
Loading
Loading
Loading
Loading
+26 −17
Original line number Original line Diff line number Diff line
@@ -15,6 +15,7 @@
#include <linux/init.h>
#include <linux/init.h>
#include <linux/poll.h>
#include <linux/poll.h>
#include <linux/proc_fs.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/spinlock.h>
#include <linux/spinlock.h>
#include <linux/rtc.h>
#include <linux/rtc.h>
#include <linux/slab.h>
#include <linux/slab.h>
@@ -764,7 +765,7 @@ EXPORT_SYMBOL(sram_alloc_with_lsl);
/* Need to keep line of output the same.  Currently, that is 44 bytes
/* Need to keep line of output the same.  Currently, that is 44 bytes
 * (including newline).
 * (including newline).
 */
 */
static int _sram_proc_read(char *buf, int *len, int count, const char *desc,
static int _sram_proc_show(struct seq_file *m, const char *desc,
		struct sram_piece *pfree_head,
		struct sram_piece *pfree_head,
		struct sram_piece *pused_head)
		struct sram_piece *pused_head)
{
{
@@ -773,13 +774,13 @@ static int _sram_proc_read(char *buf, int *len, int count, const char *desc,
	if (!pfree_head || !pused_head)
	if (!pfree_head || !pused_head)
		return -1;
		return -1;


	*len += sprintf(&buf[*len], "--- SRAM %-14s Size   PID State     \n", desc);
	seq_printf(m, "--- SRAM %-14s Size   PID State     \n", desc);


	/* search the relevant memory slot */
	/* search the relevant memory slot */
	pslot = pused_head->next;
	pslot = pused_head->next;


	while (pslot != NULL) {
	while (pslot != NULL) {
		*len += sprintf(&buf[*len], "%p-%p %10i %5i %-10s\n",
		seq_printf(m, "%p-%p %10i %5i %-10s\n",
			pslot->paddr, pslot->paddr + pslot->size,
			pslot->paddr, pslot->paddr + pslot->size,
			pslot->size, pslot->pid, "ALLOCATED");
			pslot->size, pslot->pid, "ALLOCATED");


@@ -789,7 +790,7 @@ static int _sram_proc_read(char *buf, int *len, int count, const char *desc,
	pslot = pfree_head->next;
	pslot = pfree_head->next;


	while (pslot != NULL) {
	while (pslot != NULL) {
		*len += sprintf(&buf[*len], "%p-%p %10i %5i %-10s\n",
		seq_printf(m, "%p-%p %10i %5i %-10s\n",
			pslot->paddr, pslot->paddr + pslot->size,
			pslot->paddr, pslot->paddr + pslot->size,
			pslot->size, pslot->pid, "FREE");
			pslot->size, pslot->pid, "FREE");


@@ -798,54 +799,62 @@ static int _sram_proc_read(char *buf, int *len, int count, const char *desc,


	return 0;
	return 0;
}
}
static int sram_proc_read(char *buf, char **start, off_t offset, int count,
static int sram_proc_show(struct seq_file *m, void *v)
		int *eof, void *data)
{
{
	int len = 0;
	unsigned int cpu;
	unsigned int cpu;


	for (cpu = 0; cpu < num_possible_cpus(); ++cpu) {
	for (cpu = 0; cpu < num_possible_cpus(); ++cpu) {
		if (_sram_proc_read(buf, &len, count, "Scratchpad",
		if (_sram_proc_show(m, "Scratchpad",
			&per_cpu(free_l1_ssram_head, cpu), &per_cpu(used_l1_ssram_head, cpu)))
			&per_cpu(free_l1_ssram_head, cpu), &per_cpu(used_l1_ssram_head, cpu)))
			goto not_done;
			goto not_done;
#if L1_DATA_A_LENGTH != 0
#if L1_DATA_A_LENGTH != 0
		if (_sram_proc_read(buf, &len, count, "L1 Data A",
		if (_sram_proc_show(m, "L1 Data A",
			&per_cpu(free_l1_data_A_sram_head, cpu),
			&per_cpu(free_l1_data_A_sram_head, cpu),
			&per_cpu(used_l1_data_A_sram_head, cpu)))
			&per_cpu(used_l1_data_A_sram_head, cpu)))
			goto not_done;
			goto not_done;
#endif
#endif
#if L1_DATA_B_LENGTH != 0
#if L1_DATA_B_LENGTH != 0
		if (_sram_proc_read(buf, &len, count, "L1 Data B",
		if (_sram_proc_show(m, "L1 Data B",
			&per_cpu(free_l1_data_B_sram_head, cpu),
			&per_cpu(free_l1_data_B_sram_head, cpu),
			&per_cpu(used_l1_data_B_sram_head, cpu)))
			&per_cpu(used_l1_data_B_sram_head, cpu)))
			goto not_done;
			goto not_done;
#endif
#endif
#if L1_CODE_LENGTH != 0
#if L1_CODE_LENGTH != 0
		if (_sram_proc_read(buf, &len, count, "L1 Instruction",
		if (_sram_proc_show(m, "L1 Instruction",
			&per_cpu(free_l1_inst_sram_head, cpu),
			&per_cpu(free_l1_inst_sram_head, cpu),
			&per_cpu(used_l1_inst_sram_head, cpu)))
			&per_cpu(used_l1_inst_sram_head, cpu)))
			goto not_done;
			goto not_done;
#endif
#endif
	}
	}
#if L2_LENGTH != 0
#if L2_LENGTH != 0
	if (_sram_proc_read(buf, &len, count, "L2", &free_l2_sram_head,
	if (_sram_proc_show(m, "L2", &free_l2_sram_head, &used_l2_sram_head))
		&used_l2_sram_head))
		goto not_done;
		goto not_done;
#endif
#endif
	*eof = 1;
 not_done:
 not_done:
	return len;
	return 0;
}

static int sram_proc_open(struct inode *inode, struct file *file)
{
	return single_open(file, sram_proc_show, NULL);
}
}


static const struct file_operations sram_proc_ops = {
	.open		= sram_proc_open,
	.read		= seq_read,
	.llseek		= seq_lseek,
	.release	= single_release,
};

static int __init sram_proc_init(void)
static int __init sram_proc_init(void)
{
{
	struct proc_dir_entry *ptr;
	struct proc_dir_entry *ptr;
	ptr = create_proc_entry("sram", S_IFREG | S_IRUGO, NULL);

	ptr = proc_create("sram", S_IRUGO, NULL, &sram_proc_ops);
	if (!ptr) {
	if (!ptr) {
		printk(KERN_WARNING "unable to create /proc/sram\n");
		printk(KERN_WARNING "unable to create /proc/sram\n");
		return -1;
		return -1;
	}
	}
	ptr->read_proc = sram_proc_read;
	return 0;
	return 0;
}
}
late_initcall(sram_proc_init);
late_initcall(sram_proc_init);