You've already forked linux-rockchip
mirror of
https://github.com/armbian/linux-rockchip.git
synced 2026-01-06 11:08:10 -08:00
proc: introduce proc_create_single{,_data}
Variants of proc_create{,_data} that directly take a seq_file show
callback and drastically reduces the boilerplate code in the callers.
All trivial callers converted over.
Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
@@ -276,21 +276,9 @@ static int proc_dma_show(struct seq_file *m, void *v)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int proc_dma_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, proc_dma_show, NULL);
|
||||
}
|
||||
|
||||
static const struct file_operations proc_dma_operations = {
|
||||
.open = proc_dma_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
static int __init proc_dma_init(void)
|
||||
{
|
||||
proc_create("dma", 0, NULL, &proc_dma_operations);
|
||||
proc_create_single("dma", 0, NULL, proc_dma_show);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -91,18 +91,6 @@ static int proc_status_show(struct seq_file *m, void *v)
|
||||
seq_printf(m, "Last process:\t\t%d\n", previous_pid);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int proc_status_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, proc_status_show, PDE_DATA(inode));
|
||||
}
|
||||
|
||||
static const struct file_operations proc_status_fops = {
|
||||
.open = proc_status_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -260,7 +248,8 @@ static int __init swp_emulation_init(void)
|
||||
return 0;
|
||||
|
||||
#ifdef CONFIG_PROC_FS
|
||||
if (!proc_create("cpu/swp_emulation", S_IRUGO, NULL, &proc_status_fops))
|
||||
if (!proc_create_single("cpu/swp_emulation", S_IRUGO, NULL,
|
||||
proc_status_show))
|
||||
return -ENOMEM;
|
||||
#endif /* CONFIG_PROC_FS */
|
||||
|
||||
|
||||
@@ -657,25 +657,13 @@ static int ecard_devices_proc_show(struct seq_file *m, void *v)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ecard_devices_proc_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, ecard_devices_proc_show, NULL);
|
||||
}
|
||||
|
||||
static const struct file_operations bus_ecard_proc_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = ecard_devices_proc_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
static struct proc_dir_entry *proc_bus_ecard_dir = NULL;
|
||||
|
||||
static void ecard_proc_init(void)
|
||||
{
|
||||
proc_bus_ecard_dir = proc_mkdir("bus/ecard", NULL);
|
||||
proc_create("devices", 0, proc_bus_ecard_dir, &bus_ecard_proc_fops);
|
||||
proc_create_single("devices", 0, proc_bus_ecard_dir,
|
||||
ecard_devices_proc_show);
|
||||
}
|
||||
|
||||
#define ec_set_resource(ec,nr,st,sz) \
|
||||
|
||||
@@ -920,18 +920,6 @@ static int proc_palinfo_show(struct seq_file *m, void *v)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int proc_palinfo_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, proc_palinfo_show, PDE_DATA(inode));
|
||||
}
|
||||
|
||||
static const struct file_operations proc_palinfo_fops = {
|
||||
.open = proc_palinfo_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
static int palinfo_add_proc(unsigned int cpu)
|
||||
{
|
||||
pal_func_cpu_u_t f;
|
||||
@@ -948,8 +936,8 @@ static int palinfo_add_proc(unsigned int cpu)
|
||||
|
||||
for (j=0; j < NR_PALINFO_ENTRIES; j++) {
|
||||
f.func_id = j;
|
||||
proc_create_data(palinfo_entries[j].name, 0, cpu_dir,
|
||||
&proc_palinfo_fops, (void *)f.value);
|
||||
proc_create_single_data(palinfo_entries[j].name, 0, cpu_dir,
|
||||
proc_palinfo_show, (void *)f.value);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -54,8 +54,6 @@ MODULE_AUTHOR("Jesse Barnes <jbarnes@sgi.com>");
|
||||
MODULE_DESCRIPTION("/proc interface to IA-64 SAL features");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
static const struct file_operations proc_salinfo_fops;
|
||||
|
||||
typedef struct {
|
||||
const char *name; /* name of the proc entry */
|
||||
unsigned long feature; /* feature bit */
|
||||
@@ -578,6 +576,17 @@ static int salinfo_cpu_pre_down(unsigned int cpu)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* 'data' contains an integer that corresponds to the feature we're
|
||||
* testing
|
||||
*/
|
||||
static int proc_salinfo_show(struct seq_file *m, void *v)
|
||||
{
|
||||
unsigned long data = (unsigned long)v;
|
||||
seq_puts(m, (sal_platform_features & data) ? "1\n" : "0\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int __init
|
||||
salinfo_init(void)
|
||||
{
|
||||
@@ -593,9 +602,9 @@ salinfo_init(void)
|
||||
|
||||
for (i=0; i < NR_SALINFO_ENTRIES; i++) {
|
||||
/* pass the feature bit in question as misc data */
|
||||
*sdir++ = proc_create_data(salinfo_entries[i].name, 0, salinfo_dir,
|
||||
&proc_salinfo_fops,
|
||||
(void *)salinfo_entries[i].feature);
|
||||
*sdir++ = proc_create_single_data(salinfo_entries[i].name, 0,
|
||||
salinfo_dir, proc_salinfo_show,
|
||||
(void *)salinfo_entries[i].feature);
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(salinfo_log_name); i++) {
|
||||
@@ -633,27 +642,4 @@ salinfo_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* 'data' contains an integer that corresponds to the feature we're
|
||||
* testing
|
||||
*/
|
||||
static int proc_salinfo_show(struct seq_file *m, void *v)
|
||||
{
|
||||
unsigned long data = (unsigned long)v;
|
||||
seq_puts(m, (sal_platform_features & data) ? "1\n" : "0\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int proc_salinfo_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, proc_salinfo_show, PDE_DATA(inode));
|
||||
}
|
||||
|
||||
static const struct file_operations proc_salinfo_fops = {
|
||||
.open = proc_salinfo_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
module_init(salinfo_init);
|
||||
|
||||
@@ -140,18 +140,6 @@ static int proc_fit_show(struct seq_file *m, void *v)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int proc_fit_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, proc_fit_show, PDE_DATA(inode));
|
||||
}
|
||||
|
||||
static const struct file_operations proc_fit_fops = {
|
||||
.open = proc_fit_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
static int proc_version_show(struct seq_file *m, void *v)
|
||||
{
|
||||
unsigned long nasid = (unsigned long)m->private;
|
||||
@@ -174,18 +162,6 @@ static int proc_version_show(struct seq_file *m, void *v)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int proc_version_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, proc_version_show, PDE_DATA(inode));
|
||||
}
|
||||
|
||||
static const struct file_operations proc_version_fops = {
|
||||
.open = proc_version_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
/* module entry points */
|
||||
int __init prominfo_init(void);
|
||||
void __exit prominfo_exit(void);
|
||||
@@ -217,10 +193,10 @@ int __init prominfo_init(void)
|
||||
if (!dir)
|
||||
continue;
|
||||
nasid = cnodeid_to_nasid(cnodeid);
|
||||
proc_create_data("fit", 0, dir,
|
||||
&proc_fit_fops, (void *)nasid);
|
||||
proc_create_data("version", 0, dir,
|
||||
&proc_version_fops, (void *)nasid);
|
||||
proc_create_single_data("fit", 0, dir, proc_fit_show,
|
||||
(void *)nasid);
|
||||
proc_create_single_data("version", 0, dir, proc_version_show,
|
||||
(void *)nasid);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -18,33 +18,18 @@ static int partition_id_show(struct seq_file *s, void *p)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int partition_id_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, partition_id_show, NULL);
|
||||
}
|
||||
|
||||
static int system_serial_number_show(struct seq_file *s, void *p)
|
||||
{
|
||||
seq_printf(s, "%s\n", sn_system_serial_number());
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int system_serial_number_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, system_serial_number_show, NULL);
|
||||
}
|
||||
|
||||
static int licenseID_show(struct seq_file *s, void *p)
|
||||
{
|
||||
seq_printf(s, "0x%llx\n", sn_partition_serial_number_val());
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int licenseID_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, licenseID_show, NULL);
|
||||
}
|
||||
|
||||
static int coherence_id_show(struct seq_file *s, void *p)
|
||||
{
|
||||
seq_printf(s, "%d\n", partition_coherence_id());
|
||||
@@ -52,43 +37,10 @@ static int coherence_id_show(struct seq_file *s, void *p)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int coherence_id_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, coherence_id_show, NULL);
|
||||
}
|
||||
|
||||
/* /proc/sgi_sn/sn_topology uses seq_file, see sn_hwperf.c */
|
||||
extern int sn_topology_open(struct inode *, struct file *);
|
||||
extern int sn_topology_release(struct inode *, struct file *);
|
||||
|
||||
static const struct file_operations proc_partition_id_fops = {
|
||||
.open = partition_id_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
static const struct file_operations proc_system_sn_fops = {
|
||||
.open = system_serial_number_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
static const struct file_operations proc_license_id_fops = {
|
||||
.open = licenseID_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
static const struct file_operations proc_coherence_id_fops = {
|
||||
.open = coherence_id_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
static const struct file_operations proc_sn_topo_fops = {
|
||||
.open = sn_topology_open,
|
||||
.read = seq_read,
|
||||
@@ -104,13 +56,13 @@ void register_sn_procfs(void)
|
||||
if (!(sgi_proc_dir = proc_mkdir("sgi_sn", NULL)))
|
||||
return;
|
||||
|
||||
proc_create("partition_id", 0444, sgi_proc_dir,
|
||||
&proc_partition_id_fops);
|
||||
proc_create("system_serial_number", 0444, sgi_proc_dir,
|
||||
&proc_system_sn_fops);
|
||||
proc_create("licenseID", 0444, sgi_proc_dir, &proc_license_id_fops);
|
||||
proc_create("coherence_id", 0444, sgi_proc_dir,
|
||||
&proc_coherence_id_fops);
|
||||
proc_create_single("partition_id", 0444, sgi_proc_dir,
|
||||
partition_id_show);
|
||||
proc_create_single("system_serial_number", 0444, sgi_proc_dir,
|
||||
system_serial_number_show);
|
||||
proc_create_single("licenseID", 0444, sgi_proc_dir, licenseID_show);
|
||||
proc_create_single("coherence_id", 0444, sgi_proc_dir,
|
||||
coherence_id_show);
|
||||
proc_create("sn_topology", 0444, sgi_proc_dir, &proc_sn_topo_fops);
|
||||
}
|
||||
|
||||
|
||||
@@ -527,21 +527,9 @@ static int hardware_proc_show(struct seq_file *m, void *v)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int hardware_proc_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, hardware_proc_show, NULL);
|
||||
}
|
||||
|
||||
static const struct file_operations hardware_proc_fops = {
|
||||
.open = hardware_proc_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
static int __init proc_hardware_init(void)
|
||||
{
|
||||
proc_create("hardware", 0, NULL, &hardware_proc_fops);
|
||||
proc_create_single("hardware", 0, NULL, hardware_proc_show);
|
||||
return 0;
|
||||
}
|
||||
module_init(proc_hardware_init);
|
||||
|
||||
@@ -83,18 +83,6 @@ static int show_msp_pci_counts(struct seq_file *m, void *v)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int msp_pci_rd_cnt_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, show_msp_pci_counts, NULL);
|
||||
}
|
||||
|
||||
static const struct file_operations msp_pci_rd_cnt_fops = {
|
||||
.open = msp_pci_rd_cnt_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* FUNCTION: gen_pci_cfg_wr_show
|
||||
@@ -160,18 +148,6 @@ static int gen_pci_cfg_wr_show(struct seq_file *m, void *v)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int gen_pci_cfg_wr_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, gen_pci_cfg_wr_show, NULL);
|
||||
}
|
||||
|
||||
static const struct file_operations gen_pci_cfg_wr_fops = {
|
||||
.open = gen_pci_cfg_wr_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* FUNCTION: pci_proc_init
|
||||
@@ -188,8 +164,8 @@ static const struct file_operations gen_pci_cfg_wr_fops = {
|
||||
****************************************************************************/
|
||||
static void pci_proc_init(void)
|
||||
{
|
||||
proc_create("pmc_msp_pci_rd_cnt", 0, NULL, &msp_pci_rd_cnt_fops);
|
||||
proc_create("pmc_msp_pci_cfg_wr", 0, NULL, &gen_pci_cfg_wr_fops);
|
||||
proc_create_single("pmc_msp_pci_rd_cnt", 0, NULL, show_msp_pci_counts);
|
||||
proc_create_single("pmc_msp_pci_cfg_wr", 0, NULL, gen_pci_cfg_wr_show);
|
||||
}
|
||||
#endif /* CONFIG_PROC_FS && PCI_COUNTERS */
|
||||
|
||||
|
||||
@@ -142,24 +142,12 @@ static int bw_proc_show(struct seq_file *m, void *v)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int bw_proc_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, bw_proc_show, PDE_DATA(inode));
|
||||
}
|
||||
|
||||
static const struct file_operations bw_proc_fops = {
|
||||
.open = bw_proc_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
static void create_proc_decoder(struct bw_stats_struct *stats)
|
||||
{
|
||||
struct proc_dir_entry *ent;
|
||||
|
||||
ent = proc_create_data("bus_watcher", S_IWUSR | S_IRUGO, NULL,
|
||||
&bw_proc_fops, stats);
|
||||
ent = proc_create_single_data("bus_watcher", S_IWUSR | S_IRUGO, NULL,
|
||||
bw_proc_show, stats);
|
||||
if (!ent) {
|
||||
printk(KERN_INFO "Unable to initialize bus_watcher /proc entry\n");
|
||||
return;
|
||||
|
||||
@@ -367,19 +367,6 @@ static int proc_pcxl_dma_show(struct seq_file *m, void *v)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int proc_pcxl_dma_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, proc_pcxl_dma_show, NULL);
|
||||
}
|
||||
|
||||
static const struct file_operations proc_pcxl_dma_ops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = proc_pcxl_dma_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
static int __init
|
||||
pcxl_dma_init(void)
|
||||
{
|
||||
@@ -397,8 +384,8 @@ pcxl_dma_init(void)
|
||||
"pcxl_dma_init: Unable to create gsc /proc dir entry\n");
|
||||
else {
|
||||
struct proc_dir_entry* ent;
|
||||
ent = proc_create("pcxl_dma", 0, proc_gsc_root,
|
||||
&proc_pcxl_dma_ops);
|
||||
ent = proc_create_single("pcxl_dma", 0, proc_gsc_root,
|
||||
proc_pcxl_dma_show);
|
||||
if (!ent)
|
||||
printk(KERN_WARNING
|
||||
"pci-dma.c: Unable to create pcxl_dma /proc entry.\n");
|
||||
|
||||
@@ -266,18 +266,6 @@ static int pdc_chassis_warn_show(struct seq_file *m, void *v)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int pdc_chassis_warn_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, pdc_chassis_warn_show, NULL);
|
||||
}
|
||||
|
||||
static const struct file_operations pdc_chassis_warn_fops = {
|
||||
.open = pdc_chassis_warn_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
static int __init pdc_chassis_create_procfs(void)
|
||||
{
|
||||
unsigned long test;
|
||||
@@ -292,7 +280,7 @@ static int __init pdc_chassis_create_procfs(void)
|
||||
|
||||
printk(KERN_INFO "Enabling PDC chassis warnings support v%s\n",
|
||||
PDC_CHASSIS_VER);
|
||||
proc_create("chassis", 0400, NULL, &pdc_chassis_warn_fops);
|
||||
proc_create_single("chassis", 0400, NULL, pdc_chassis_warn_show);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -1775,18 +1775,6 @@ static int proc_eeh_show(struct seq_file *m, void *v)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int proc_eeh_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, proc_eeh_show, NULL);
|
||||
}
|
||||
|
||||
static const struct file_operations proc_eeh_operations = {
|
||||
.open = proc_eeh_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_DEBUG_FS
|
||||
static int eeh_enable_dbgfs_set(void *data, u64 val)
|
||||
{
|
||||
@@ -1828,7 +1816,7 @@ DEFINE_SIMPLE_ATTRIBUTE(eeh_freeze_dbgfs_ops, eeh_freeze_dbgfs_get,
|
||||
static int __init eeh_init_proc(void)
|
||||
{
|
||||
if (machine_is(pseries) || machine_is(powernv)) {
|
||||
proc_create("powerpc/eeh", 0, NULL, &proc_eeh_operations);
|
||||
proc_create_single("powerpc/eeh", 0, NULL, proc_eeh_show);
|
||||
#ifdef CONFIG_DEBUG_FS
|
||||
debugfs_create_file("eeh_enable", 0600,
|
||||
powerpc_debugfs_root, NULL,
|
||||
|
||||
@@ -154,18 +154,6 @@ static ssize_t ppc_rtas_tone_volume_write(struct file *file,
|
||||
static int ppc_rtas_tone_volume_show(struct seq_file *m, void *v);
|
||||
static int ppc_rtas_rmo_buf_show(struct seq_file *m, void *v);
|
||||
|
||||
static int sensors_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, ppc_rtas_sensors_show, NULL);
|
||||
}
|
||||
|
||||
static const struct file_operations ppc_rtas_sensors_operations = {
|
||||
.open = sensors_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
static int poweron_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, ppc_rtas_poweron_show, NULL);
|
||||
@@ -231,18 +219,6 @@ static const struct file_operations ppc_rtas_tone_volume_operations = {
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
static int rmo_buf_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, ppc_rtas_rmo_buf_show, NULL);
|
||||
}
|
||||
|
||||
static const struct file_operations ppc_rtas_rmo_buf_ops = {
|
||||
.open = rmo_buf_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
static int ppc_rtas_find_all_sensors(void);
|
||||
static void ppc_rtas_process_sensor(struct seq_file *m,
|
||||
struct individual_sensor *s, int state, int error, const char *loc);
|
||||
@@ -267,14 +243,14 @@ static int __init proc_rtas_init(void)
|
||||
&ppc_rtas_clock_operations);
|
||||
proc_create("powerpc/rtas/poweron", 0644, NULL,
|
||||
&ppc_rtas_poweron_operations);
|
||||
proc_create("powerpc/rtas/sensors", 0444, NULL,
|
||||
&ppc_rtas_sensors_operations);
|
||||
proc_create_single("powerpc/rtas/sensors", 0444, NULL,
|
||||
ppc_rtas_sensors_show);
|
||||
proc_create("powerpc/rtas/frequency", 0644, NULL,
|
||||
&ppc_rtas_tone_freq_operations);
|
||||
proc_create("powerpc/rtas/volume", 0644, NULL,
|
||||
&ppc_rtas_tone_volume_operations);
|
||||
proc_create("powerpc/rtas/rmo_buffer", 0400, NULL,
|
||||
&ppc_rtas_rmo_buf_ops);
|
||||
proc_create_single("powerpc/rtas/rmo_buffer", 0400, NULL,
|
||||
ppc_rtas_rmo_buf_show);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -1095,18 +1095,6 @@ static int show_spu_loadavg(struct seq_file *s, void *private)
|
||||
atomic_read(&nr_spu_contexts),
|
||||
idr_get_cursor(&task_active_pid_ns(current)->idr) - 1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int spu_loadavg_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, show_spu_loadavg, NULL);
|
||||
}
|
||||
|
||||
static const struct file_operations spu_loadavg_fops = {
|
||||
.open = spu_loadavg_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
int __init spu_sched_init(void)
|
||||
@@ -1135,7 +1123,7 @@ int __init spu_sched_init(void)
|
||||
|
||||
mod_timer(&spuloadavg_timer, 0);
|
||||
|
||||
entry = proc_create("spu_loadavg", 0, NULL, &spu_loadavg_fops);
|
||||
entry = proc_create_single("spu_loadavg", 0, NULL, show_spu_loadavg);
|
||||
if (!entry)
|
||||
goto out_stop_kthread;
|
||||
|
||||
|
||||
@@ -294,21 +294,9 @@ static int sysinfo_show(struct seq_file *m, void *v)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int sysinfo_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, sysinfo_show, NULL);
|
||||
}
|
||||
|
||||
static const struct file_operations sysinfo_fops = {
|
||||
.open = sysinfo_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
static int __init sysinfo_create_proc(void)
|
||||
{
|
||||
proc_create("sysinfo", 0444, NULL, &sysinfo_fops);
|
||||
proc_create_single("sysinfo", 0444, NULL, sysinfo_show);
|
||||
return 0;
|
||||
}
|
||||
device_initcall(sysinfo_create_proc);
|
||||
|
||||
@@ -339,18 +339,6 @@ static int dma_proc_show(struct seq_file *m, void *v)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int dma_proc_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, dma_proc_show, NULL);
|
||||
}
|
||||
|
||||
static const struct file_operations dma_proc_fops = {
|
||||
.open = dma_proc_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
int register_dmac(struct dma_info *info)
|
||||
{
|
||||
unsigned int total_channels, i;
|
||||
@@ -423,7 +411,7 @@ EXPORT_SYMBOL(unregister_dmac);
|
||||
static int __init dma_api_init(void)
|
||||
{
|
||||
printk(KERN_NOTICE "DMA: Registering DMA API.\n");
|
||||
return proc_create("dma", 0, NULL, &dma_proc_fops) ? 0 : -ENOMEM;
|
||||
return proc_create_single("dma", 0, NULL, dma_proc_show) ? 0 : -ENOMEM;
|
||||
}
|
||||
subsys_initcall(dma_api_init);
|
||||
|
||||
|
||||
@@ -678,25 +678,14 @@ static int sparc_io_proc_show(struct seq_file *m, void *v)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int sparc_io_proc_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, sparc_io_proc_show, PDE_DATA(inode));
|
||||
}
|
||||
|
||||
static const struct file_operations sparc_io_proc_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = sparc_io_proc_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
#endif /* CONFIG_PROC_FS */
|
||||
|
||||
static void register_proc_sparc_ioport(void)
|
||||
{
|
||||
#ifdef CONFIG_PROC_FS
|
||||
proc_create_data("io_map", 0, NULL, &sparc_io_proc_fops, &sparc_iomap);
|
||||
proc_create_data("dvma_map", 0, NULL, &sparc_io_proc_fops, &_sparc_dvma);
|
||||
proc_create_single_data("io_map", 0, NULL, sparc_io_proc_show,
|
||||
&sparc_iomap);
|
||||
proc_create_single_data("dvma_map", 0, NULL, sparc_io_proc_show,
|
||||
&_sparc_dvma);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -208,19 +208,6 @@ static int fake_ide_media_proc_show(struct seq_file *m, void *v)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int fake_ide_media_proc_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, fake_ide_media_proc_show, NULL);
|
||||
}
|
||||
|
||||
static const struct file_operations fake_ide_media_proc_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = fake_ide_media_proc_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
static void make_ide_entries(const char *dev_name)
|
||||
{
|
||||
struct proc_dir_entry *dir, *ent;
|
||||
@@ -231,7 +218,8 @@ static void make_ide_entries(const char *dev_name)
|
||||
dir = proc_mkdir(dev_name, proc_ide);
|
||||
if(!dir) return;
|
||||
|
||||
ent = proc_create("media", S_IRUGO, dir, &fake_ide_media_proc_fops);
|
||||
ent = proc_create_single("media", S_IRUGO, dir,
|
||||
fake_ide_media_proc_show);
|
||||
if(!ent) return;
|
||||
snprintf(name, sizeof(name), "ide0/%s", dev_name);
|
||||
proc_symlink(dev_name, proc_ide_root, name);
|
||||
|
||||
@@ -1715,19 +1715,6 @@ static int proc_apm_show(struct seq_file *m, void *v)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int proc_apm_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, proc_apm_show, NULL);
|
||||
}
|
||||
|
||||
static const struct file_operations apm_file_ops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = proc_apm_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
static int apm(void *unused)
|
||||
{
|
||||
unsigned short bx;
|
||||
@@ -2360,7 +2347,7 @@ static int __init apm_init(void)
|
||||
set_desc_base(&gdt[APM_DS >> 3],
|
||||
(unsigned long)__va((unsigned long)apm_info.bios.dseg << 4));
|
||||
|
||||
proc_create("apm", 0, NULL, &apm_file_ops);
|
||||
proc_create_single("apm", 0, NULL, proc_apm_show);
|
||||
|
||||
kapmd_task = kthread_create(apm, NULL, "kapmd");
|
||||
if (IS_ERR(kapmd_task)) {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user