proc: convert everything to "struct proc_ops"
The most notable change is DEFINE_SHOW_ATTRIBUTE macro split in seq_file.h. Conversion rule is: llseek => proc_lseek unlocked_ioctl => proc_ioctl xxx => proc_xxx delete ".owner = THIS_MODULE" line [akpm@linux-foundation.org: fix drivers/isdn/capi/kcapi_proc.c] [sfr@canb.auug.org.au: fix kernel/sched/psi.c] Link: http://lkml.kernel.org/r/20200122180545.36222f50@canb.auug.org.au Link: http://lkml.kernel.org/r/20191225172546.GB13378@avx2 Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
d56c0d45f0
commit
97a32539b9
|
@ -119,13 +119,12 @@ static ssize_t srm_env_proc_write(struct file *file, const char __user *buffer,
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations srm_env_proc_fops = {
|
static const struct proc_ops srm_env_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = srm_env_proc_open,
|
||||||
.open = srm_env_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_write = srm_env_proc_write,
|
||||||
.write = srm_env_proc_write,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init
|
static int __init
|
||||||
|
@ -182,7 +181,7 @@ srm_env_init(void)
|
||||||
entry = srm_named_entries;
|
entry = srm_named_entries;
|
||||||
while (entry->name && entry->id) {
|
while (entry->name && entry->id) {
|
||||||
if (!proc_create_data(entry->name, 0644, named_dir,
|
if (!proc_create_data(entry->name, 0644, named_dir,
|
||||||
&srm_env_proc_fops, (void *)entry->id))
|
&srm_env_proc_ops, (void *)entry->id))
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
entry++;
|
entry++;
|
||||||
}
|
}
|
||||||
|
@ -194,7 +193,7 @@ srm_env_init(void)
|
||||||
char name[4];
|
char name[4];
|
||||||
sprintf(name, "%ld", var_num);
|
sprintf(name, "%ld", var_num);
|
||||||
if (!proc_create_data(name, 0644, numbered_dir,
|
if (!proc_create_data(name, 0644, numbered_dir,
|
||||||
&srm_env_proc_fops, (void *)var_num))
|
&srm_env_proc_ops, (void *)var_num))
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,9 +17,9 @@ static ssize_t atags_read(struct file *file, char __user *buf,
|
||||||
return simple_read_from_buffer(buf, count, ppos, b->data, b->size);
|
return simple_read_from_buffer(buf, count, ppos, b->data, b->size);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations atags_fops = {
|
static const struct proc_ops atags_proc_ops = {
|
||||||
.read = atags_read,
|
.proc_read = atags_read,
|
||||||
.llseek = default_llseek,
|
.proc_lseek = default_llseek,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define BOOT_PARAMS_SIZE 1536
|
#define BOOT_PARAMS_SIZE 1536
|
||||||
|
@ -61,7 +61,7 @@ static int __init init_atags_procfs(void)
|
||||||
b->size = size;
|
b->size = size;
|
||||||
memcpy(b->data, atags_copy, size);
|
memcpy(b->data, atags_copy, size);
|
||||||
|
|
||||||
tags_entry = proc_create_data("atags", 0400, NULL, &atags_fops, b);
|
tags_entry = proc_create_data("atags", 0400, NULL, &atags_proc_ops, b);
|
||||||
if (!tags_entry)
|
if (!tags_entry)
|
||||||
goto nomem;
|
goto nomem;
|
||||||
|
|
||||||
|
|
|
@ -162,12 +162,12 @@ static ssize_t alignment_proc_write(struct file *file, const char __user *buffer
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations alignment_proc_fops = {
|
static const struct proc_ops alignment_proc_ops = {
|
||||||
.open = alignment_proc_open,
|
.proc_open = alignment_proc_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
.write = alignment_proc_write,
|
.proc_write = alignment_proc_write,
|
||||||
};
|
};
|
||||||
#endif /* CONFIG_PROC_FS */
|
#endif /* CONFIG_PROC_FS */
|
||||||
|
|
||||||
|
@ -1016,7 +1016,7 @@ static int __init alignment_init(void)
|
||||||
struct proc_dir_entry *res;
|
struct proc_dir_entry *res;
|
||||||
|
|
||||||
res = proc_create("cpu/alignment", S_IWUSR | S_IRUGO, NULL,
|
res = proc_create("cpu/alignment", S_IWUSR | S_IRUGO, NULL,
|
||||||
&alignment_proc_fops);
|
&alignment_proc_ops);
|
||||||
if (!res)
|
if (!res)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -331,10 +331,10 @@ salinfo_event_read(struct file *file, char __user *buffer, size_t count, loff_t
|
||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations salinfo_event_fops = {
|
static const struct proc_ops salinfo_event_proc_ops = {
|
||||||
.open = salinfo_event_open,
|
.proc_open = salinfo_event_open,
|
||||||
.read = salinfo_event_read,
|
.proc_read = salinfo_event_read,
|
||||||
.llseek = noop_llseek,
|
.proc_lseek = noop_llseek,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -534,12 +534,12 @@ salinfo_log_write(struct file *file, const char __user *buffer, size_t count, lo
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations salinfo_data_fops = {
|
static const struct proc_ops salinfo_data_proc_ops = {
|
||||||
.open = salinfo_log_open,
|
.proc_open = salinfo_log_open,
|
||||||
.release = salinfo_log_release,
|
.proc_release = salinfo_log_release,
|
||||||
.read = salinfo_log_read,
|
.proc_read = salinfo_log_read,
|
||||||
.write = salinfo_log_write,
|
.proc_write = salinfo_log_write,
|
||||||
.llseek = default_llseek,
|
.proc_lseek = default_llseek,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int salinfo_cpu_online(unsigned int cpu)
|
static int salinfo_cpu_online(unsigned int cpu)
|
||||||
|
@ -617,13 +617,13 @@ salinfo_init(void)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
entry = proc_create_data("event", S_IRUSR, dir,
|
entry = proc_create_data("event", S_IRUSR, dir,
|
||||||
&salinfo_event_fops, data);
|
&salinfo_event_proc_ops, data);
|
||||||
if (!entry)
|
if (!entry)
|
||||||
continue;
|
continue;
|
||||||
*sdir++ = entry;
|
*sdir++ = entry;
|
||||||
|
|
||||||
entry = proc_create_data("data", S_IRUSR | S_IWUSR, dir,
|
entry = proc_create_data("data", S_IRUSR | S_IWUSR, dir,
|
||||||
&salinfo_data_fops, data);
|
&salinfo_data_proc_ops, data);
|
||||||
if (!entry)
|
if (!entry)
|
||||||
continue;
|
continue;
|
||||||
*sdir++ = entry;
|
*sdir++ = entry;
|
||||||
|
|
|
@ -26,9 +26,9 @@ static ssize_t bootinfo_read(struct file *file, char __user *buf,
|
||||||
bootinfo_size);
|
bootinfo_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations bootinfo_fops = {
|
static const struct proc_ops bootinfo_proc_ops = {
|
||||||
.read = bootinfo_read,
|
.proc_read = bootinfo_read,
|
||||||
.llseek = default_llseek,
|
.proc_lseek = default_llseek,
|
||||||
};
|
};
|
||||||
|
|
||||||
void __init save_bootinfo(const struct bi_record *bi)
|
void __init save_bootinfo(const struct bi_record *bi)
|
||||||
|
@ -67,7 +67,7 @@ static int __init init_bootinfo_procfs(void)
|
||||||
if (!bootinfo_copy)
|
if (!bootinfo_copy)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
pde = proc_create_data("bootinfo", 0400, NULL, &bootinfo_fops, NULL);
|
pde = proc_create_data("bootinfo", 0400, NULL, &bootinfo_proc_ops, NULL);
|
||||||
if (!pde) {
|
if (!pde) {
|
||||||
kfree(bootinfo_copy);
|
kfree(bootinfo_copy);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
|
@ -89,13 +89,12 @@ static ssize_t pvc_line_proc_write(struct file *file, const char __user *buf,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations pvc_line_proc_fops = {
|
static const struct proc_ops pvc_line_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = pvc_line_proc_open,
|
||||||
.open = pvc_line_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_write = pvc_line_proc_write,
|
||||||
.write = pvc_line_proc_write,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static ssize_t pvc_scroll_proc_write(struct file *file, const char __user *buf,
|
static ssize_t pvc_scroll_proc_write(struct file *file, const char __user *buf,
|
||||||
|
@ -148,13 +147,12 @@ static int pvc_scroll_proc_open(struct inode *inode, struct file *file)
|
||||||
return single_open(file, pvc_scroll_proc_show, NULL);
|
return single_open(file, pvc_scroll_proc_show, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations pvc_scroll_proc_fops = {
|
static const struct proc_ops pvc_scroll_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = pvc_scroll_proc_open,
|
||||||
.open = pvc_scroll_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_write = pvc_scroll_proc_write,
|
||||||
.write = pvc_scroll_proc_write,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void pvc_proc_timerfunc(struct timer_list *unused)
|
void pvc_proc_timerfunc(struct timer_list *unused)
|
||||||
|
@ -189,12 +187,11 @@ static int __init pvc_proc_init(void)
|
||||||
}
|
}
|
||||||
for (i = 0; i < PVC_NLINES; i++) {
|
for (i = 0; i < PVC_NLINES; i++) {
|
||||||
proc_entry = proc_create_data(pvc_linename[i], 0644, dir,
|
proc_entry = proc_create_data(pvc_linename[i], 0644, dir,
|
||||||
&pvc_line_proc_fops, &pvc_linedata[i]);
|
&pvc_line_proc_ops, &pvc_linedata[i]);
|
||||||
if (proc_entry == NULL)
|
if (proc_entry == NULL)
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
proc_entry = proc_create("scroll", 0644, dir,
|
proc_entry = proc_create("scroll", 0644, dir, &pvc_scroll_proc_ops);
|
||||||
&pvc_scroll_proc_fops);
|
|
||||||
if (proc_entry == NULL)
|
if (proc_entry == NULL)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
|
|
|
@ -39,10 +39,10 @@ static int page_map_mmap( struct file *file, struct vm_area_struct *vma )
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations page_map_fops = {
|
static const struct proc_ops page_map_proc_ops = {
|
||||||
.llseek = page_map_seek,
|
.proc_lseek = page_map_seek,
|
||||||
.read = page_map_read,
|
.proc_read = page_map_read,
|
||||||
.mmap = page_map_mmap
|
.proc_mmap = page_map_mmap,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ static int __init proc_ppc64_init(void)
|
||||||
struct proc_dir_entry *pde;
|
struct proc_dir_entry *pde;
|
||||||
|
|
||||||
pde = proc_create_data("powerpc/systemcfg", S_IFREG | 0444, NULL,
|
pde = proc_create_data("powerpc/systemcfg", S_IFREG | 0444, NULL,
|
||||||
&page_map_fops, vdso_data);
|
&page_map_proc_ops, vdso_data);
|
||||||
if (!pde)
|
if (!pde)
|
||||||
return 1;
|
return 1;
|
||||||
proc_set_size(pde, PAGE_SIZE);
|
proc_set_size(pde, PAGE_SIZE);
|
||||||
|
|
|
@ -159,12 +159,12 @@ static int poweron_open(struct inode *inode, struct file *file)
|
||||||
return single_open(file, ppc_rtas_poweron_show, NULL);
|
return single_open(file, ppc_rtas_poweron_show, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations ppc_rtas_poweron_operations = {
|
static const struct proc_ops ppc_rtas_poweron_proc_ops = {
|
||||||
.open = poweron_open,
|
.proc_open = poweron_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.write = ppc_rtas_poweron_write,
|
.proc_write = ppc_rtas_poweron_write,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int progress_open(struct inode *inode, struct file *file)
|
static int progress_open(struct inode *inode, struct file *file)
|
||||||
|
@ -172,12 +172,12 @@ static int progress_open(struct inode *inode, struct file *file)
|
||||||
return single_open(file, ppc_rtas_progress_show, NULL);
|
return single_open(file, ppc_rtas_progress_show, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations ppc_rtas_progress_operations = {
|
static const struct proc_ops ppc_rtas_progress_proc_ops = {
|
||||||
.open = progress_open,
|
.proc_open = progress_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.write = ppc_rtas_progress_write,
|
.proc_write = ppc_rtas_progress_write,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int clock_open(struct inode *inode, struct file *file)
|
static int clock_open(struct inode *inode, struct file *file)
|
||||||
|
@ -185,12 +185,12 @@ static int clock_open(struct inode *inode, struct file *file)
|
||||||
return single_open(file, ppc_rtas_clock_show, NULL);
|
return single_open(file, ppc_rtas_clock_show, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations ppc_rtas_clock_operations = {
|
static const struct proc_ops ppc_rtas_clock_proc_ops = {
|
||||||
.open = clock_open,
|
.proc_open = clock_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.write = ppc_rtas_clock_write,
|
.proc_write = ppc_rtas_clock_write,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int tone_freq_open(struct inode *inode, struct file *file)
|
static int tone_freq_open(struct inode *inode, struct file *file)
|
||||||
|
@ -198,12 +198,12 @@ static int tone_freq_open(struct inode *inode, struct file *file)
|
||||||
return single_open(file, ppc_rtas_tone_freq_show, NULL);
|
return single_open(file, ppc_rtas_tone_freq_show, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations ppc_rtas_tone_freq_operations = {
|
static const struct proc_ops ppc_rtas_tone_freq_proc_ops = {
|
||||||
.open = tone_freq_open,
|
.proc_open = tone_freq_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.write = ppc_rtas_tone_freq_write,
|
.proc_write = ppc_rtas_tone_freq_write,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int tone_volume_open(struct inode *inode, struct file *file)
|
static int tone_volume_open(struct inode *inode, struct file *file)
|
||||||
|
@ -211,12 +211,12 @@ static int tone_volume_open(struct inode *inode, struct file *file)
|
||||||
return single_open(file, ppc_rtas_tone_volume_show, NULL);
|
return single_open(file, ppc_rtas_tone_volume_show, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations ppc_rtas_tone_volume_operations = {
|
static const struct proc_ops ppc_rtas_tone_volume_proc_ops = {
|
||||||
.open = tone_volume_open,
|
.proc_open = tone_volume_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.write = ppc_rtas_tone_volume_write,
|
.proc_write = ppc_rtas_tone_volume_write,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int ppc_rtas_find_all_sensors(void);
|
static int ppc_rtas_find_all_sensors(void);
|
||||||
|
@ -238,17 +238,17 @@ static int __init proc_rtas_init(void)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
proc_create("powerpc/rtas/progress", 0644, NULL,
|
proc_create("powerpc/rtas/progress", 0644, NULL,
|
||||||
&ppc_rtas_progress_operations);
|
&ppc_rtas_progress_proc_ops);
|
||||||
proc_create("powerpc/rtas/clock", 0644, NULL,
|
proc_create("powerpc/rtas/clock", 0644, NULL,
|
||||||
&ppc_rtas_clock_operations);
|
&ppc_rtas_clock_proc_ops);
|
||||||
proc_create("powerpc/rtas/poweron", 0644, NULL,
|
proc_create("powerpc/rtas/poweron", 0644, NULL,
|
||||||
&ppc_rtas_poweron_operations);
|
&ppc_rtas_poweron_proc_ops);
|
||||||
proc_create_single("powerpc/rtas/sensors", 0444, NULL,
|
proc_create_single("powerpc/rtas/sensors", 0444, NULL,
|
||||||
ppc_rtas_sensors_show);
|
ppc_rtas_sensors_show);
|
||||||
proc_create("powerpc/rtas/frequency", 0644, NULL,
|
proc_create("powerpc/rtas/frequency", 0644, NULL,
|
||||||
&ppc_rtas_tone_freq_operations);
|
&ppc_rtas_tone_freq_proc_ops);
|
||||||
proc_create("powerpc/rtas/volume", 0644, NULL,
|
proc_create("powerpc/rtas/volume", 0644, NULL,
|
||||||
&ppc_rtas_tone_volume_operations);
|
&ppc_rtas_tone_volume_proc_ops);
|
||||||
proc_create_single("powerpc/rtas/rmo_buffer", 0400, NULL,
|
proc_create_single("powerpc/rtas/rmo_buffer", 0400, NULL,
|
||||||
ppc_rtas_rmo_buf_show);
|
ppc_rtas_rmo_buf_show);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -655,7 +655,7 @@ struct rtas_flash_file {
|
||||||
const char *filename;
|
const char *filename;
|
||||||
const char *rtas_call_name;
|
const char *rtas_call_name;
|
||||||
int *status;
|
int *status;
|
||||||
const struct file_operations fops;
|
const struct proc_ops ops;
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct rtas_flash_file rtas_flash_files[] = {
|
static const struct rtas_flash_file rtas_flash_files[] = {
|
||||||
|
@ -663,36 +663,36 @@ static const struct rtas_flash_file rtas_flash_files[] = {
|
||||||
.filename = "powerpc/rtas/" FIRMWARE_FLASH_NAME,
|
.filename = "powerpc/rtas/" FIRMWARE_FLASH_NAME,
|
||||||
.rtas_call_name = "ibm,update-flash-64-and-reboot",
|
.rtas_call_name = "ibm,update-flash-64-and-reboot",
|
||||||
.status = &rtas_update_flash_data.status,
|
.status = &rtas_update_flash_data.status,
|
||||||
.fops.read = rtas_flash_read_msg,
|
.ops.proc_read = rtas_flash_read_msg,
|
||||||
.fops.write = rtas_flash_write,
|
.ops.proc_write = rtas_flash_write,
|
||||||
.fops.release = rtas_flash_release,
|
.ops.proc_release = rtas_flash_release,
|
||||||
.fops.llseek = default_llseek,
|
.ops.proc_lseek = default_llseek,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.filename = "powerpc/rtas/" FIRMWARE_UPDATE_NAME,
|
.filename = "powerpc/rtas/" FIRMWARE_UPDATE_NAME,
|
||||||
.rtas_call_name = "ibm,update-flash-64-and-reboot",
|
.rtas_call_name = "ibm,update-flash-64-and-reboot",
|
||||||
.status = &rtas_update_flash_data.status,
|
.status = &rtas_update_flash_data.status,
|
||||||
.fops.read = rtas_flash_read_num,
|
.ops.proc_read = rtas_flash_read_num,
|
||||||
.fops.write = rtas_flash_write,
|
.ops.proc_write = rtas_flash_write,
|
||||||
.fops.release = rtas_flash_release,
|
.ops.proc_release = rtas_flash_release,
|
||||||
.fops.llseek = default_llseek,
|
.ops.proc_lseek = default_llseek,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.filename = "powerpc/rtas/" VALIDATE_FLASH_NAME,
|
.filename = "powerpc/rtas/" VALIDATE_FLASH_NAME,
|
||||||
.rtas_call_name = "ibm,validate-flash-image",
|
.rtas_call_name = "ibm,validate-flash-image",
|
||||||
.status = &rtas_validate_flash_data.status,
|
.status = &rtas_validate_flash_data.status,
|
||||||
.fops.read = validate_flash_read,
|
.ops.proc_read = validate_flash_read,
|
||||||
.fops.write = validate_flash_write,
|
.ops.proc_write = validate_flash_write,
|
||||||
.fops.release = validate_flash_release,
|
.ops.proc_release = validate_flash_release,
|
||||||
.fops.llseek = default_llseek,
|
.ops.proc_lseek = default_llseek,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.filename = "powerpc/rtas/" MANAGE_FLASH_NAME,
|
.filename = "powerpc/rtas/" MANAGE_FLASH_NAME,
|
||||||
.rtas_call_name = "ibm,manage-flash-image",
|
.rtas_call_name = "ibm,manage-flash-image",
|
||||||
.status = &rtas_manage_flash_data.status,
|
.status = &rtas_manage_flash_data.status,
|
||||||
.fops.read = manage_flash_read,
|
.ops.proc_read = manage_flash_read,
|
||||||
.fops.write = manage_flash_write,
|
.ops.proc_write = manage_flash_write,
|
||||||
.fops.llseek = default_llseek,
|
.ops.proc_lseek = default_llseek,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -723,7 +723,7 @@ static int __init rtas_flash_init(void)
|
||||||
const struct rtas_flash_file *f = &rtas_flash_files[i];
|
const struct rtas_flash_file *f = &rtas_flash_files[i];
|
||||||
int token;
|
int token;
|
||||||
|
|
||||||
if (!proc_create(f->filename, 0600, NULL, &f->fops))
|
if (!proc_create(f->filename, 0600, NULL, &f->ops))
|
||||||
goto enomem;
|
goto enomem;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -385,12 +385,12 @@ static __poll_t rtas_log_poll(struct file *file, poll_table * wait)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations proc_rtas_log_operations = {
|
static const struct proc_ops rtas_log_proc_ops = {
|
||||||
.read = rtas_log_read,
|
.proc_read = rtas_log_read,
|
||||||
.poll = rtas_log_poll,
|
.proc_poll = rtas_log_poll,
|
||||||
.open = rtas_log_open,
|
.proc_open = rtas_log_open,
|
||||||
.release = rtas_log_release,
|
.proc_release = rtas_log_release,
|
||||||
.llseek = noop_llseek,
|
.proc_lseek = noop_llseek,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int enable_surveillance(int timeout)
|
static int enable_surveillance(int timeout)
|
||||||
|
@ -572,7 +572,7 @@ static int __init rtas_init(void)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
entry = proc_create("powerpc/rtas/error_log", 0400, NULL,
|
entry = proc_create("powerpc/rtas/error_log", 0400, NULL,
|
||||||
&proc_rtas_log_operations);
|
&rtas_log_proc_ops);
|
||||||
if (!entry)
|
if (!entry)
|
||||||
printk(KERN_ERR "Failed to create error_log proc entry\n");
|
printk(KERN_ERR "Failed to create error_log proc entry\n");
|
||||||
|
|
||||||
|
|
|
@ -1616,11 +1616,11 @@ static ssize_t topology_write(struct file *file, const char __user *buf,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations topology_ops = {
|
static const struct proc_ops topology_proc_ops = {
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.write = topology_write,
|
.proc_write = topology_write,
|
||||||
.open = topology_open,
|
.proc_open = topology_open,
|
||||||
.release = single_release
|
.proc_release = single_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int topology_update_init(void)
|
static int topology_update_init(void)
|
||||||
|
@ -1630,7 +1630,7 @@ static int topology_update_init(void)
|
||||||
if (vphn_enabled)
|
if (vphn_enabled)
|
||||||
topology_schedule_update();
|
topology_schedule_update();
|
||||||
|
|
||||||
if (!proc_create("powerpc/topology_updates", 0644, NULL, &topology_ops))
|
if (!proc_create("powerpc/topology_updates", 0644, NULL, &topology_proc_ops))
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
topology_inited = 1;
|
topology_inited = 1;
|
||||||
|
|
|
@ -582,12 +582,12 @@ static int vcpudispatch_stats_open(struct inode *inode, struct file *file)
|
||||||
return single_open(file, vcpudispatch_stats_display, NULL);
|
return single_open(file, vcpudispatch_stats_display, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations vcpudispatch_stats_proc_ops = {
|
static const struct proc_ops vcpudispatch_stats_proc_ops = {
|
||||||
.open = vcpudispatch_stats_open,
|
.proc_open = vcpudispatch_stats_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.write = vcpudispatch_stats_write,
|
.proc_write = vcpudispatch_stats_write,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
static ssize_t vcpudispatch_stats_freq_write(struct file *file,
|
static ssize_t vcpudispatch_stats_freq_write(struct file *file,
|
||||||
|
@ -626,12 +626,12 @@ static int vcpudispatch_stats_freq_open(struct inode *inode, struct file *file)
|
||||||
return single_open(file, vcpudispatch_stats_freq_display, NULL);
|
return single_open(file, vcpudispatch_stats_freq_display, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations vcpudispatch_stats_freq_proc_ops = {
|
static const struct proc_ops vcpudispatch_stats_freq_proc_ops = {
|
||||||
.open = vcpudispatch_stats_freq_open,
|
.proc_open = vcpudispatch_stats_freq_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.write = vcpudispatch_stats_freq_write,
|
.proc_write = vcpudispatch_stats_freq_write,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init vcpudispatch_stats_procfs_init(void)
|
static int __init vcpudispatch_stats_procfs_init(void)
|
||||||
|
|
|
@ -698,12 +698,12 @@ static int lparcfg_open(struct inode *inode, struct file *file)
|
||||||
return single_open(file, lparcfg_data, NULL);
|
return single_open(file, lparcfg_data, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations lparcfg_fops = {
|
static const struct proc_ops lparcfg_proc_ops = {
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.write = lparcfg_write,
|
.proc_write = lparcfg_write,
|
||||||
.open = lparcfg_open,
|
.proc_open = lparcfg_open,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init lparcfg_init(void)
|
static int __init lparcfg_init(void)
|
||||||
|
@ -714,7 +714,7 @@ static int __init lparcfg_init(void)
|
||||||
if (firmware_has_feature(FW_FEATURE_SPLPAR))
|
if (firmware_has_feature(FW_FEATURE_SPLPAR))
|
||||||
mode |= 0200;
|
mode |= 0200;
|
||||||
|
|
||||||
if (!proc_create("powerpc/lparcfg", mode, NULL, &lparcfg_fops)) {
|
if (!proc_create("powerpc/lparcfg", mode, NULL, &lparcfg_proc_ops)) {
|
||||||
printk(KERN_ERR "Failed to create powerpc/lparcfg\n");
|
printk(KERN_ERR "Failed to create powerpc/lparcfg\n");
|
||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
|
|
|
@ -391,9 +391,9 @@ static ssize_t ofdt_write(struct file *file, const char __user *buf, size_t coun
|
||||||
return rv ? rv : count;
|
return rv ? rv : count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations ofdt_fops = {
|
static const struct proc_ops ofdt_proc_ops = {
|
||||||
.write = ofdt_write,
|
.proc_write = ofdt_write,
|
||||||
.llseek = noop_llseek,
|
.proc_lseek = noop_llseek,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* create /proc/powerpc/ofdt write-only by root */
|
/* create /proc/powerpc/ofdt write-only by root */
|
||||||
|
@ -401,7 +401,7 @@ static int proc_ppc64_create_ofdt(void)
|
||||||
{
|
{
|
||||||
struct proc_dir_entry *ent;
|
struct proc_dir_entry *ent;
|
||||||
|
|
||||||
ent = proc_create("powerpc/ofdt", 0200, NULL, &ofdt_fops);
|
ent = proc_create("powerpc/ofdt", 0200, NULL, &ofdt_proc_ops);
|
||||||
if (ent)
|
if (ent)
|
||||||
proc_set_size(ent, 0);
|
proc_set_size(ent, 0);
|
||||||
|
|
||||||
|
|
|
@ -152,13 +152,12 @@ static int scanlog_release(struct inode * inode, struct file * file)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations scanlog_fops = {
|
static const struct proc_ops scanlog_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_read = scanlog_read,
|
||||||
.read = scanlog_read,
|
.proc_write = scanlog_write,
|
||||||
.write = scanlog_write,
|
.proc_open = scanlog_open,
|
||||||
.open = scanlog_open,
|
.proc_release = scanlog_release,
|
||||||
.release = scanlog_release,
|
.proc_lseek = noop_llseek,
|
||||||
.llseek = noop_llseek,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init scanlog_init(void)
|
static int __init scanlog_init(void)
|
||||||
|
@ -176,7 +175,7 @@ static int __init scanlog_init(void)
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
ent = proc_create("powerpc/rtas/scan-log-dump", 0400, NULL,
|
ent = proc_create("powerpc/rtas/scan-log-dump", 0400, NULL,
|
||||||
&scanlog_fops);
|
&scanlog_proc_ops);
|
||||||
if (!ent)
|
if (!ent)
|
||||||
goto err;
|
goto err;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -152,13 +152,12 @@ static ssize_t alignment_proc_write(struct file *file,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations alignment_proc_fops = {
|
static const struct proc_ops alignment_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = alignment_proc_open,
|
||||||
.open = alignment_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_write = alignment_proc_write,
|
||||||
.write = alignment_proc_write,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -176,12 +175,12 @@ static int __init alignment_init(void)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
res = proc_create_data("alignment", S_IWUSR | S_IRUGO, dir,
|
res = proc_create_data("alignment", S_IWUSR | S_IRUGO, dir,
|
||||||
&alignment_proc_fops, &se_usermode);
|
&alignment_proc_ops, &se_usermode);
|
||||||
if (!res)
|
if (!res)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
res = proc_create_data("kernel_alignment", S_IWUSR | S_IRUGO, dir,
|
res = proc_create_data("kernel_alignment", S_IWUSR | S_IRUGO, dir,
|
||||||
&alignment_proc_fops, &se_kernmode_warn);
|
&alignment_proc_ops, &se_kernmode_warn);
|
||||||
if (!res)
|
if (!res)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
|
|
@ -104,13 +104,12 @@ static ssize_t led_proc_write(struct file *file, const char __user *buffer,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations led_proc_fops = {
|
static const struct proc_ops led_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = led_proc_open,
|
||||||
.open = led_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_write = led_proc_write,
|
||||||
.write = led_proc_write,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct proc_dir_entry *led;
|
static struct proc_dir_entry *led;
|
||||||
|
@ -121,7 +120,7 @@ static int __init led_init(void)
|
||||||
{
|
{
|
||||||
timer_setup(&led_blink_timer, led_blink, 0);
|
timer_setup(&led_blink_timer, led_blink, 0);
|
||||||
|
|
||||||
led = proc_create("led", 0, NULL, &led_proc_fops);
|
led = proc_create("led", 0, NULL, &led_proc_ops);
|
||||||
if (!led)
|
if (!led)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
|
|
@ -752,10 +752,9 @@ static ssize_t mconsole_proc_write(struct file *file,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations mconsole_proc_fops = {
|
static const struct proc_ops mconsole_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_write = mconsole_proc_write,
|
||||||
.write = mconsole_proc_write,
|
.proc_lseek = noop_llseek,
|
||||||
.llseek = noop_llseek,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int create_proc_mconsole(void)
|
static int create_proc_mconsole(void)
|
||||||
|
@ -765,7 +764,7 @@ static int create_proc_mconsole(void)
|
||||||
if (notify_socket == NULL)
|
if (notify_socket == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
ent = proc_create("mconsole", 0200, NULL, &mconsole_proc_fops);
|
ent = proc_create("mconsole", 0200, NULL, &mconsole_proc_ops);
|
||||||
if (ent == NULL) {
|
if (ent == NULL) {
|
||||||
printk(KERN_INFO "create_proc_mconsole : proc_create failed\n");
|
printk(KERN_INFO "create_proc_mconsole : proc_create failed\n");
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -55,20 +55,19 @@ static ssize_t exitcode_proc_write(struct file *file,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations exitcode_proc_fops = {
|
static const struct proc_ops exitcode_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = exitcode_proc_open,
|
||||||
.open = exitcode_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_write = exitcode_proc_write,
|
||||||
.write = exitcode_proc_write,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int make_proc_exitcode(void)
|
static int make_proc_exitcode(void)
|
||||||
{
|
{
|
||||||
struct proc_dir_entry *ent;
|
struct proc_dir_entry *ent;
|
||||||
|
|
||||||
ent = proc_create("exitcode", 0600, NULL, &exitcode_proc_fops);
|
ent = proc_create("exitcode", 0600, NULL, &exitcode_proc_ops);
|
||||||
if (ent == NULL) {
|
if (ent == NULL) {
|
||||||
printk(KERN_WARNING "make_proc_exitcode : Failed to register "
|
printk(KERN_WARNING "make_proc_exitcode : Failed to register "
|
||||||
"/proc/exitcode\n");
|
"/proc/exitcode\n");
|
||||||
|
|
|
@ -348,13 +348,12 @@ static ssize_t sysemu_proc_write(struct file *file, const char __user *buf,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations sysemu_proc_fops = {
|
static const struct proc_ops sysemu_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = sysemu_proc_open,
|
||||||
.open = sysemu_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_write = sysemu_proc_write,
|
||||||
.write = sysemu_proc_write,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
int __init make_proc_sysemu(void)
|
int __init make_proc_sysemu(void)
|
||||||
|
@ -363,7 +362,7 @@ int __init make_proc_sysemu(void)
|
||||||
if (!sysemu_supported)
|
if (!sysemu_supported)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
ent = proc_create("sysemu", 0600, NULL, &sysemu_proc_fops);
|
ent = proc_create("sysemu", 0600, NULL, &sysemu_proc_ops);
|
||||||
|
|
||||||
if (ent == NULL)
|
if (ent == NULL)
|
||||||
{
|
{
|
||||||
|
|
|
@ -396,15 +396,16 @@ static int mtrr_open(struct inode *inode, struct file *file)
|
||||||
return single_open(file, mtrr_seq_show, NULL);
|
return single_open(file, mtrr_seq_show, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations mtrr_fops = {
|
static const struct proc_ops mtrr_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = mtrr_open,
|
||||||
.open = mtrr_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_write = mtrr_write,
|
||||||
.write = mtrr_write,
|
.proc_ioctl = mtrr_ioctl,
|
||||||
.unlocked_ioctl = mtrr_ioctl,
|
#ifdef CONFIG_COMPAT
|
||||||
.compat_ioctl = mtrr_ioctl,
|
.proc_compat_ioctl = mtrr_ioctl,
|
||||||
.release = mtrr_close,
|
#endif
|
||||||
|
.proc_release = mtrr_close,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init mtrr_if_init(void)
|
static int __init mtrr_if_init(void)
|
||||||
|
@ -417,7 +418,7 @@ static int __init mtrr_if_init(void)
|
||||||
(!cpu_has(c, X86_FEATURE_CENTAUR_MCR)))
|
(!cpu_has(c, X86_FEATURE_CENTAUR_MCR)))
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
proc_create("mtrr", S_IWUSR | S_IRUGO, NULL, &mtrr_fops);
|
proc_create("mtrr", S_IWUSR | S_IRUGO, NULL, &mtrr_proc_ops);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
arch_initcall(mtrr_if_init);
|
arch_initcall(mtrr_if_init);
|
||||||
|
|
|
@ -1668,12 +1668,12 @@ static int tunables_open(struct inode *inode, struct file *file)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations proc_uv_ptc_operations = {
|
static const struct proc_ops uv_ptc_proc_ops = {
|
||||||
.open = ptc_proc_open,
|
.proc_open = ptc_proc_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.write = ptc_proc_write,
|
.proc_write = ptc_proc_write,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = seq_release,
|
.proc_release = seq_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct file_operations tunables_fops = {
|
static const struct file_operations tunables_fops = {
|
||||||
|
@ -1691,7 +1691,7 @@ static int __init uv_ptc_init(void)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
proc_uv_ptc = proc_create(UV_PTC_BASENAME, 0444, NULL,
|
proc_uv_ptc = proc_create(UV_PTC_BASENAME, 0444, NULL,
|
||||||
&proc_uv_ptc_operations);
|
&uv_ptc_proc_ops);
|
||||||
if (!proc_uv_ptc) {
|
if (!proc_uv_ptc) {
|
||||||
pr_err("unable to create %s proc entry\n",
|
pr_err("unable to create %s proc entry\n",
|
||||||
UV_PTC_BASENAME);
|
UV_PTC_BASENAME);
|
||||||
|
|
|
@ -251,10 +251,10 @@ static ssize_t proc_write_simdisk(struct file *file, const char __user *buf,
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations fops = {
|
static const struct proc_ops simdisk_proc_ops = {
|
||||||
.read = proc_read_simdisk,
|
.proc_read = proc_read_simdisk,
|
||||||
.write = proc_write_simdisk,
|
.proc_write = proc_write_simdisk,
|
||||||
.llseek = default_llseek,
|
.proc_lseek = default_llseek,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init simdisk_setup(struct simdisk *dev, int which,
|
static int __init simdisk_setup(struct simdisk *dev, int which,
|
||||||
|
@ -290,7 +290,7 @@ static int __init simdisk_setup(struct simdisk *dev, int which,
|
||||||
set_capacity(dev->gd, 0);
|
set_capacity(dev->gd, 0);
|
||||||
add_disk(dev->gd);
|
add_disk(dev->gd);
|
||||||
|
|
||||||
dev->procfile = proc_create_data(tmp, 0644, procdir, &fops, dev);
|
dev->procfile = proc_create_data(tmp, 0644, procdir, &simdisk_proc_ops, dev);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
out_alloc_disk:
|
out_alloc_disk:
|
||||||
|
|
|
@ -1202,13 +1202,12 @@ static int acpi_battery_alarm_proc_open(struct inode *inode, struct file *file)
|
||||||
return single_open(file, acpi_battery_alarm_proc_show, PDE_DATA(inode));
|
return single_open(file, acpi_battery_alarm_proc_show, PDE_DATA(inode));
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations acpi_battery_alarm_fops = {
|
static const struct proc_ops acpi_battery_alarm_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = acpi_battery_alarm_proc_open,
|
||||||
.open = acpi_battery_alarm_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_write = acpi_battery_write_alarm,
|
||||||
.write = acpi_battery_write_alarm,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int acpi_battery_add_fs(struct acpi_device *device)
|
static int acpi_battery_add_fs(struct acpi_device *device)
|
||||||
|
@ -1228,7 +1227,7 @@ static int acpi_battery_add_fs(struct acpi_device *device)
|
||||||
acpi_battery_state_proc_show, acpi_driver_data(device)))
|
acpi_battery_state_proc_show, acpi_driver_data(device)))
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
if (!proc_create_data("alarm", S_IFREG | S_IRUGO | S_IWUSR,
|
if (!proc_create_data("alarm", S_IFREG | S_IRUGO | S_IWUSR,
|
||||||
acpi_device_dir(device), &acpi_battery_alarm_fops,
|
acpi_device_dir(device), &acpi_battery_alarm_proc_ops,
|
||||||
acpi_driver_data(device)))
|
acpi_driver_data(device)))
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -136,18 +136,17 @@ acpi_system_wakeup_device_open_fs(struct inode *inode, struct file *file)
|
||||||
PDE_DATA(inode));
|
PDE_DATA(inode));
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations acpi_system_wakeup_device_fops = {
|
static const struct proc_ops acpi_system_wakeup_device_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = acpi_system_wakeup_device_open_fs,
|
||||||
.open = acpi_system_wakeup_device_open_fs,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_write = acpi_system_write_wakeup_device,
|
||||||
.write = acpi_system_write_wakeup_device,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void __init acpi_sleep_proc_init(void)
|
void __init acpi_sleep_proc_init(void)
|
||||||
{
|
{
|
||||||
/* 'wakeup device' [R/W] */
|
/* 'wakeup device' [R/W] */
|
||||||
proc_create("wakeup", S_IFREG | S_IRUGO | S_IWUSR,
|
proc_create("wakeup", S_IFREG | S_IRUGO | S_IWUSR,
|
||||||
acpi_root_dir, &acpi_system_wakeup_device_fops);
|
acpi_root_dir, &acpi_system_wakeup_device_proc_ops);
|
||||||
}
|
}
|
||||||
|
|
|
@ -595,19 +595,18 @@ static int i8k_open_fs(struct inode *inode, struct file *file)
|
||||||
return single_open(file, i8k_proc_show, NULL);
|
return single_open(file, i8k_proc_show, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations i8k_fops = {
|
static const struct proc_ops i8k_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = i8k_open_fs,
|
||||||
.open = i8k_open_fs,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_ioctl = i8k_ioctl,
|
||||||
.unlocked_ioctl = i8k_ioctl,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static void __init i8k_init_procfs(void)
|
static void __init i8k_init_procfs(void)
|
||||||
{
|
{
|
||||||
/* Register the proc entry */
|
/* Register the proc entry */
|
||||||
proc_create("i8k", 0, NULL, &i8k_fops);
|
proc_create("i8k", 0, NULL, &i8k_proc_ops);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __exit i8k_exit_procfs(void)
|
static void __exit i8k_exit_procfs(void)
|
||||||
|
|
|
@ -381,13 +381,12 @@ static ssize_t ide_settings_proc_write(struct file *file, const char __user *buf
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations ide_settings_proc_fops = {
|
static const struct proc_ops ide_settings_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = ide_settings_proc_open,
|
||||||
.open = ide_settings_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_write = ide_settings_proc_write,
|
||||||
.write = ide_settings_proc_write,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
int ide_capacity_proc_show(struct seq_file *m, void *v)
|
int ide_capacity_proc_show(struct seq_file *m, void *v)
|
||||||
|
@ -546,7 +545,7 @@ void ide_proc_port_register_devices(ide_hwif_t *hwif)
|
||||||
if (drive->proc) {
|
if (drive->proc) {
|
||||||
ide_add_proc_entries(drive->proc, generic_drive_entries, drive);
|
ide_add_proc_entries(drive->proc, generic_drive_entries, drive);
|
||||||
proc_create_data("settings", S_IFREG|S_IRUSR|S_IWUSR,
|
proc_create_data("settings", S_IFREG|S_IRUSR|S_IWUSR,
|
||||||
drive->proc, &ide_settings_proc_fops,
|
drive->proc, &ide_settings_proc_ops,
|
||||||
drive);
|
drive);
|
||||||
}
|
}
|
||||||
sprintf(name, "ide%d/%s", (drive->name[2]-'a')/2, drive->name);
|
sprintf(name, "ide%d/%s", (drive->name[2]-'a')/2, drive->name);
|
||||||
|
@ -615,7 +614,7 @@ static int ide_drivers_show(struct seq_file *s, void *p)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFINE_SHOW_ATTRIBUTE(ide_drivers);
|
DEFINE_PROC_SHOW_ATTRIBUTE(ide_drivers);
|
||||||
|
|
||||||
void proc_ide_create(void)
|
void proc_ide_create(void)
|
||||||
{
|
{
|
||||||
|
@ -624,7 +623,7 @@ void proc_ide_create(void)
|
||||||
if (!proc_ide_root)
|
if (!proc_ide_root)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
proc_create("drivers", 0, proc_ide_root, &ide_drivers_fops);
|
proc_create("drivers", 0, proc_ide_root, &ide_drivers_proc_ops);
|
||||||
}
|
}
|
||||||
|
|
||||||
void proc_ide_destroy(void)
|
void proc_ide_destroy(void)
|
||||||
|
|
|
@ -1216,13 +1216,12 @@ static int input_proc_devices_open(struct inode *inode, struct file *file)
|
||||||
return seq_open(file, &input_devices_seq_ops);
|
return seq_open(file, &input_devices_seq_ops);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations input_devices_fileops = {
|
static const struct proc_ops input_devices_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = input_proc_devices_open,
|
||||||
.open = input_proc_devices_open,
|
.proc_poll = input_proc_devices_poll,
|
||||||
.poll = input_proc_devices_poll,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = seq_release,
|
||||||
.release = seq_release,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static void *input_handlers_seq_start(struct seq_file *seq, loff_t *pos)
|
static void *input_handlers_seq_start(struct seq_file *seq, loff_t *pos)
|
||||||
|
@ -1280,12 +1279,11 @@ static int input_proc_handlers_open(struct inode *inode, struct file *file)
|
||||||
return seq_open(file, &input_handlers_seq_ops);
|
return seq_open(file, &input_handlers_seq_ops);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations input_handlers_fileops = {
|
static const struct proc_ops input_handlers_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = input_proc_handlers_open,
|
||||||
.open = input_proc_handlers_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = seq_release,
|
||||||
.release = seq_release,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init input_proc_init(void)
|
static int __init input_proc_init(void)
|
||||||
|
@ -1297,12 +1295,12 @@ static int __init input_proc_init(void)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
entry = proc_create("devices", 0, proc_bus_input_dir,
|
entry = proc_create("devices", 0, proc_bus_input_dir,
|
||||||
&input_devices_fileops);
|
&input_devices_proc_ops);
|
||||||
if (!entry)
|
if (!entry)
|
||||||
goto fail1;
|
goto fail1;
|
||||||
|
|
||||||
entry = proc_create("handlers", 0, proc_bus_input_dir,
|
entry = proc_create("handlers", 0, proc_bus_input_dir,
|
||||||
&input_handlers_fileops);
|
&input_handlers_proc_ops);
|
||||||
if (!entry)
|
if (!entry)
|
||||||
goto fail2;
|
goto fail2;
|
||||||
|
|
||||||
|
|
|
@ -199,8 +199,8 @@ static ssize_t empty_read(struct file *file, char __user *buf,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations empty_fops = {
|
static const struct proc_ops empty_proc_ops = {
|
||||||
.read = empty_read,
|
.proc_read = empty_read,
|
||||||
};
|
};
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
@ -214,7 +214,7 @@ kcapi_proc_init(void)
|
||||||
proc_create_seq("capi/contrstats", 0, NULL, &seq_contrstats_ops);
|
proc_create_seq("capi/contrstats", 0, NULL, &seq_contrstats_ops);
|
||||||
proc_create_seq("capi/applications", 0, NULL, &seq_applications_ops);
|
proc_create_seq("capi/applications", 0, NULL, &seq_applications_ops);
|
||||||
proc_create_seq("capi/applstats", 0, NULL, &seq_applstats_ops);
|
proc_create_seq("capi/applstats", 0, NULL, &seq_applstats_ops);
|
||||||
proc_create("capi/driver", 0, NULL, &empty_fops);
|
proc_create("capi/driver", 0, NULL, &empty_proc_ops);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -212,7 +212,7 @@ static int pmu_info_proc_show(struct seq_file *m, void *v);
|
||||||
static int pmu_irqstats_proc_show(struct seq_file *m, void *v);
|
static int pmu_irqstats_proc_show(struct seq_file *m, void *v);
|
||||||
static int pmu_battery_proc_show(struct seq_file *m, void *v);
|
static int pmu_battery_proc_show(struct seq_file *m, void *v);
|
||||||
static void pmu_pass_intr(unsigned char *data, int len);
|
static void pmu_pass_intr(unsigned char *data, int len);
|
||||||
static const struct file_operations pmu_options_proc_fops;
|
static const struct proc_ops pmu_options_proc_ops;
|
||||||
|
|
||||||
#ifdef CONFIG_ADB
|
#ifdef CONFIG_ADB
|
||||||
const struct adb_driver via_pmu_driver = {
|
const struct adb_driver via_pmu_driver = {
|
||||||
|
@ -573,7 +573,7 @@ static int __init via_pmu_dev_init(void)
|
||||||
proc_pmu_irqstats = proc_create_single("interrupts", 0,
|
proc_pmu_irqstats = proc_create_single("interrupts", 0,
|
||||||
proc_pmu_root, pmu_irqstats_proc_show);
|
proc_pmu_root, pmu_irqstats_proc_show);
|
||||||
proc_pmu_options = proc_create("options", 0600, proc_pmu_root,
|
proc_pmu_options = proc_create("options", 0600, proc_pmu_root,
|
||||||
&pmu_options_proc_fops);
|
&pmu_options_proc_ops);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -974,13 +974,12 @@ static ssize_t pmu_options_proc_write(struct file *file,
|
||||||
return fcount;
|
return fcount;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations pmu_options_proc_fops = {
|
static const struct proc_ops pmu_options_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = pmu_options_proc_open,
|
||||||
.open = pmu_options_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_write = pmu_options_proc_write,
|
||||||
.write = pmu_options_proc_write,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_ADB
|
#ifdef CONFIG_ADB
|
||||||
|
|
|
@ -8279,13 +8279,12 @@ static __poll_t mdstat_poll(struct file *filp, poll_table *wait)
|
||||||
return mask;
|
return mask;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations md_seq_fops = {
|
static const struct proc_ops mdstat_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = md_seq_open,
|
||||||
.open = md_seq_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = seq_release,
|
||||||
.release = seq_release,
|
.proc_poll = mdstat_poll,
|
||||||
.poll = mdstat_poll,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
int register_md_personality(struct md_personality *p)
|
int register_md_personality(struct md_personality *p)
|
||||||
|
@ -9454,7 +9453,7 @@ static void md_geninit(void)
|
||||||
{
|
{
|
||||||
pr_debug("md: sizeof(mdp_super_t) = %d\n", (int)sizeof(mdp_super_t));
|
pr_debug("md: sizeof(mdp_super_t) = %d\n", (int)sizeof(mdp_super_t));
|
||||||
|
|
||||||
proc_create("mdstat", S_IRUGO, NULL, &md_seq_fops);
|
proc_create("mdstat", S_IRUGO, NULL, &mdstat_proc_ops);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __init md_init(void)
|
static int __init md_init(void)
|
||||||
|
|
|
@ -255,28 +255,28 @@ static int options_open(struct inode *inode, struct file *file)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* *INDENT-OFF* */
|
/* *INDENT-OFF* */
|
||||||
static const struct file_operations statistics_fops = {
|
static const struct proc_ops statistics_proc_ops = {
|
||||||
.open = statistics_open,
|
.proc_open = statistics_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.write = statistics_write,
|
.proc_write = statistics_write,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct file_operations mcs_statistics_fops = {
|
static const struct proc_ops mcs_statistics_proc_ops = {
|
||||||
.open = mcs_statistics_open,
|
.proc_open = mcs_statistics_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.write = mcs_statistics_write,
|
.proc_write = mcs_statistics_write,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct file_operations options_fops = {
|
static const struct proc_ops options_proc_ops = {
|
||||||
.open = options_open,
|
.proc_open = options_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.write = options_write,
|
.proc_write = options_write,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct proc_dir_entry *proc_gru __read_mostly;
|
static struct proc_dir_entry *proc_gru __read_mostly;
|
||||||
|
@ -286,11 +286,11 @@ int gru_proc_init(void)
|
||||||
proc_gru = proc_mkdir("sgi_uv/gru", NULL);
|
proc_gru = proc_mkdir("sgi_uv/gru", NULL);
|
||||||
if (!proc_gru)
|
if (!proc_gru)
|
||||||
return -1;
|
return -1;
|
||||||
if (!proc_create("statistics", 0644, proc_gru, &statistics_fops))
|
if (!proc_create("statistics", 0644, proc_gru, &statistics_proc_ops))
|
||||||
goto err;
|
goto err;
|
||||||
if (!proc_create("mcs_statistics", 0644, proc_gru, &mcs_statistics_fops))
|
if (!proc_create("mcs_statistics", 0644, proc_gru, &mcs_statistics_proc_ops))
|
||||||
goto err;
|
goto err;
|
||||||
if (!proc_create("debug_options", 0644, proc_gru, &options_fops))
|
if (!proc_create("debug_options", 0644, proc_gru, &options_proc_ops))
|
||||||
goto err;
|
goto err;
|
||||||
if (!proc_create_seq("cch_status", 0444, proc_gru, &cch_seq_ops))
|
if (!proc_create_seq("cch_status", 0444, proc_gru, &cch_seq_ops))
|
||||||
goto err;
|
goto err;
|
||||||
|
|
|
@ -4420,73 +4420,65 @@ static int proc_BSSList_open( struct inode *inode, struct file *file );
|
||||||
static int proc_config_open( struct inode *inode, struct file *file );
|
static int proc_config_open( struct inode *inode, struct file *file );
|
||||||
static int proc_wepkey_open( struct inode *inode, struct file *file );
|
static int proc_wepkey_open( struct inode *inode, struct file *file );
|
||||||
|
|
||||||
static const struct file_operations proc_statsdelta_ops = {
|
static const struct proc_ops proc_statsdelta_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_read = proc_read,
|
||||||
.read = proc_read,
|
.proc_open = proc_statsdelta_open,
|
||||||
.open = proc_statsdelta_open,
|
.proc_release = proc_close,
|
||||||
.release = proc_close,
|
.proc_lseek = default_llseek,
|
||||||
.llseek = default_llseek,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct file_operations proc_stats_ops = {
|
static const struct proc_ops proc_stats_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_read = proc_read,
|
||||||
.read = proc_read,
|
.proc_open = proc_stats_open,
|
||||||
.open = proc_stats_open,
|
.proc_release = proc_close,
|
||||||
.release = proc_close,
|
.proc_lseek = default_llseek,
|
||||||
.llseek = default_llseek,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct file_operations proc_status_ops = {
|
static const struct proc_ops proc_status_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_read = proc_read,
|
||||||
.read = proc_read,
|
.proc_open = proc_status_open,
|
||||||
.open = proc_status_open,
|
.proc_release = proc_close,
|
||||||
.release = proc_close,
|
.proc_lseek = default_llseek,
|
||||||
.llseek = default_llseek,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct file_operations proc_SSID_ops = {
|
static const struct proc_ops proc_SSID_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_read = proc_read,
|
||||||
.read = proc_read,
|
.proc_write = proc_write,
|
||||||
.write = proc_write,
|
.proc_open = proc_SSID_open,
|
||||||
.open = proc_SSID_open,
|
.proc_release = proc_close,
|
||||||
.release = proc_close,
|
.proc_lseek = default_llseek,
|
||||||
.llseek = default_llseek,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct file_operations proc_BSSList_ops = {
|
static const struct proc_ops proc_BSSList_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_read = proc_read,
|
||||||
.read = proc_read,
|
.proc_write = proc_write,
|
||||||
.write = proc_write,
|
.proc_open = proc_BSSList_open,
|
||||||
.open = proc_BSSList_open,
|
.proc_release = proc_close,
|
||||||
.release = proc_close,
|
.proc_lseek = default_llseek,
|
||||||
.llseek = default_llseek,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct file_operations proc_APList_ops = {
|
static const struct proc_ops proc_APList_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_read = proc_read,
|
||||||
.read = proc_read,
|
.proc_write = proc_write,
|
||||||
.write = proc_write,
|
.proc_open = proc_APList_open,
|
||||||
.open = proc_APList_open,
|
.proc_release = proc_close,
|
||||||
.release = proc_close,
|
.proc_lseek = default_llseek,
|
||||||
.llseek = default_llseek,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct file_operations proc_config_ops = {
|
static const struct proc_ops proc_config_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_read = proc_read,
|
||||||
.read = proc_read,
|
.proc_write = proc_write,
|
||||||
.write = proc_write,
|
.proc_open = proc_config_open,
|
||||||
.open = proc_config_open,
|
.proc_release = proc_close,
|
||||||
.release = proc_close,
|
.proc_lseek = default_llseek,
|
||||||
.llseek = default_llseek,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct file_operations proc_wepkey_ops = {
|
static const struct proc_ops proc_wepkey_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_read = proc_read,
|
||||||
.read = proc_read,
|
.proc_write = proc_write,
|
||||||
.write = proc_write,
|
.proc_open = proc_wepkey_open,
|
||||||
.open = proc_wepkey_open,
|
.proc_release = proc_close,
|
||||||
.release = proc_close,
|
.proc_lseek = default_llseek,
|
||||||
.llseek = default_llseek,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct proc_dir_entry *airo_entry;
|
static struct proc_dir_entry *airo_entry;
|
||||||
|
|
|
@ -240,13 +240,12 @@ static ssize_t debug_level_proc_write(struct file *file,
|
||||||
return strnlen(buf, len);
|
return strnlen(buf, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations debug_level_proc_fops = {
|
static const struct proc_ops debug_level_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = debug_level_proc_open,
|
||||||
.open = debug_level_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_write = debug_level_proc_write,
|
||||||
.write = debug_level_proc_write,
|
|
||||||
};
|
};
|
||||||
#endif /* CONFIG_LIBIPW_DEBUG */
|
#endif /* CONFIG_LIBIPW_DEBUG */
|
||||||
|
|
||||||
|
@ -263,7 +262,7 @@ static int __init libipw_init(void)
|
||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
e = proc_create("debug_level", 0644, libipw_proc,
|
e = proc_create("debug_level", 0644, libipw_proc,
|
||||||
&debug_level_proc_fops);
|
&debug_level_proc_ops);
|
||||||
if (!e) {
|
if (!e) {
|
||||||
remove_proc_entry(DRV_PROCNAME, init_net.proc_net);
|
remove_proc_entry(DRV_PROCNAME, init_net.proc_net);
|
||||||
libipw_proc = NULL;
|
libipw_proc = NULL;
|
||||||
|
|
|
@ -126,7 +126,7 @@ static void prism2_check_sta_fw_version(local_info_t *local);
|
||||||
|
|
||||||
#ifdef PRISM2_DOWNLOAD_SUPPORT
|
#ifdef PRISM2_DOWNLOAD_SUPPORT
|
||||||
/* hostap_download.c */
|
/* hostap_download.c */
|
||||||
static const struct file_operations prism2_download_aux_dump_proc_fops;
|
static const struct proc_ops prism2_download_aux_dump_proc_ops;
|
||||||
static u8 * prism2_read_pda(struct net_device *dev);
|
static u8 * prism2_read_pda(struct net_device *dev);
|
||||||
static int prism2_download(local_info_t *local,
|
static int prism2_download(local_info_t *local,
|
||||||
struct prism2_download_param *param);
|
struct prism2_download_param *param);
|
||||||
|
@ -3094,7 +3094,7 @@ prism2_init_local_data(struct prism2_helper_functions *funcs, int card_idx,
|
||||||
local->func->reset_port = prism2_reset_port;
|
local->func->reset_port = prism2_reset_port;
|
||||||
local->func->schedule_reset = prism2_schedule_reset;
|
local->func->schedule_reset = prism2_schedule_reset;
|
||||||
#ifdef PRISM2_DOWNLOAD_SUPPORT
|
#ifdef PRISM2_DOWNLOAD_SUPPORT
|
||||||
local->func->read_aux_fops = &prism2_download_aux_dump_proc_fops;
|
local->func->read_aux_proc_ops = &prism2_download_aux_dump_proc_ops;
|
||||||
local->func->download = prism2_download;
|
local->func->download = prism2_download;
|
||||||
#endif /* PRISM2_DOWNLOAD_SUPPORT */
|
#endif /* PRISM2_DOWNLOAD_SUPPORT */
|
||||||
local->func->tx = prism2_tx_80211;
|
local->func->tx = prism2_tx_80211;
|
||||||
|
|
|
@ -211,9 +211,9 @@ static ssize_t prism2_pda_proc_read(struct file *file, char __user *buf,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations prism2_pda_proc_fops = {
|
static const struct proc_ops prism2_pda_proc_ops = {
|
||||||
.read = prism2_pda_proc_read,
|
.proc_read = prism2_pda_proc_read,
|
||||||
.llseek = generic_file_llseek,
|
.proc_lseek = generic_file_llseek,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -223,8 +223,8 @@ static ssize_t prism2_aux_dump_proc_no_read(struct file *file, char __user *buf,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations prism2_aux_dump_proc_fops = {
|
static const struct proc_ops prism2_aux_dump_proc_ops = {
|
||||||
.read = prism2_aux_dump_proc_no_read,
|
.proc_read = prism2_aux_dump_proc_no_read,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -379,9 +379,9 @@ void hostap_init_proc(local_info_t *local)
|
||||||
proc_create_seq_data("wds", 0, local->proc,
|
proc_create_seq_data("wds", 0, local->proc,
|
||||||
&prism2_wds_proc_seqops, local);
|
&prism2_wds_proc_seqops, local);
|
||||||
proc_create_data("pda", 0, local->proc,
|
proc_create_data("pda", 0, local->proc,
|
||||||
&prism2_pda_proc_fops, local);
|
&prism2_pda_proc_ops, local);
|
||||||
proc_create_data("aux_dump", 0, local->proc,
|
proc_create_data("aux_dump", 0, local->proc,
|
||||||
local->func->read_aux_fops ?: &prism2_aux_dump_proc_fops,
|
local->func->read_aux_proc_ops ?: &prism2_aux_dump_proc_ops,
|
||||||
local);
|
local);
|
||||||
proc_create_seq_data("bss_list", 0, local->proc,
|
proc_create_seq_data("bss_list", 0, local->proc,
|
||||||
&prism2_bss_list_proc_seqops, local);
|
&prism2_bss_list_proc_seqops, local);
|
||||||
|
|
|
@ -599,7 +599,7 @@ struct prism2_helper_functions {
|
||||||
struct prism2_download_param *param);
|
struct prism2_download_param *param);
|
||||||
int (*tx)(struct sk_buff *skb, struct net_device *dev);
|
int (*tx)(struct sk_buff *skb, struct net_device *dev);
|
||||||
int (*set_tim)(struct net_device *dev, int aid, int set);
|
int (*set_tim)(struct net_device *dev, int aid, int set);
|
||||||
const struct file_operations *read_aux_fops;
|
const struct proc_ops *read_aux_proc_ops;
|
||||||
|
|
||||||
int need_tx_headroom; /* number of bytes of headroom needed before
|
int need_tx_headroom; /* number of bytes of headroom needed before
|
||||||
* IEEE 802.11 header */
|
* IEEE 802.11 header */
|
||||||
|
|
|
@ -2717,10 +2717,9 @@ static ssize_t ray_cs_essid_proc_write(struct file *file,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations ray_cs_essid_proc_fops = {
|
static const struct proc_ops ray_cs_essid_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_write = ray_cs_essid_proc_write,
|
||||||
.write = ray_cs_essid_proc_write,
|
.proc_lseek = noop_llseek,
|
||||||
.llseek = noop_llseek,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static ssize_t int_proc_write(struct file *file, const char __user *buffer,
|
static ssize_t int_proc_write(struct file *file, const char __user *buffer,
|
||||||
|
@ -2751,10 +2750,9 @@ static ssize_t int_proc_write(struct file *file, const char __user *buffer,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations int_proc_fops = {
|
static const struct proc_ops int_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_write = int_proc_write,
|
||||||
.write = int_proc_write,
|
.proc_lseek = noop_llseek,
|
||||||
.llseek = noop_llseek,
|
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -2790,10 +2788,10 @@ static int __init init_ray_cs(void)
|
||||||
proc_mkdir("driver/ray_cs", NULL);
|
proc_mkdir("driver/ray_cs", NULL);
|
||||||
|
|
||||||
proc_create_single("driver/ray_cs/ray_cs", 0, NULL, ray_cs_proc_show);
|
proc_create_single("driver/ray_cs/ray_cs", 0, NULL, ray_cs_proc_show);
|
||||||
proc_create("driver/ray_cs/essid", 0200, NULL, &ray_cs_essid_proc_fops);
|
proc_create("driver/ray_cs/essid", 0200, NULL, &ray_cs_essid_proc_ops);
|
||||||
proc_create_data("driver/ray_cs/net_type", 0200, NULL, &int_proc_fops,
|
proc_create_data("driver/ray_cs/net_type", 0200, NULL, &int_proc_ops,
|
||||||
&net_type);
|
&net_type);
|
||||||
proc_create_data("driver/ray_cs/translate", 0200, NULL, &int_proc_fops,
|
proc_create_data("driver/ray_cs/translate", 0200, NULL, &int_proc_ops,
|
||||||
&translate);
|
&translate);
|
||||||
#endif
|
#endif
|
||||||
if (translate != 0)
|
if (translate != 0)
|
||||||
|
|
|
@ -230,13 +230,12 @@ static ssize_t led_proc_write(struct file *file, const char __user *buf,
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations led_proc_fops = {
|
static const struct proc_ops led_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = led_proc_open,
|
||||||
.open = led_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_write = led_proc_write,
|
||||||
.write = led_proc_write,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init led_create_procfs(void)
|
static int __init led_create_procfs(void)
|
||||||
|
@ -252,14 +251,14 @@ static int __init led_create_procfs(void)
|
||||||
if (!lcd_no_led_support)
|
if (!lcd_no_led_support)
|
||||||
{
|
{
|
||||||
ent = proc_create_data("led", S_IRUGO|S_IWUSR, proc_pdc_root,
|
ent = proc_create_data("led", S_IRUGO|S_IWUSR, proc_pdc_root,
|
||||||
&led_proc_fops, (void *)LED_NOLCD); /* LED */
|
&led_proc_ops, (void *)LED_NOLCD); /* LED */
|
||||||
if (!ent) return -1;
|
if (!ent) return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (led_type == LED_HASLCD)
|
if (led_type == LED_HASLCD)
|
||||||
{
|
{
|
||||||
ent = proc_create_data("lcd", S_IRUGO|S_IWUSR, proc_pdc_root,
|
ent = proc_create_data("lcd", S_IRUGO|S_IWUSR, proc_pdc_root,
|
||||||
&led_proc_fops, (void *)LED_HASLCD); /* LCD */
|
&led_proc_ops, (void *)LED_HASLCD); /* LCD */
|
||||||
if (!ent) return -1;
|
if (!ent) return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -306,19 +306,20 @@ static int proc_bus_pci_release(struct inode *inode, struct file *file)
|
||||||
}
|
}
|
||||||
#endif /* HAVE_PCI_MMAP */
|
#endif /* HAVE_PCI_MMAP */
|
||||||
|
|
||||||
static const struct file_operations proc_bus_pci_operations = {
|
static const struct proc_ops proc_bus_pci_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_lseek = proc_bus_pci_lseek,
|
||||||
.llseek = proc_bus_pci_lseek,
|
.proc_read = proc_bus_pci_read,
|
||||||
.read = proc_bus_pci_read,
|
.proc_write = proc_bus_pci_write,
|
||||||
.write = proc_bus_pci_write,
|
.proc_ioctl = proc_bus_pci_ioctl,
|
||||||
.unlocked_ioctl = proc_bus_pci_ioctl,
|
#ifdef CONFIG_COMPAT
|
||||||
.compat_ioctl = proc_bus_pci_ioctl,
|
.proc_compat_ioctl = proc_bus_pci_ioctl,
|
||||||
|
#endif
|
||||||
#ifdef HAVE_PCI_MMAP
|
#ifdef HAVE_PCI_MMAP
|
||||||
.open = proc_bus_pci_open,
|
.proc_open = proc_bus_pci_open,
|
||||||
.release = proc_bus_pci_release,
|
.proc_release = proc_bus_pci_release,
|
||||||
.mmap = proc_bus_pci_mmap,
|
.proc_mmap = proc_bus_pci_mmap,
|
||||||
#ifdef HAVE_ARCH_PCI_GET_UNMAPPED_AREA
|
#ifdef HAVE_ARCH_PCI_GET_UNMAPPED_AREA
|
||||||
.get_unmapped_area = get_pci_unmapped_area,
|
.proc_get_unmapped_area = get_pci_unmapped_area,
|
||||||
#endif /* HAVE_ARCH_PCI_GET_UNMAPPED_AREA */
|
#endif /* HAVE_ARCH_PCI_GET_UNMAPPED_AREA */
|
||||||
#endif /* HAVE_PCI_MMAP */
|
#endif /* HAVE_PCI_MMAP */
|
||||||
};
|
};
|
||||||
|
@ -424,7 +425,7 @@ int pci_proc_attach_device(struct pci_dev *dev)
|
||||||
|
|
||||||
sprintf(name, "%02x.%x", PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn));
|
sprintf(name, "%02x.%x", PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn));
|
||||||
e = proc_create_data(name, S_IFREG | S_IRUGO | S_IWUSR, bus->procdir,
|
e = proc_create_data(name, S_IFREG | S_IRUGO | S_IWUSR, bus->procdir,
|
||||||
&proc_bus_pci_operations, dev);
|
&proc_bus_pci_ops, dev);
|
||||||
if (!e)
|
if (!e)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
proc_set_size(e, dev->cfg_size);
|
proc_set_size(e, dev->cfg_size);
|
||||||
|
|
|
@ -907,13 +907,12 @@ static ssize_t dispatch_proc_write(struct file *file,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations dispatch_proc_fops = {
|
static const struct proc_ops dispatch_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = dispatch_proc_open,
|
||||||
.open = dispatch_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_write = dispatch_proc_write,
|
||||||
.write = dispatch_proc_write,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static char *next_cmd(char **cmds)
|
static char *next_cmd(char **cmds)
|
||||||
|
@ -9984,7 +9983,7 @@ static int __init ibm_init(struct ibm_init_struct *iibm)
|
||||||
if (ibm->write)
|
if (ibm->write)
|
||||||
mode |= S_IWUSR;
|
mode |= S_IWUSR;
|
||||||
entry = proc_create_data(ibm->name, mode, proc_dir,
|
entry = proc_create_data(ibm->name, mode, proc_dir,
|
||||||
&dispatch_proc_fops, ibm);
|
&dispatch_proc_ops, ibm);
|
||||||
if (!entry) {
|
if (!entry) {
|
||||||
pr_err("unable to create proc entry %s\n", ibm->name);
|
pr_err("unable to create proc entry %s\n", ibm->name);
|
||||||
ret = -ENODEV;
|
ret = -ENODEV;
|
||||||
|
|
|
@ -1432,13 +1432,12 @@ static ssize_t lcd_proc_write(struct file *file, const char __user *buf,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations lcd_proc_fops = {
|
static const struct proc_ops lcd_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = lcd_proc_open,
|
||||||
.open = lcd_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_write = lcd_proc_write,
|
||||||
.write = lcd_proc_write,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Video-Out */
|
/* Video-Out */
|
||||||
|
@ -1539,13 +1538,12 @@ static ssize_t video_proc_write(struct file *file, const char __user *buf,
|
||||||
return ret ? -EIO : count;
|
return ret ? -EIO : count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations video_proc_fops = {
|
static const struct proc_ops video_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = video_proc_open,
|
||||||
.open = video_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_write = video_proc_write,
|
||||||
.write = video_proc_write,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Fan status */
|
/* Fan status */
|
||||||
|
@ -1617,13 +1615,12 @@ static ssize_t fan_proc_write(struct file *file, const char __user *buf,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations fan_proc_fops = {
|
static const struct proc_ops fan_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = fan_proc_open,
|
||||||
.open = fan_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_write = fan_proc_write,
|
||||||
.write = fan_proc_write,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int keys_proc_show(struct seq_file *m, void *v)
|
static int keys_proc_show(struct seq_file *m, void *v)
|
||||||
|
@ -1662,13 +1659,12 @@ static ssize_t keys_proc_write(struct file *file, const char __user *buf,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations keys_proc_fops = {
|
static const struct proc_ops keys_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = keys_proc_open,
|
||||||
.open = keys_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_write = keys_proc_write,
|
||||||
.write = keys_proc_write,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __maybe_unused version_proc_show(struct seq_file *m, void *v)
|
static int __maybe_unused version_proc_show(struct seq_file *m, void *v)
|
||||||
|
@ -1688,16 +1684,16 @@ static void create_toshiba_proc_entries(struct toshiba_acpi_dev *dev)
|
||||||
{
|
{
|
||||||
if (dev->backlight_dev)
|
if (dev->backlight_dev)
|
||||||
proc_create_data("lcd", S_IRUGO | S_IWUSR, toshiba_proc_dir,
|
proc_create_data("lcd", S_IRUGO | S_IWUSR, toshiba_proc_dir,
|
||||||
&lcd_proc_fops, dev);
|
&lcd_proc_ops, dev);
|
||||||
if (dev->video_supported)
|
if (dev->video_supported)
|
||||||
proc_create_data("video", S_IRUGO | S_IWUSR, toshiba_proc_dir,
|
proc_create_data("video", S_IRUGO | S_IWUSR, toshiba_proc_dir,
|
||||||
&video_proc_fops, dev);
|
&video_proc_ops, dev);
|
||||||
if (dev->fan_supported)
|
if (dev->fan_supported)
|
||||||
proc_create_data("fan", S_IRUGO | S_IWUSR, toshiba_proc_dir,
|
proc_create_data("fan", S_IRUGO | S_IWUSR, toshiba_proc_dir,
|
||||||
&fan_proc_fops, dev);
|
&fan_proc_ops, dev);
|
||||||
if (dev->hotkey_dev)
|
if (dev->hotkey_dev)
|
||||||
proc_create_data("keys", S_IRUGO | S_IWUSR, toshiba_proc_dir,
|
proc_create_data("keys", S_IRUGO | S_IWUSR, toshiba_proc_dir,
|
||||||
&keys_proc_fops, dev);
|
&keys_proc_ops, dev);
|
||||||
proc_create_single_data("version", S_IRUGO, toshiba_proc_dir,
|
proc_create_single_data("version", S_IRUGO, toshiba_proc_dir,
|
||||||
version_proc_show, dev);
|
version_proc_show, dev);
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,10 +49,9 @@ static ssize_t isapnp_proc_bus_read(struct file *file, char __user * buf,
|
||||||
return nbytes;
|
return nbytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations isapnp_proc_bus_file_operations = {
|
static const struct proc_ops isapnp_proc_bus_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_lseek = isapnp_proc_bus_lseek,
|
||||||
.llseek = isapnp_proc_bus_lseek,
|
.proc_read = isapnp_proc_bus_read,
|
||||||
.read = isapnp_proc_bus_read,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int isapnp_proc_attach_device(struct pnp_dev *dev)
|
static int isapnp_proc_attach_device(struct pnp_dev *dev)
|
||||||
|
@ -69,7 +68,7 @@ static int isapnp_proc_attach_device(struct pnp_dev *dev)
|
||||||
}
|
}
|
||||||
sprintf(name, "%02x", dev->number);
|
sprintf(name, "%02x", dev->number);
|
||||||
e = dev->procent = proc_create_data(name, S_IFREG | S_IRUGO, de,
|
e = dev->procent = proc_create_data(name, S_IFREG | S_IRUGO, de,
|
||||||
&isapnp_proc_bus_file_operations, dev);
|
&isapnp_proc_bus_proc_ops, dev);
|
||||||
if (!e)
|
if (!e)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
proc_set_size(e, 256);
|
proc_set_size(e, 256);
|
||||||
|
|
|
@ -210,13 +210,12 @@ static ssize_t pnpbios_proc_write(struct file *file, const char __user *buf,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations pnpbios_proc_fops = {
|
static const struct proc_ops pnpbios_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = pnpbios_proc_open,
|
||||||
.open = pnpbios_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_write = pnpbios_proc_write,
|
||||||
.write = pnpbios_proc_write,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
int pnpbios_interface_attach_device(struct pnp_bios_node *node)
|
int pnpbios_interface_attach_device(struct pnp_bios_node *node)
|
||||||
|
@ -228,13 +227,13 @@ int pnpbios_interface_attach_device(struct pnp_bios_node *node)
|
||||||
if (!proc_pnp)
|
if (!proc_pnp)
|
||||||
return -EIO;
|
return -EIO;
|
||||||
if (!pnpbios_dont_use_current_config) {
|
if (!pnpbios_dont_use_current_config) {
|
||||||
proc_create_data(name, 0644, proc_pnp, &pnpbios_proc_fops,
|
proc_create_data(name, 0644, proc_pnp, &pnpbios_proc_ops,
|
||||||
(void *)(long)(node->handle));
|
(void *)(long)(node->handle));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!proc_pnp_boot)
|
if (!proc_pnp_boot)
|
||||||
return -EIO;
|
return -EIO;
|
||||||
if (proc_create_data(name, 0644, proc_pnp_boot, &pnpbios_proc_fops,
|
if (proc_create_data(name, 0644, proc_pnp_boot, &pnpbios_proc_ops,
|
||||||
(void *)(long)(node->handle + 0x100)))
|
(void *)(long)(node->handle + 0x100)))
|
||||||
return 0;
|
return 0;
|
||||||
return -EIO;
|
return -EIO;
|
||||||
|
|
|
@ -320,13 +320,12 @@ static ssize_t dasd_stats_proc_write(struct file *file,
|
||||||
#endif /* CONFIG_DASD_PROFILE */
|
#endif /* CONFIG_DASD_PROFILE */
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations dasd_stats_proc_fops = {
|
static const struct proc_ops dasd_stats_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = dasd_stats_proc_open,
|
||||||
.open = dasd_stats_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_write = dasd_stats_proc_write,
|
||||||
.write = dasd_stats_proc_write,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -347,7 +346,7 @@ dasd_proc_init(void)
|
||||||
dasd_statistics_entry = proc_create("statistics",
|
dasd_statistics_entry = proc_create("statistics",
|
||||||
S_IFREG | S_IRUGO | S_IWUSR,
|
S_IFREG | S_IRUGO | S_IWUSR,
|
||||||
dasd_proc_root_entry,
|
dasd_proc_root_entry,
|
||||||
&dasd_stats_proc_fops);
|
&dasd_stats_proc_ops);
|
||||||
if (!dasd_statistics_entry)
|
if (!dasd_statistics_entry)
|
||||||
goto out_nostatistics;
|
goto out_nostatistics;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -398,12 +398,12 @@ cio_ignore_proc_open(struct inode *inode, struct file *file)
|
||||||
sizeof(struct ccwdev_iter));
|
sizeof(struct ccwdev_iter));
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations cio_ignore_proc_fops = {
|
static const struct proc_ops cio_ignore_proc_ops = {
|
||||||
.open = cio_ignore_proc_open,
|
.proc_open = cio_ignore_proc_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = seq_release_private,
|
.proc_release = seq_release_private,
|
||||||
.write = cio_ignore_write,
|
.proc_write = cio_ignore_write,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -412,7 +412,7 @@ cio_ignore_proc_init (void)
|
||||||
struct proc_dir_entry *entry;
|
struct proc_dir_entry *entry;
|
||||||
|
|
||||||
entry = proc_create("cio_ignore", S_IFREG | S_IRUGO | S_IWUSR, NULL,
|
entry = proc_create("cio_ignore", S_IFREG | S_IRUGO | S_IWUSR, NULL,
|
||||||
&cio_ignore_proc_fops);
|
&cio_ignore_proc_ops);
|
||||||
if (!entry)
|
if (!entry)
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -1372,18 +1372,17 @@ static ssize_t cio_settle_write(struct file *file, const char __user *buf,
|
||||||
return ret ? ret : count;
|
return ret ? ret : count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations cio_settle_proc_fops = {
|
static const struct proc_ops cio_settle_proc_ops = {
|
||||||
.open = nonseekable_open,
|
.proc_open = nonseekable_open,
|
||||||
.write = cio_settle_write,
|
.proc_write = cio_settle_write,
|
||||||
.llseek = no_llseek,
|
.proc_lseek = no_llseek,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init cio_settle_init(void)
|
static int __init cio_settle_init(void)
|
||||||
{
|
{
|
||||||
struct proc_dir_entry *entry;
|
struct proc_dir_entry *entry;
|
||||||
|
|
||||||
entry = proc_create("cio_settle", S_IWUSR, NULL,
|
entry = proc_create("cio_settle", S_IWUSR, NULL, &cio_settle_proc_ops);
|
||||||
&cio_settle_proc_fops);
|
|
||||||
if (!entry)
|
if (!entry)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -617,6 +617,13 @@ static const struct file_operations esas2r_proc_fops = {
|
||||||
.unlocked_ioctl = esas2r_proc_ioctl,
|
.unlocked_ioctl = esas2r_proc_ioctl,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const struct proc_ops esas2r_proc_ops = {
|
||||||
|
.proc_ioctl = esas2r_proc_ioctl,
|
||||||
|
#ifdef CONFIG_COMPAT
|
||||||
|
.proc_compat_ioctl = compat_ptr_ioctl,
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
static struct Scsi_Host *esas2r_proc_host;
|
static struct Scsi_Host *esas2r_proc_host;
|
||||||
static int esas2r_proc_major;
|
static int esas2r_proc_major;
|
||||||
|
|
||||||
|
@ -728,7 +735,7 @@ const char *esas2r_info(struct Scsi_Host *sh)
|
||||||
|
|
||||||
pde = proc_create(ATTONODE_NAME, 0,
|
pde = proc_create(ATTONODE_NAME, 0,
|
||||||
sh->hostt->proc_dir,
|
sh->hostt->proc_dir,
|
||||||
&esas2r_proc_fops);
|
&esas2r_proc_ops);
|
||||||
|
|
||||||
if (!pde) {
|
if (!pde) {
|
||||||
esas2r_log_dev(ESAS2R_LOG_WARN,
|
esas2r_log_dev(ESAS2R_LOG_WARN,
|
||||||
|
|
|
@ -736,13 +736,12 @@ static ssize_t proc_scsi_devinfo_write(struct file *file,
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations scsi_devinfo_proc_fops = {
|
static const struct proc_ops scsi_devinfo_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = proc_scsi_devinfo_open,
|
||||||
.open = proc_scsi_devinfo_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_write = proc_scsi_devinfo_write,
|
||||||
.write = proc_scsi_devinfo_write,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = seq_release,
|
||||||
.release = seq_release,
|
|
||||||
};
|
};
|
||||||
#endif /* CONFIG_SCSI_PROC_FS */
|
#endif /* CONFIG_SCSI_PROC_FS */
|
||||||
|
|
||||||
|
@ -867,7 +866,7 @@ int __init scsi_init_devinfo(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_SCSI_PROC_FS
|
#ifdef CONFIG_SCSI_PROC_FS
|
||||||
p = proc_create("scsi/device_info", 0, NULL, &scsi_devinfo_proc_fops);
|
p = proc_create("scsi/device_info", 0, NULL, &scsi_devinfo_proc_ops);
|
||||||
if (!p) {
|
if (!p) {
|
||||||
error = -ENOMEM;
|
error = -ENOMEM;
|
||||||
goto out;
|
goto out;
|
||||||
|
|
|
@ -83,12 +83,12 @@ static int proc_scsi_host_open(struct inode *inode, struct file *file)
|
||||||
4 * PAGE_SIZE);
|
4 * PAGE_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations proc_scsi_fops = {
|
static const struct proc_ops proc_scsi_ops = {
|
||||||
.open = proc_scsi_host_open,
|
.proc_open = proc_scsi_host_open,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.write = proc_scsi_host_write
|
.proc_write = proc_scsi_host_write
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -146,7 +146,7 @@ void scsi_proc_host_add(struct Scsi_Host *shost)
|
||||||
|
|
||||||
sprintf(name,"%d", shost->host_no);
|
sprintf(name,"%d", shost->host_no);
|
||||||
p = proc_create_data(name, S_IRUGO | S_IWUSR,
|
p = proc_create_data(name, S_IRUGO | S_IWUSR,
|
||||||
sht->proc_dir, &proc_scsi_fops, shost);
|
sht->proc_dir, &proc_scsi_ops, shost);
|
||||||
if (!p)
|
if (!p)
|
||||||
printk(KERN_ERR "%s: Failed to register host %d in"
|
printk(KERN_ERR "%s: Failed to register host %d in"
|
||||||
"%s\n", __func__, shost->host_no,
|
"%s\n", __func__, shost->host_no,
|
||||||
|
@ -436,13 +436,12 @@ static int proc_scsi_open(struct inode *inode, struct file *file)
|
||||||
return seq_open(file, &scsi_seq_ops);
|
return seq_open(file, &scsi_seq_ops);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations proc_scsi_operations = {
|
static const struct proc_ops scsi_scsi_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = proc_scsi_open,
|
||||||
.open = proc_scsi_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_write = proc_scsi_write,
|
||||||
.write = proc_scsi_write,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = seq_release,
|
||||||
.release = seq_release,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -456,7 +455,7 @@ int __init scsi_init_procfs(void)
|
||||||
if (!proc_scsi)
|
if (!proc_scsi)
|
||||||
goto err1;
|
goto err1;
|
||||||
|
|
||||||
pde = proc_create("scsi/scsi", 0, NULL, &proc_scsi_operations);
|
pde = proc_create("scsi/scsi", 0, NULL, &scsi_scsi_proc_ops);
|
||||||
if (!pde)
|
if (!pde)
|
||||||
goto err2;
|
goto err2;
|
||||||
|
|
||||||
|
|
|
@ -2322,25 +2322,23 @@ static int sg_proc_seq_show_int(struct seq_file *s, void *v);
|
||||||
static int sg_proc_single_open_adio(struct inode *inode, struct file *file);
|
static int sg_proc_single_open_adio(struct inode *inode, struct file *file);
|
||||||
static ssize_t sg_proc_write_adio(struct file *filp, const char __user *buffer,
|
static ssize_t sg_proc_write_adio(struct file *filp, const char __user *buffer,
|
||||||
size_t count, loff_t *off);
|
size_t count, loff_t *off);
|
||||||
static const struct file_operations adio_fops = {
|
static const struct proc_ops adio_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = sg_proc_single_open_adio,
|
||||||
.open = sg_proc_single_open_adio,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_write = sg_proc_write_adio,
|
||||||
.write = sg_proc_write_adio,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int sg_proc_single_open_dressz(struct inode *inode, struct file *file);
|
static int sg_proc_single_open_dressz(struct inode *inode, struct file *file);
|
||||||
static ssize_t sg_proc_write_dressz(struct file *filp,
|
static ssize_t sg_proc_write_dressz(struct file *filp,
|
||||||
const char __user *buffer, size_t count, loff_t *off);
|
const char __user *buffer, size_t count, loff_t *off);
|
||||||
static const struct file_operations dressz_fops = {
|
static const struct proc_ops dressz_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = sg_proc_single_open_dressz,
|
||||||
.open = sg_proc_single_open_dressz,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_write = sg_proc_write_dressz,
|
||||||
.write = sg_proc_write_dressz,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int sg_proc_seq_show_version(struct seq_file *s, void *v);
|
static int sg_proc_seq_show_version(struct seq_file *s, void *v);
|
||||||
|
@ -2381,9 +2379,9 @@ sg_proc_init(void)
|
||||||
if (!p)
|
if (!p)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
proc_create("allow_dio", S_IRUGO | S_IWUSR, p, &adio_fops);
|
proc_create("allow_dio", S_IRUGO | S_IWUSR, p, &adio_proc_ops);
|
||||||
proc_create_seq("debug", S_IRUGO, p, &debug_seq_ops);
|
proc_create_seq("debug", S_IRUGO, p, &debug_seq_ops);
|
||||||
proc_create("def_reserved_size", S_IRUGO | S_IWUSR, p, &dressz_fops);
|
proc_create("def_reserved_size", S_IRUGO | S_IWUSR, p, &dressz_proc_ops);
|
||||||
proc_create_single("device_hdr", S_IRUGO, p, sg_proc_seq_show_devhdr);
|
proc_create_single("device_hdr", S_IRUGO, p, sg_proc_seq_show_devhdr);
|
||||||
proc_create_seq("devices", S_IRUGO, p, &dev_seq_ops);
|
proc_create_seq("devices", S_IRUGO, p, &dev_seq_ops);
|
||||||
proc_create_seq("device_strs", S_IRUGO, p, &devstrs_seq_ops);
|
proc_create_seq("device_strs", S_IRUGO, p, &devstrs_seq_ops);
|
||||||
|
|
|
@ -264,12 +264,12 @@ static int open_debug_level(struct inode *inode, struct file *file)
|
||||||
return single_open(file, show_debug_level, NULL);
|
return single_open(file, show_debug_level, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations fops = {
|
static const struct proc_ops debug_level_proc_ops = {
|
||||||
.open = open_debug_level,
|
.proc_open = open_debug_level,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.write = write_debug_level,
|
.proc_write = write_debug_level,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
int __init ieee80211_debug_init(void)
|
int __init ieee80211_debug_init(void)
|
||||||
|
@ -284,7 +284,7 @@ int __init ieee80211_debug_init(void)
|
||||||
" proc directory\n");
|
" proc directory\n");
|
||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
e = proc_create("debug_level", 0644, ieee80211_proc, &fops);
|
e = proc_create("debug_level", 0644, ieee80211_proc, &debug_level_proc_ops);
|
||||||
if (!e) {
|
if (!e) {
|
||||||
remove_proc_entry(DRV_NAME, init_net.proc_net);
|
remove_proc_entry(DRV_NAME, init_net.proc_net);
|
||||||
ieee80211_proc = NULL;
|
ieee80211_proc = NULL;
|
||||||
|
|
|
@ -1101,15 +1101,15 @@ static ssize_t write_sysrq_trigger(struct file *file, const char __user *buf,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations proc_sysrq_trigger_operations = {
|
static const struct proc_ops sysrq_trigger_proc_ops = {
|
||||||
.write = write_sysrq_trigger,
|
.proc_write = write_sysrq_trigger,
|
||||||
.llseek = noop_llseek,
|
.proc_lseek = noop_llseek,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void sysrq_init_procfs(void)
|
static void sysrq_init_procfs(void)
|
||||||
{
|
{
|
||||||
if (!proc_create("sysrq-trigger", S_IWUSR, NULL,
|
if (!proc_create("sysrq-trigger", S_IWUSR, NULL,
|
||||||
&proc_sysrq_trigger_operations))
|
&sysrq_trigger_proc_ops))
|
||||||
pr_err("Failed to register proc interface\n");
|
pr_err("Failed to register proc interface\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -72,7 +72,7 @@ static rndis_resp_t *rndis_add_response(struct rndis_params *params,
|
||||||
|
|
||||||
#ifdef CONFIG_USB_GADGET_DEBUG_FILES
|
#ifdef CONFIG_USB_GADGET_DEBUG_FILES
|
||||||
|
|
||||||
static const struct file_operations rndis_proc_fops;
|
static const struct proc_ops rndis_proc_ops;
|
||||||
|
|
||||||
#endif /* CONFIG_USB_GADGET_DEBUG_FILES */
|
#endif /* CONFIG_USB_GADGET_DEBUG_FILES */
|
||||||
|
|
||||||
|
@ -902,7 +902,7 @@ struct rndis_params *rndis_register(void (*resp_avail)(void *v), void *v)
|
||||||
|
|
||||||
sprintf(name, NAME_TEMPLATE, i);
|
sprintf(name, NAME_TEMPLATE, i);
|
||||||
proc_entry = proc_create_data(name, 0660, NULL,
|
proc_entry = proc_create_data(name, 0660, NULL,
|
||||||
&rndis_proc_fops, params);
|
&rndis_proc_ops, params);
|
||||||
if (!proc_entry) {
|
if (!proc_entry) {
|
||||||
kfree(params);
|
kfree(params);
|
||||||
rndis_put_nr(i);
|
rndis_put_nr(i);
|
||||||
|
@ -1164,13 +1164,12 @@ static int rndis_proc_open(struct inode *inode, struct file *file)
|
||||||
return single_open(file, rndis_proc_show, PDE_DATA(inode));
|
return single_open(file, rndis_proc_show, PDE_DATA(inode));
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations rndis_proc_fops = {
|
static const struct proc_ops rndis_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = rndis_proc_open,
|
||||||
.open = rndis_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_write = rndis_proc_write,
|
||||||
.write = rndis_proc_write,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#define NAME_TEMPLATE "driver/rndis-%03d"
|
#define NAME_TEMPLATE "driver/rndis-%03d"
|
||||||
|
|
|
@ -1173,13 +1173,12 @@ static ssize_t viafb_dvp0_proc_write(struct file *file,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations viafb_dvp0_proc_fops = {
|
static const struct proc_ops viafb_dvp0_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = viafb_dvp0_proc_open,
|
||||||
.open = viafb_dvp0_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_write = viafb_dvp0_proc_write,
|
||||||
.write = viafb_dvp0_proc_write,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int viafb_dvp1_proc_show(struct seq_file *m, void *v)
|
static int viafb_dvp1_proc_show(struct seq_file *m, void *v)
|
||||||
|
@ -1238,13 +1237,12 @@ static ssize_t viafb_dvp1_proc_write(struct file *file,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations viafb_dvp1_proc_fops = {
|
static const struct proc_ops viafb_dvp1_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = viafb_dvp1_proc_open,
|
||||||
.open = viafb_dvp1_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_write = viafb_dvp1_proc_write,
|
||||||
.write = viafb_dvp1_proc_write,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int viafb_dfph_proc_show(struct seq_file *m, void *v)
|
static int viafb_dfph_proc_show(struct seq_file *m, void *v)
|
||||||
|
@ -1273,13 +1271,12 @@ static ssize_t viafb_dfph_proc_write(struct file *file,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations viafb_dfph_proc_fops = {
|
static const struct proc_ops viafb_dfph_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = viafb_dfph_proc_open,
|
||||||
.open = viafb_dfph_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_write = viafb_dfph_proc_write,
|
||||||
.write = viafb_dfph_proc_write,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int viafb_dfpl_proc_show(struct seq_file *m, void *v)
|
static int viafb_dfpl_proc_show(struct seq_file *m, void *v)
|
||||||
|
@ -1308,13 +1305,12 @@ static ssize_t viafb_dfpl_proc_write(struct file *file,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations viafb_dfpl_proc_fops = {
|
static const struct proc_ops viafb_dfpl_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = viafb_dfpl_proc_open,
|
||||||
.open = viafb_dfpl_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_write = viafb_dfpl_proc_write,
|
||||||
.write = viafb_dfpl_proc_write,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int viafb_vt1636_proc_show(struct seq_file *m, void *v)
|
static int viafb_vt1636_proc_show(struct seq_file *m, void *v)
|
||||||
|
@ -1444,13 +1440,12 @@ static ssize_t viafb_vt1636_proc_write(struct file *file,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations viafb_vt1636_proc_fops = {
|
static const struct proc_ops viafb_vt1636_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = viafb_vt1636_proc_open,
|
||||||
.open = viafb_vt1636_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_write = viafb_vt1636_proc_write,
|
||||||
.write = viafb_vt1636_proc_write,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* CONFIG_FB_VIA_DIRECT_PROCFS */
|
#endif /* CONFIG_FB_VIA_DIRECT_PROCFS */
|
||||||
|
@ -1522,13 +1517,12 @@ static ssize_t viafb_iga1_odev_proc_write(struct file *file,
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations viafb_iga1_odev_proc_fops = {
|
static const struct proc_ops viafb_iga1_odev_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = viafb_iga1_odev_proc_open,
|
||||||
.open = viafb_iga1_odev_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_write = viafb_iga1_odev_proc_write,
|
||||||
.write = viafb_iga1_odev_proc_write,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int viafb_iga2_odev_proc_show(struct seq_file *m, void *v)
|
static int viafb_iga2_odev_proc_show(struct seq_file *m, void *v)
|
||||||
|
@ -1562,13 +1556,12 @@ static ssize_t viafb_iga2_odev_proc_write(struct file *file,
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations viafb_iga2_odev_proc_fops = {
|
static const struct proc_ops viafb_iga2_odev_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = viafb_iga2_odev_proc_open,
|
||||||
.open = viafb_iga2_odev_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
.proc_write = viafb_iga2_odev_proc_write,
|
||||||
.write = viafb_iga2_odev_proc_write,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#define IS_VT1636(lvds_chip) ((lvds_chip).lvds_chip_name == VT1636_LVDS)
|
#define IS_VT1636(lvds_chip) ((lvds_chip).lvds_chip_name == VT1636_LVDS)
|
||||||
|
@ -1580,14 +1573,14 @@ static void viafb_init_proc(struct viafb_shared *shared)
|
||||||
shared->proc_entry = viafb_entry;
|
shared->proc_entry = viafb_entry;
|
||||||
if (viafb_entry) {
|
if (viafb_entry) {
|
||||||
#ifdef CONFIG_FB_VIA_DIRECT_PROCFS
|
#ifdef CONFIG_FB_VIA_DIRECT_PROCFS
|
||||||
proc_create("dvp0", 0, viafb_entry, &viafb_dvp0_proc_fops);
|
proc_create("dvp0", 0, viafb_entry, &viafb_dvp0_proc_ops);
|
||||||
proc_create("dvp1", 0, viafb_entry, &viafb_dvp1_proc_fops);
|
proc_create("dvp1", 0, viafb_entry, &viafb_dvp1_proc_ops);
|
||||||
proc_create("dfph", 0, viafb_entry, &viafb_dfph_proc_fops);
|
proc_create("dfph", 0, viafb_entry, &viafb_dfph_proc_ops);
|
||||||
proc_create("dfpl", 0, viafb_entry, &viafb_dfpl_proc_fops);
|
proc_create("dfpl", 0, viafb_entry, &viafb_dfpl_proc_ops);
|
||||||
if (IS_VT1636(shared->chip_info.lvds_chip_info)
|
if (IS_VT1636(shared->chip_info.lvds_chip_info)
|
||||||
|| IS_VT1636(shared->chip_info.lvds_chip_info2))
|
|| IS_VT1636(shared->chip_info.lvds_chip_info2))
|
||||||
proc_create("vt1636", 0, viafb_entry,
|
proc_create("vt1636", 0, viafb_entry,
|
||||||
&viafb_vt1636_proc_fops);
|
&viafb_vt1636_proc_ops);
|
||||||
#endif /* CONFIG_FB_VIA_DIRECT_PROCFS */
|
#endif /* CONFIG_FB_VIA_DIRECT_PROCFS */
|
||||||
|
|
||||||
proc_create_single("supported_output_devices", 0, viafb_entry,
|
proc_create_single("supported_output_devices", 0, viafb_entry,
|
||||||
|
@ -1595,11 +1588,11 @@ static void viafb_init_proc(struct viafb_shared *shared)
|
||||||
iga1_entry = proc_mkdir("iga1", viafb_entry);
|
iga1_entry = proc_mkdir("iga1", viafb_entry);
|
||||||
shared->iga1_proc_entry = iga1_entry;
|
shared->iga1_proc_entry = iga1_entry;
|
||||||
proc_create("output_devices", 0, iga1_entry,
|
proc_create("output_devices", 0, iga1_entry,
|
||||||
&viafb_iga1_odev_proc_fops);
|
&viafb_iga1_odev_proc_ops);
|
||||||
iga2_entry = proc_mkdir("iga2", viafb_entry);
|
iga2_entry = proc_mkdir("iga2", viafb_entry);
|
||||||
shared->iga2_proc_entry = iga2_entry;
|
shared->iga2_proc_entry = iga2_entry;
|
||||||
proc_create("output_devices", 0, iga2_entry,
|
proc_create("output_devices", 0, iga2_entry,
|
||||||
&viafb_iga2_odev_proc_fops);
|
&viafb_iga2_odev_proc_ops);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
static void viafb_remove_proc(struct viafb_shared *shared)
|
static void viafb_remove_proc(struct viafb_shared *shared)
|
||||||
|
|
|
@ -56,10 +56,9 @@ proc_bus_zorro_read(struct file *file, char __user *buf, size_t nbytes, loff_t *
|
||||||
return nbytes;
|
return nbytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations proc_bus_zorro_operations = {
|
static const struct proc_ops bus_zorro_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_lseek = proc_bus_zorro_lseek,
|
||||||
.llseek = proc_bus_zorro_lseek,
|
.proc_read = proc_bus_zorro_read,
|
||||||
.read = proc_bus_zorro_read,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static void * zorro_seq_start(struct seq_file *m, loff_t *pos)
|
static void * zorro_seq_start(struct seq_file *m, loff_t *pos)
|
||||||
|
@ -105,7 +104,7 @@ static int __init zorro_proc_attach_device(unsigned int slot)
|
||||||
|
|
||||||
sprintf(name, "%02x", slot);
|
sprintf(name, "%02x", slot);
|
||||||
entry = proc_create_data(name, 0, proc_bus_zorro_dir,
|
entry = proc_create_data(name, 0, proc_bus_zorro_dir,
|
||||||
&proc_bus_zorro_operations,
|
&bus_zorro_proc_ops,
|
||||||
&zorro_autocon[slot]);
|
&zorro_autocon[slot]);
|
||||||
if (!entry)
|
if (!entry)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
|
@ -611,12 +611,12 @@ static int cifs_stats_proc_open(struct inode *inode, struct file *file)
|
||||||
return single_open(file, cifs_stats_proc_show, NULL);
|
return single_open(file, cifs_stats_proc_show, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations cifs_stats_proc_fops = {
|
static const struct proc_ops cifs_stats_proc_ops = {
|
||||||
.open = cifs_stats_proc_open,
|
.proc_open = cifs_stats_proc_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
.write = cifs_stats_proc_write,
|
.proc_write = cifs_stats_proc_write,
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_CIFS_SMB_DIRECT
|
#ifdef CONFIG_CIFS_SMB_DIRECT
|
||||||
|
@ -640,12 +640,12 @@ static int name##_open(struct inode *inode, struct file *file) \
|
||||||
return single_open(file, name##_proc_show, NULL); \
|
return single_open(file, name##_proc_show, NULL); \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static const struct file_operations cifs_##name##_proc_fops = { \
|
static const struct proc_ops cifs_##name##_proc_fops = { \
|
||||||
.open = name##_open, \
|
.proc_open = name##_open, \
|
||||||
.read = seq_read, \
|
.proc_read = seq_read, \
|
||||||
.llseek = seq_lseek, \
|
.proc_lseek = seq_lseek, \
|
||||||
.release = single_release, \
|
.proc_release = single_release, \
|
||||||
.write = name##_write, \
|
.proc_write = name##_write, \
|
||||||
}
|
}
|
||||||
|
|
||||||
PROC_FILE_DEFINE(rdma_readwrite_threshold);
|
PROC_FILE_DEFINE(rdma_readwrite_threshold);
|
||||||
|
@ -659,11 +659,11 @@ PROC_FILE_DEFINE(smbd_receive_credit_max);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static struct proc_dir_entry *proc_fs_cifs;
|
static struct proc_dir_entry *proc_fs_cifs;
|
||||||
static const struct file_operations cifsFYI_proc_fops;
|
static const struct proc_ops cifsFYI_proc_ops;
|
||||||
static const struct file_operations cifs_lookup_cache_proc_fops;
|
static const struct proc_ops cifs_lookup_cache_proc_ops;
|
||||||
static const struct file_operations traceSMB_proc_fops;
|
static const struct proc_ops traceSMB_proc_ops;
|
||||||
static const struct file_operations cifs_security_flags_proc_fops;
|
static const struct proc_ops cifs_security_flags_proc_ops;
|
||||||
static const struct file_operations cifs_linux_ext_proc_fops;
|
static const struct proc_ops cifs_linux_ext_proc_ops;
|
||||||
|
|
||||||
void
|
void
|
||||||
cifs_proc_init(void)
|
cifs_proc_init(void)
|
||||||
|
@ -678,18 +678,18 @@ cifs_proc_init(void)
|
||||||
proc_create_single("open_files", 0400, proc_fs_cifs,
|
proc_create_single("open_files", 0400, proc_fs_cifs,
|
||||||
cifs_debug_files_proc_show);
|
cifs_debug_files_proc_show);
|
||||||
|
|
||||||
proc_create("Stats", 0644, proc_fs_cifs, &cifs_stats_proc_fops);
|
proc_create("Stats", 0644, proc_fs_cifs, &cifs_stats_proc_ops);
|
||||||
proc_create("cifsFYI", 0644, proc_fs_cifs, &cifsFYI_proc_fops);
|
proc_create("cifsFYI", 0644, proc_fs_cifs, &cifsFYI_proc_ops);
|
||||||
proc_create("traceSMB", 0644, proc_fs_cifs, &traceSMB_proc_fops);
|
proc_create("traceSMB", 0644, proc_fs_cifs, &traceSMB_proc_ops);
|
||||||
proc_create("LinuxExtensionsEnabled", 0644, proc_fs_cifs,
|
proc_create("LinuxExtensionsEnabled", 0644, proc_fs_cifs,
|
||||||
&cifs_linux_ext_proc_fops);
|
&cifs_linux_ext_proc_ops);
|
||||||
proc_create("SecurityFlags", 0644, proc_fs_cifs,
|
proc_create("SecurityFlags", 0644, proc_fs_cifs,
|
||||||
&cifs_security_flags_proc_fops);
|
&cifs_security_flags_proc_ops);
|
||||||
proc_create("LookupCacheEnabled", 0644, proc_fs_cifs,
|
proc_create("LookupCacheEnabled", 0644, proc_fs_cifs,
|
||||||
&cifs_lookup_cache_proc_fops);
|
&cifs_lookup_cache_proc_ops);
|
||||||
|
|
||||||
#ifdef CONFIG_CIFS_DFS_UPCALL
|
#ifdef CONFIG_CIFS_DFS_UPCALL
|
||||||
proc_create("dfscache", 0644, proc_fs_cifs, &dfscache_proc_fops);
|
proc_create("dfscache", 0644, proc_fs_cifs, &dfscache_proc_ops);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_CIFS_SMB_DIRECT
|
#ifdef CONFIG_CIFS_SMB_DIRECT
|
||||||
|
@ -774,12 +774,12 @@ static ssize_t cifsFYI_proc_write(struct file *file, const char __user *buffer,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations cifsFYI_proc_fops = {
|
static const struct proc_ops cifsFYI_proc_ops = {
|
||||||
.open = cifsFYI_proc_open,
|
.proc_open = cifsFYI_proc_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
.write = cifsFYI_proc_write,
|
.proc_write = cifsFYI_proc_write,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int cifs_linux_ext_proc_show(struct seq_file *m, void *v)
|
static int cifs_linux_ext_proc_show(struct seq_file *m, void *v)
|
||||||
|
@ -805,12 +805,12 @@ static ssize_t cifs_linux_ext_proc_write(struct file *file,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations cifs_linux_ext_proc_fops = {
|
static const struct proc_ops cifs_linux_ext_proc_ops = {
|
||||||
.open = cifs_linux_ext_proc_open,
|
.proc_open = cifs_linux_ext_proc_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
.write = cifs_linux_ext_proc_write,
|
.proc_write = cifs_linux_ext_proc_write,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int cifs_lookup_cache_proc_show(struct seq_file *m, void *v)
|
static int cifs_lookup_cache_proc_show(struct seq_file *m, void *v)
|
||||||
|
@ -836,12 +836,12 @@ static ssize_t cifs_lookup_cache_proc_write(struct file *file,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations cifs_lookup_cache_proc_fops = {
|
static const struct proc_ops cifs_lookup_cache_proc_ops = {
|
||||||
.open = cifs_lookup_cache_proc_open,
|
.proc_open = cifs_lookup_cache_proc_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
.write = cifs_lookup_cache_proc_write,
|
.proc_write = cifs_lookup_cache_proc_write,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int traceSMB_proc_show(struct seq_file *m, void *v)
|
static int traceSMB_proc_show(struct seq_file *m, void *v)
|
||||||
|
@ -867,12 +867,12 @@ static ssize_t traceSMB_proc_write(struct file *file, const char __user *buffer,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations traceSMB_proc_fops = {
|
static const struct proc_ops traceSMB_proc_ops = {
|
||||||
.open = traceSMB_proc_open,
|
.proc_open = traceSMB_proc_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
.write = traceSMB_proc_write,
|
.proc_write = traceSMB_proc_write,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int cifs_security_flags_proc_show(struct seq_file *m, void *v)
|
static int cifs_security_flags_proc_show(struct seq_file *m, void *v)
|
||||||
|
@ -978,12 +978,12 @@ static ssize_t cifs_security_flags_proc_write(struct file *file,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations cifs_security_flags_proc_fops = {
|
static const struct proc_ops cifs_security_flags_proc_ops = {
|
||||||
.open = cifs_security_flags_proc_open,
|
.proc_open = cifs_security_flags_proc_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
.write = cifs_security_flags_proc_write,
|
.proc_write = cifs_security_flags_proc_write,
|
||||||
};
|
};
|
||||||
#else
|
#else
|
||||||
inline void cifs_proc_init(void)
|
inline void cifs_proc_init(void)
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#include <linux/jhash.h>
|
#include <linux/jhash.h>
|
||||||
#include <linux/ktime.h>
|
#include <linux/ktime.h>
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
|
#include <linux/proc_fs.h>
|
||||||
#include <linux/nls.h>
|
#include <linux/nls.h>
|
||||||
#include <linux/workqueue.h>
|
#include <linux/workqueue.h>
|
||||||
#include "cifsglob.h"
|
#include "cifsglob.h"
|
||||||
|
@ -211,12 +212,12 @@ static int dfscache_proc_open(struct inode *inode, struct file *file)
|
||||||
return single_open(file, dfscache_proc_show, NULL);
|
return single_open(file, dfscache_proc_show, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
const struct file_operations dfscache_proc_fops = {
|
const struct proc_ops dfscache_proc_ops = {
|
||||||
.open = dfscache_proc_open,
|
.proc_open = dfscache_proc_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
.write = dfscache_proc_write,
|
.proc_write = dfscache_proc_write,
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_CIFS_DEBUG2
|
#ifdef CONFIG_CIFS_DEBUG2
|
||||||
|
|
|
@ -24,7 +24,7 @@ struct dfs_cache_tgt_iterator {
|
||||||
|
|
||||||
extern int dfs_cache_init(void);
|
extern int dfs_cache_init(void);
|
||||||
extern void dfs_cache_destroy(void);
|
extern void dfs_cache_destroy(void);
|
||||||
extern const struct file_operations dfscache_proc_fops;
|
extern const struct proc_ops dfscache_proc_ops;
|
||||||
|
|
||||||
extern int dfs_cache_find(const unsigned int xid, struct cifs_ses *ses,
|
extern int dfs_cache_find(const unsigned int xid, struct cifs_ses *ses,
|
||||||
const struct nls_table *nls_codepage, int remap,
|
const struct nls_table *nls_codepage, int remap,
|
||||||
|
|
|
@ -111,7 +111,7 @@ extern void fscache_enqueue_object(struct fscache_object *);
|
||||||
* object-list.c
|
* object-list.c
|
||||||
*/
|
*/
|
||||||
#ifdef CONFIG_FSCACHE_OBJECT_LIST
|
#ifdef CONFIG_FSCACHE_OBJECT_LIST
|
||||||
extern const struct file_operations fscache_objlist_fops;
|
extern const struct proc_ops fscache_objlist_proc_ops;
|
||||||
|
|
||||||
extern void fscache_objlist_add(struct fscache_object *);
|
extern void fscache_objlist_add(struct fscache_object *);
|
||||||
extern void fscache_objlist_remove(struct fscache_object *);
|
extern void fscache_objlist_remove(struct fscache_object *);
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
#define FSCACHE_DEBUG_LEVEL COOKIE
|
#define FSCACHE_DEBUG_LEVEL COOKIE
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
|
#include <linux/proc_fs.h>
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
#include <linux/key.h>
|
#include <linux/key.h>
|
||||||
|
@ -405,9 +406,9 @@ static int fscache_objlist_release(struct inode *inode, struct file *file)
|
||||||
return seq_release(inode, file);
|
return seq_release(inode, file);
|
||||||
}
|
}
|
||||||
|
|
||||||
const struct file_operations fscache_objlist_fops = {
|
const struct proc_ops fscache_objlist_proc_ops = {
|
||||||
.open = fscache_objlist_open,
|
.proc_open = fscache_objlist_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = fscache_objlist_release,
|
.proc_release = fscache_objlist_release,
|
||||||
};
|
};
|
||||||
|
|
|
@ -35,7 +35,7 @@ int __init fscache_proc_init(void)
|
||||||
|
|
||||||
#ifdef CONFIG_FSCACHE_OBJECT_LIST
|
#ifdef CONFIG_FSCACHE_OBJECT_LIST
|
||||||
if (!proc_create("fs/fscache/objects", S_IFREG | 0444, NULL,
|
if (!proc_create("fs/fscache/objects", S_IFREG | 0444, NULL,
|
||||||
&fscache_objlist_fops))
|
&fscache_objlist_proc_ops))
|
||||||
goto error_objects;
|
goto error_objects;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -1074,12 +1074,11 @@ static int jbd2_seq_info_release(struct inode *inode, struct file *file)
|
||||||
return seq_release(inode, file);
|
return seq_release(inode, file);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations jbd2_seq_info_fops = {
|
static const struct proc_ops jbd2_info_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = jbd2_seq_info_open,
|
||||||
.open = jbd2_seq_info_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = jbd2_seq_info_release,
|
||||||
.release = jbd2_seq_info_release,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct proc_dir_entry *proc_jbd2_stats;
|
static struct proc_dir_entry *proc_jbd2_stats;
|
||||||
|
@ -1089,7 +1088,7 @@ static void jbd2_stats_proc_init(journal_t *journal)
|
||||||
journal->j_proc_entry = proc_mkdir(journal->j_devname, proc_jbd2_stats);
|
journal->j_proc_entry = proc_mkdir(journal->j_devname, proc_jbd2_stats);
|
||||||
if (journal->j_proc_entry) {
|
if (journal->j_proc_entry) {
|
||||||
proc_create_data("info", S_IRUGO, journal->j_proc_entry,
|
proc_create_data("info", S_IRUGO, journal->j_proc_entry,
|
||||||
&jbd2_seq_info_fops, journal);
|
&jbd2_info_proc_ops, journal);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,12 +43,12 @@ static ssize_t jfs_loglevel_proc_write(struct file *file,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations jfs_loglevel_proc_fops = {
|
static const struct proc_ops jfs_loglevel_proc_ops = {
|
||||||
.open = jfs_loglevel_proc_open,
|
.proc_open = jfs_loglevel_proc_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
.write = jfs_loglevel_proc_write,
|
.proc_write = jfs_loglevel_proc_write,
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ void jfs_proc_init(void)
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_JFS_DEBUG
|
#ifdef CONFIG_JFS_DEBUG
|
||||||
proc_create_single("TxAnchor", 0, base, jfs_txanchor_proc_show);
|
proc_create_single("TxAnchor", 0, base, jfs_txanchor_proc_show);
|
||||||
proc_create("loglevel", 0, base, &jfs_loglevel_proc_fops);
|
proc_create("loglevel", 0, base, &jfs_loglevel_proc_ops);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -60,11 +60,11 @@ nlm_end_grace_read(struct file *file, char __user *buf, size_t size,
|
||||||
return simple_read_from_buffer(buf, size, pos, resp, sizeof(resp));
|
return simple_read_from_buffer(buf, size, pos, resp, sizeof(resp));
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations lockd_end_grace_operations = {
|
static const struct proc_ops lockd_end_grace_proc_ops = {
|
||||||
.write = nlm_end_grace_write,
|
.proc_write = nlm_end_grace_write,
|
||||||
.read = nlm_end_grace_read,
|
.proc_read = nlm_end_grace_read,
|
||||||
.llseek = default_llseek,
|
.proc_lseek = default_llseek,
|
||||||
.release = simple_transaction_release,
|
.proc_release = simple_transaction_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
int __init
|
int __init
|
||||||
|
@ -76,7 +76,7 @@ lockd_create_procfs(void)
|
||||||
if (!entry)
|
if (!entry)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
entry = proc_create("nlm_end_grace", S_IRUGO|S_IWUSR, entry,
|
entry = proc_create("nlm_end_grace", S_IRUGO|S_IWUSR, entry,
|
||||||
&lockd_end_grace_operations);
|
&lockd_end_grace_proc_ops);
|
||||||
if (!entry) {
|
if (!entry) {
|
||||||
remove_proc_entry("fs/lockd", NULL);
|
remove_proc_entry("fs/lockd", NULL);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
|
@ -157,11 +157,11 @@ static int exports_proc_open(struct inode *inode, struct file *file)
|
||||||
return exports_net_open(current->nsproxy->net_ns, file);
|
return exports_net_open(current->nsproxy->net_ns, file);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations exports_proc_operations = {
|
static const struct proc_ops exports_proc_ops = {
|
||||||
.open = exports_proc_open,
|
.proc_open = exports_proc_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = seq_release,
|
.proc_release = seq_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int exports_nfsd_open(struct inode *inode, struct file *file)
|
static int exports_nfsd_open(struct inode *inode, struct file *file)
|
||||||
|
@ -1431,8 +1431,7 @@ static int create_proc_exports_entry(void)
|
||||||
entry = proc_mkdir("fs/nfs", NULL);
|
entry = proc_mkdir("fs/nfs", NULL);
|
||||||
if (!entry)
|
if (!entry)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
entry = proc_create("exports", 0, entry,
|
entry = proc_create("exports", 0, entry, &exports_proc_ops);
|
||||||
&exports_proc_operations);
|
|
||||||
if (!entry) {
|
if (!entry) {
|
||||||
remove_proc_entry("fs/nfs", NULL);
|
remove_proc_entry("fs/nfs", NULL);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
|
@ -84,17 +84,17 @@ static int nfsd_proc_open(struct inode *inode, struct file *file)
|
||||||
return single_open(file, nfsd_proc_show, NULL);
|
return single_open(file, nfsd_proc_show, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations nfsd_proc_fops = {
|
static const struct proc_ops nfsd_proc_ops = {
|
||||||
.open = nfsd_proc_open,
|
.proc_open = nfsd_proc_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
void
|
void
|
||||||
nfsd_stat_init(void)
|
nfsd_stat_init(void)
|
||||||
{
|
{
|
||||||
svc_proc_register(&init_net, &nfsd_svcstats, &nfsd_proc_fops);
|
svc_proc_register(&init_net, &nfsd_svcstats, &nfsd_proc_ops);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -16,16 +16,16 @@ static int cpuinfo_open(struct inode *inode, struct file *file)
|
||||||
return seq_open(file, &cpuinfo_op);
|
return seq_open(file, &cpuinfo_op);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations proc_cpuinfo_operations = {
|
static const struct proc_ops cpuinfo_proc_ops = {
|
||||||
.open = cpuinfo_open,
|
.proc_open = cpuinfo_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = seq_release,
|
.proc_release = seq_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init proc_cpuinfo_init(void)
|
static int __init proc_cpuinfo_init(void)
|
||||||
{
|
{
|
||||||
proc_create("cpuinfo", 0, NULL, &proc_cpuinfo_operations);
|
proc_create("cpuinfo", 0, NULL, &cpuinfo_proc_ops);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
fs_initcall(proc_cpuinfo_init);
|
fs_initcall(proc_cpuinfo_init);
|
||||||
|
|
|
@ -574,11 +574,11 @@ static int release_kcore(struct inode *inode, struct file *file)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations proc_kcore_operations = {
|
static const struct proc_ops kcore_proc_ops = {
|
||||||
.read = read_kcore,
|
.proc_read = read_kcore,
|
||||||
.open = open_kcore,
|
.proc_open = open_kcore,
|
||||||
.release = release_kcore,
|
.proc_release = release_kcore,
|
||||||
.llseek = default_llseek,
|
.proc_lseek = default_llseek,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* just remember that we have to update kcore */
|
/* just remember that we have to update kcore */
|
||||||
|
@ -637,8 +637,7 @@ static void __init add_modules_range(void)
|
||||||
|
|
||||||
static int __init proc_kcore_init(void)
|
static int __init proc_kcore_init(void)
|
||||||
{
|
{
|
||||||
proc_root_kcore = proc_create("kcore", S_IRUSR, NULL,
|
proc_root_kcore = proc_create("kcore", S_IRUSR, NULL, &kcore_proc_ops);
|
||||||
&proc_kcore_operations);
|
|
||||||
if (!proc_root_kcore) {
|
if (!proc_root_kcore) {
|
||||||
pr_err("couldn't create /proc/kcore\n");
|
pr_err("couldn't create /proc/kcore\n");
|
||||||
return 0; /* Always returns 0. */
|
return 0; /* Always returns 0. */
|
||||||
|
|
|
@ -49,17 +49,17 @@ static __poll_t kmsg_poll(struct file *file, poll_table *wait)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static const struct file_operations proc_kmsg_operations = {
|
static const struct proc_ops kmsg_proc_ops = {
|
||||||
.read = kmsg_read,
|
.proc_read = kmsg_read,
|
||||||
.poll = kmsg_poll,
|
.proc_poll = kmsg_poll,
|
||||||
.open = kmsg_open,
|
.proc_open = kmsg_open,
|
||||||
.release = kmsg_release,
|
.proc_release = kmsg_release,
|
||||||
.llseek = generic_file_llseek,
|
.proc_lseek = generic_file_llseek,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init proc_kmsg_init(void)
|
static int __init proc_kmsg_init(void)
|
||||||
{
|
{
|
||||||
proc_create("kmsg", S_IRUSR, NULL, &proc_kmsg_operations);
|
proc_create("kmsg", S_IRUSR, NULL, &kmsg_proc_ops);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
fs_initcall(proc_kmsg_init);
|
fs_initcall(proc_kmsg_init);
|
||||||
|
|
|
@ -89,9 +89,9 @@ static ssize_t kpagecount_read(struct file *file, char __user *buf,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations proc_kpagecount_operations = {
|
static const struct proc_ops kpagecount_proc_ops = {
|
||||||
.llseek = mem_lseek,
|
.proc_lseek = mem_lseek,
|
||||||
.read = kpagecount_read,
|
.proc_read = kpagecount_read,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* /proc/kpageflags - an array exposing page flags
|
/* /proc/kpageflags - an array exposing page flags
|
||||||
|
@ -263,9 +263,9 @@ static ssize_t kpageflags_read(struct file *file, char __user *buf,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations proc_kpageflags_operations = {
|
static const struct proc_ops kpageflags_proc_ops = {
|
||||||
.llseek = mem_lseek,
|
.proc_lseek = mem_lseek,
|
||||||
.read = kpageflags_read,
|
.proc_read = kpageflags_read,
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_MEMCG
|
#ifdef CONFIG_MEMCG
|
||||||
|
@ -317,18 +317,18 @@ static ssize_t kpagecgroup_read(struct file *file, char __user *buf,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations proc_kpagecgroup_operations = {
|
static const struct proc_ops kpagecgroup_proc_ops = {
|
||||||
.llseek = mem_lseek,
|
.proc_lseek = mem_lseek,
|
||||||
.read = kpagecgroup_read,
|
.proc_read = kpagecgroup_read,
|
||||||
};
|
};
|
||||||
#endif /* CONFIG_MEMCG */
|
#endif /* CONFIG_MEMCG */
|
||||||
|
|
||||||
static int __init proc_page_init(void)
|
static int __init proc_page_init(void)
|
||||||
{
|
{
|
||||||
proc_create("kpagecount", S_IRUSR, NULL, &proc_kpagecount_operations);
|
proc_create("kpagecount", S_IRUSR, NULL, &kpagecount_proc_ops);
|
||||||
proc_create("kpageflags", S_IRUSR, NULL, &proc_kpageflags_operations);
|
proc_create("kpageflags", S_IRUSR, NULL, &kpageflags_proc_ops);
|
||||||
#ifdef CONFIG_MEMCG
|
#ifdef CONFIG_MEMCG
|
||||||
proc_create("kpagecgroup", S_IRUSR, NULL, &proc_kpagecgroup_operations);
|
proc_create("kpagecgroup", S_IRUSR, NULL, &kpagecgroup_proc_ops);
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -223,16 +223,16 @@ static int stat_open(struct inode *inode, struct file *file)
|
||||||
return single_open_size(file, show_stat, NULL, size);
|
return single_open_size(file, show_stat, NULL, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations proc_stat_operations = {
|
static const struct proc_ops stat_proc_ops = {
|
||||||
.open = stat_open,
|
.proc_open = stat_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init proc_stat_init(void)
|
static int __init proc_stat_init(void)
|
||||||
{
|
{
|
||||||
proc_create("stat", 0, NULL, &proc_stat_operations);
|
proc_create("stat", 0, NULL, &stat_proc_ops);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
fs_initcall(proc_stat_init);
|
fs_initcall(proc_stat_init);
|
||||||
|
|
|
@ -667,10 +667,10 @@ static int mmap_vmcore(struct file *file, struct vm_area_struct *vma)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static const struct file_operations proc_vmcore_operations = {
|
static const struct proc_ops vmcore_proc_ops = {
|
||||||
.read = read_vmcore,
|
.proc_read = read_vmcore,
|
||||||
.llseek = default_llseek,
|
.proc_lseek = default_llseek,
|
||||||
.mmap = mmap_vmcore,
|
.proc_mmap = mmap_vmcore,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct vmcore* __init get_new_element(void)
|
static struct vmcore* __init get_new_element(void)
|
||||||
|
@ -1555,7 +1555,7 @@ static int __init vmcore_init(void)
|
||||||
elfcorehdr_free(elfcorehdr_addr);
|
elfcorehdr_free(elfcorehdr_addr);
|
||||||
elfcorehdr_addr = ELFCORE_ADDR_ERR;
|
elfcorehdr_addr = ELFCORE_ADDR_ERR;
|
||||||
|
|
||||||
proc_vmcore = proc_create("vmcore", S_IRUSR, NULL, &proc_vmcore_operations);
|
proc_vmcore = proc_create("vmcore", S_IRUSR, NULL, &vmcore_proc_ops);
|
||||||
if (proc_vmcore)
|
if (proc_vmcore)
|
||||||
proc_vmcore->size = vmcore_size;
|
proc_vmcore->size = vmcore_size;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -160,6 +160,19 @@ static const struct file_operations __name ## _fops = { \
|
||||||
.release = single_release, \
|
.release = single_release, \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define DEFINE_PROC_SHOW_ATTRIBUTE(__name) \
|
||||||
|
static int __name ## _open(struct inode *inode, struct file *file) \
|
||||||
|
{ \
|
||||||
|
return single_open(file, __name ## _show, inode->i_private); \
|
||||||
|
} \
|
||||||
|
\
|
||||||
|
static const struct proc_ops __name ## _proc_ops = { \
|
||||||
|
.proc_open = __name ## _open, \
|
||||||
|
.proc_read = seq_read, \
|
||||||
|
.proc_lseek = seq_lseek, \
|
||||||
|
.proc_release = single_release, \
|
||||||
|
}
|
||||||
|
|
||||||
static inline struct user_namespace *seq_user_ns(struct seq_file *seq)
|
static inline struct user_namespace *seq_user_ns(struct seq_file *seq)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_USER_NS
|
#ifdef CONFIG_USER_NS
|
||||||
|
|
|
@ -63,7 +63,7 @@ struct proc_dir_entry * rpc_proc_register(struct net *,struct rpc_stat *);
|
||||||
void rpc_proc_unregister(struct net *,const char *);
|
void rpc_proc_unregister(struct net *,const char *);
|
||||||
void rpc_proc_zero(const struct rpc_program *);
|
void rpc_proc_zero(const struct rpc_program *);
|
||||||
struct proc_dir_entry * svc_proc_register(struct net *, struct svc_stat *,
|
struct proc_dir_entry * svc_proc_register(struct net *, struct svc_stat *,
|
||||||
const struct file_operations *);
|
const struct proc_ops *);
|
||||||
void svc_proc_unregister(struct net *, const char *);
|
void svc_proc_unregister(struct net *, const char *);
|
||||||
|
|
||||||
void svc_seq_show(struct seq_file *,
|
void svc_seq_show(struct seq_file *,
|
||||||
|
@ -75,7 +75,7 @@ static inline void rpc_proc_unregister(struct net *net, const char *p) {}
|
||||||
static inline void rpc_proc_zero(const struct rpc_program *p) {}
|
static inline void rpc_proc_zero(const struct rpc_program *p) {}
|
||||||
|
|
||||||
static inline struct proc_dir_entry *svc_proc_register(struct net *net, struct svc_stat *s,
|
static inline struct proc_dir_entry *svc_proc_register(struct net *net, struct svc_stat *s,
|
||||||
const struct file_operations *f) { return NULL; }
|
const struct proc_ops *proc_ops) { return NULL; }
|
||||||
static inline void svc_proc_unregister(struct net *net, const char *p) {}
|
static inline void svc_proc_unregister(struct net *net, const char *p) {}
|
||||||
|
|
||||||
static inline void svc_seq_show(struct seq_file *seq,
|
static inline void svc_seq_show(struct seq_file *seq,
|
||||||
|
|
14
ipc/util.c
14
ipc/util.c
|
@ -126,7 +126,7 @@ void ipc_init_ids(struct ipc_ids *ids)
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_PROC_FS
|
||||||
static const struct file_operations sysvipc_proc_fops;
|
static const struct proc_ops sysvipc_proc_ops;
|
||||||
/**
|
/**
|
||||||
* ipc_init_proc_interface - create a proc interface for sysipc types using a seq_file interface.
|
* ipc_init_proc_interface - create a proc interface for sysipc types using a seq_file interface.
|
||||||
* @path: Path in procfs
|
* @path: Path in procfs
|
||||||
|
@ -151,7 +151,7 @@ void __init ipc_init_proc_interface(const char *path, const char *header,
|
||||||
pde = proc_create_data(path,
|
pde = proc_create_data(path,
|
||||||
S_IRUGO, /* world readable */
|
S_IRUGO, /* world readable */
|
||||||
NULL, /* parent dir */
|
NULL, /* parent dir */
|
||||||
&sysvipc_proc_fops,
|
&sysvipc_proc_ops,
|
||||||
iface);
|
iface);
|
||||||
if (!pde)
|
if (!pde)
|
||||||
kfree(iface);
|
kfree(iface);
|
||||||
|
@ -884,10 +884,10 @@ static int sysvipc_proc_release(struct inode *inode, struct file *file)
|
||||||
return seq_release_private(inode, file);
|
return seq_release_private(inode, file);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations sysvipc_proc_fops = {
|
static const struct proc_ops sysvipc_proc_ops = {
|
||||||
.open = sysvipc_proc_open,
|
.proc_open = sysvipc_proc_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = sysvipc_proc_release,
|
.proc_release = sysvipc_proc_release,
|
||||||
};
|
};
|
||||||
#endif /* CONFIG_PROC_FS */
|
#endif /* CONFIG_PROC_FS */
|
||||||
|
|
|
@ -47,10 +47,9 @@ ikconfig_read_current(struct file *file, char __user *buf,
|
||||||
&kernel_config_data);
|
&kernel_config_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations ikconfig_file_ops = {
|
static const struct proc_ops config_gz_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_read = ikconfig_read_current,
|
||||||
.read = ikconfig_read_current,
|
.proc_lseek = default_llseek,
|
||||||
.llseek = default_llseek,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init ikconfig_init(void)
|
static int __init ikconfig_init(void)
|
||||||
|
@ -59,7 +58,7 @@ static int __init ikconfig_init(void)
|
||||||
|
|
||||||
/* create the current config file */
|
/* create the current config file */
|
||||||
entry = proc_create("config.gz", S_IFREG | S_IRUGO, NULL,
|
entry = proc_create("config.gz", S_IFREG | S_IRUGO, NULL,
|
||||||
&ikconfig_file_ops);
|
&config_gz_proc_ops);
|
||||||
if (!entry)
|
if (!entry)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
|
|
@ -176,20 +176,20 @@ static int irq_affinity_list_proc_open(struct inode *inode, struct file *file)
|
||||||
return single_open(file, irq_affinity_list_proc_show, PDE_DATA(inode));
|
return single_open(file, irq_affinity_list_proc_show, PDE_DATA(inode));
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations irq_affinity_proc_fops = {
|
static const struct proc_ops irq_affinity_proc_ops = {
|
||||||
.open = irq_affinity_proc_open,
|
.proc_open = irq_affinity_proc_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
.write = irq_affinity_proc_write,
|
.proc_write = irq_affinity_proc_write,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct file_operations irq_affinity_list_proc_fops = {
|
static const struct proc_ops irq_affinity_list_proc_ops = {
|
||||||
.open = irq_affinity_list_proc_open,
|
.proc_open = irq_affinity_list_proc_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
.write = irq_affinity_list_proc_write,
|
.proc_write = irq_affinity_list_proc_write,
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK
|
#ifdef CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK
|
||||||
|
@ -246,12 +246,12 @@ static int default_affinity_open(struct inode *inode, struct file *file)
|
||||||
return single_open(file, default_affinity_show, PDE_DATA(inode));
|
return single_open(file, default_affinity_show, PDE_DATA(inode));
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations default_affinity_proc_fops = {
|
static const struct proc_ops default_affinity_proc_ops = {
|
||||||
.open = default_affinity_open,
|
.proc_open = default_affinity_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
.write = default_affinity_write,
|
.proc_write = default_affinity_write,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int irq_node_proc_show(struct seq_file *m, void *v)
|
static int irq_node_proc_show(struct seq_file *m, void *v)
|
||||||
|
@ -342,7 +342,7 @@ void register_irq_proc(unsigned int irq, struct irq_desc *desc)
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
/* create /proc/irq/<irq>/smp_affinity */
|
/* create /proc/irq/<irq>/smp_affinity */
|
||||||
proc_create_data("smp_affinity", 0644, desc->dir,
|
proc_create_data("smp_affinity", 0644, desc->dir,
|
||||||
&irq_affinity_proc_fops, irqp);
|
&irq_affinity_proc_ops, irqp);
|
||||||
|
|
||||||
/* create /proc/irq/<irq>/affinity_hint */
|
/* create /proc/irq/<irq>/affinity_hint */
|
||||||
proc_create_single_data("affinity_hint", 0444, desc->dir,
|
proc_create_single_data("affinity_hint", 0444, desc->dir,
|
||||||
|
@ -350,7 +350,7 @@ void register_irq_proc(unsigned int irq, struct irq_desc *desc)
|
||||||
|
|
||||||
/* create /proc/irq/<irq>/smp_affinity_list */
|
/* create /proc/irq/<irq>/smp_affinity_list */
|
||||||
proc_create_data("smp_affinity_list", 0644, desc->dir,
|
proc_create_data("smp_affinity_list", 0644, desc->dir,
|
||||||
&irq_affinity_list_proc_fops, irqp);
|
&irq_affinity_list_proc_ops, irqp);
|
||||||
|
|
||||||
proc_create_single_data("node", 0444, desc->dir, irq_node_proc_show,
|
proc_create_single_data("node", 0444, desc->dir, irq_node_proc_show,
|
||||||
irqp);
|
irqp);
|
||||||
|
@ -401,7 +401,7 @@ static void register_default_affinity_proc(void)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
proc_create("irq/default_smp_affinity", 0644, NULL,
|
proc_create("irq/default_smp_affinity", 0644, NULL,
|
||||||
&default_affinity_proc_fops);
|
&default_affinity_proc_ops);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -698,16 +698,16 @@ const char *kdb_walk_kallsyms(loff_t *pos)
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_KGDB_KDB */
|
#endif /* CONFIG_KGDB_KDB */
|
||||||
|
|
||||||
static const struct file_operations kallsyms_operations = {
|
static const struct proc_ops kallsyms_proc_ops = {
|
||||||
.open = kallsyms_open,
|
.proc_open = kallsyms_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = seq_release_private,
|
.proc_release = seq_release_private,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init kallsyms_init(void)
|
static int __init kallsyms_init(void)
|
||||||
{
|
{
|
||||||
proc_create("kallsyms", 0444, NULL, &kallsyms_operations);
|
proc_create("kallsyms", 0444, NULL, &kallsyms_proc_ops);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
device_initcall(kallsyms_init);
|
device_initcall(kallsyms_init);
|
||||||
|
|
|
@ -255,17 +255,17 @@ static int lstats_open(struct inode *inode, struct file *filp)
|
||||||
return single_open(filp, lstats_show, NULL);
|
return single_open(filp, lstats_show, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations lstats_fops = {
|
static const struct proc_ops lstats_proc_ops = {
|
||||||
.open = lstats_open,
|
.proc_open = lstats_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.write = lstats_write,
|
.proc_write = lstats_write,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init init_lstats_procfs(void)
|
static int __init init_lstats_procfs(void)
|
||||||
{
|
{
|
||||||
proc_create("latency_stats", 0644, NULL, &lstats_fops);
|
proc_create("latency_stats", 0644, NULL, &lstats_proc_ops);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -643,12 +643,12 @@ static int lock_stat_release(struct inode *inode, struct file *file)
|
||||||
return seq_release(inode, file);
|
return seq_release(inode, file);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations proc_lock_stat_operations = {
|
static const struct proc_ops lock_stat_proc_ops = {
|
||||||
.open = lock_stat_open,
|
.proc_open = lock_stat_open,
|
||||||
.write = lock_stat_write,
|
.proc_write = lock_stat_write,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = lock_stat_release,
|
.proc_release = lock_stat_release,
|
||||||
};
|
};
|
||||||
#endif /* CONFIG_LOCK_STAT */
|
#endif /* CONFIG_LOCK_STAT */
|
||||||
|
|
||||||
|
@ -660,8 +660,7 @@ static int __init lockdep_proc_init(void)
|
||||||
#endif
|
#endif
|
||||||
proc_create_single("lockdep_stats", S_IRUSR, NULL, lockdep_stats_show);
|
proc_create_single("lockdep_stats", S_IRUSR, NULL, lockdep_stats_show);
|
||||||
#ifdef CONFIG_LOCK_STAT
|
#ifdef CONFIG_LOCK_STAT
|
||||||
proc_create("lock_stat", S_IRUSR | S_IWUSR, NULL,
|
proc_create("lock_stat", S_IRUSR | S_IWUSR, NULL, &lock_stat_proc_ops);
|
||||||
&proc_lock_stat_operations);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -4354,16 +4354,16 @@ static int modules_open(struct inode *inode, struct file *file)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations proc_modules_operations = {
|
static const struct proc_ops modules_proc_ops = {
|
||||||
.open = modules_open,
|
.proc_open = modules_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = seq_release,
|
.proc_release = seq_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init proc_modules_init(void)
|
static int __init proc_modules_init(void)
|
||||||
{
|
{
|
||||||
proc_create("modules", 0, NULL, &proc_modules_operations);
|
proc_create("modules", 0, NULL, &modules_proc_ops);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
module_init(proc_modules_init);
|
module_init(proc_modules_init);
|
||||||
|
|
|
@ -442,18 +442,18 @@ static ssize_t prof_cpu_mask_proc_write(struct file *file,
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations prof_cpu_mask_proc_fops = {
|
static const struct proc_ops prof_cpu_mask_proc_ops = {
|
||||||
.open = prof_cpu_mask_proc_open,
|
.proc_open = prof_cpu_mask_proc_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
.write = prof_cpu_mask_proc_write,
|
.proc_write = prof_cpu_mask_proc_write,
|
||||||
};
|
};
|
||||||
|
|
||||||
void create_prof_cpu_mask(void)
|
void create_prof_cpu_mask(void)
|
||||||
{
|
{
|
||||||
/* create /proc/irq/prof_cpu_mask */
|
/* create /proc/irq/prof_cpu_mask */
|
||||||
proc_create("irq/prof_cpu_mask", 0600, NULL, &prof_cpu_mask_proc_fops);
|
proc_create("irq/prof_cpu_mask", 0600, NULL, &prof_cpu_mask_proc_ops);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -517,10 +517,10 @@ static ssize_t write_profile(struct file *file, const char __user *buf,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations proc_profile_operations = {
|
static const struct proc_ops profile_proc_ops = {
|
||||||
.read = read_profile,
|
.proc_read = read_profile,
|
||||||
.write = write_profile,
|
.proc_write = write_profile,
|
||||||
.llseek = default_llseek,
|
.proc_lseek = default_llseek,
|
||||||
};
|
};
|
||||||
|
|
||||||
int __ref create_proc_profile(void)
|
int __ref create_proc_profile(void)
|
||||||
|
@ -548,7 +548,7 @@ int __ref create_proc_profile(void)
|
||||||
err = 0;
|
err = 0;
|
||||||
#endif
|
#endif
|
||||||
entry = proc_create("profile", S_IWUSR | S_IRUGO,
|
entry = proc_create("profile", S_IWUSR | S_IRUGO,
|
||||||
NULL, &proc_profile_operations);
|
NULL, &profile_proc_ops);
|
||||||
if (!entry)
|
if (!entry)
|
||||||
goto err_state_onl;
|
goto err_state_onl;
|
||||||
proc_set_size(entry, (1 + prof_len) * sizeof(atomic_t));
|
proc_set_size(entry, (1 + prof_len) * sizeof(atomic_t));
|
||||||
|
|
|
@ -1251,40 +1251,40 @@ static int psi_fop_release(struct inode *inode, struct file *file)
|
||||||
return single_release(inode, file);
|
return single_release(inode, file);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations psi_io_fops = {
|
static const struct proc_ops psi_io_proc_ops = {
|
||||||
.open = psi_io_open,
|
.proc_open = psi_io_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.write = psi_io_write,
|
.proc_write = psi_io_write,
|
||||||
.poll = psi_fop_poll,
|
.proc_poll = psi_fop_poll,
|
||||||
.release = psi_fop_release,
|
.proc_release = psi_fop_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct file_operations psi_memory_fops = {
|
static const struct proc_ops psi_memory_proc_ops = {
|
||||||
.open = psi_memory_open,
|
.proc_open = psi_memory_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.write = psi_memory_write,
|
.proc_write = psi_memory_write,
|
||||||
.poll = psi_fop_poll,
|
.proc_poll = psi_fop_poll,
|
||||||
.release = psi_fop_release,
|
.proc_release = psi_fop_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct file_operations psi_cpu_fops = {
|
static const struct proc_ops psi_cpu_proc_ops = {
|
||||||
.open = psi_cpu_open,
|
.proc_open = psi_cpu_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.write = psi_cpu_write,
|
.proc_write = psi_cpu_write,
|
||||||
.poll = psi_fop_poll,
|
.proc_poll = psi_fop_poll,
|
||||||
.release = psi_fop_release,
|
.proc_release = psi_fop_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init psi_proc_init(void)
|
static int __init psi_proc_init(void)
|
||||||
{
|
{
|
||||||
if (psi_enable) {
|
if (psi_enable) {
|
||||||
proc_mkdir("pressure", NULL);
|
proc_mkdir("pressure", NULL);
|
||||||
proc_create("pressure/io", 0, NULL, &psi_io_fops);
|
proc_create("pressure/io", 0, NULL, &psi_io_proc_ops);
|
||||||
proc_create("pressure/memory", 0, NULL, &psi_memory_fops);
|
proc_create("pressure/memory", 0, NULL, &psi_memory_proc_ops);
|
||||||
proc_create("pressure/cpu", 0, NULL, &psi_cpu_fops);
|
proc_create("pressure/cpu", 0, NULL, &psi_cpu_proc_ops);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1580,18 +1580,17 @@ static int slabinfo_open(struct inode *inode, struct file *file)
|
||||||
return seq_open(file, &slabinfo_op);
|
return seq_open(file, &slabinfo_op);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations proc_slabinfo_operations = {
|
static const struct proc_ops slabinfo_proc_ops = {
|
||||||
.open = slabinfo_open,
|
.proc_open = slabinfo_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.write = slabinfo_write,
|
.proc_write = slabinfo_write,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = seq_release,
|
.proc_release = seq_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init slab_proc_init(void)
|
static int __init slab_proc_init(void)
|
||||||
{
|
{
|
||||||
proc_create("slabinfo", SLABINFO_RIGHTS, NULL,
|
proc_create("slabinfo", SLABINFO_RIGHTS, NULL, &slabinfo_proc_ops);
|
||||||
&proc_slabinfo_operations);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
module_init(slab_proc_init);
|
module_init(slab_proc_init);
|
||||||
|
|
|
@ -2796,17 +2796,17 @@ static int swaps_open(struct inode *inode, struct file *file)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations proc_swaps_operations = {
|
static const struct proc_ops swaps_proc_ops = {
|
||||||
.open = swaps_open,
|
.proc_open = swaps_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = seq_release,
|
.proc_release = seq_release,
|
||||||
.poll = swaps_poll,
|
.proc_poll = swaps_poll,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init procswaps_init(void)
|
static int __init procswaps_init(void)
|
||||||
{
|
{
|
||||||
proc_create("swaps", 0, NULL, &proc_swaps_operations);
|
proc_create("swaps", 0, NULL, &swaps_proc_ops);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
__initcall(procswaps_init);
|
__initcall(procswaps_init);
|
||||||
|
|
|
@ -53,15 +53,12 @@ static ssize_t proc_mpc_write(struct file *file, const char __user *buff,
|
||||||
|
|
||||||
static int parse_qos(const char *buff);
|
static int parse_qos(const char *buff);
|
||||||
|
|
||||||
/*
|
static const struct proc_ops mpc_proc_ops = {
|
||||||
* Define allowed FILE OPERATIONS
|
.proc_open = proc_mpc_open,
|
||||||
*/
|
.proc_read = seq_read,
|
||||||
static const struct file_operations mpc_file_operations = {
|
.proc_lseek = seq_lseek,
|
||||||
.open = proc_mpc_open,
|
.proc_write = proc_mpc_write,
|
||||||
.read = seq_read,
|
.proc_release = seq_release,
|
||||||
.llseek = seq_lseek,
|
|
||||||
.write = proc_mpc_write,
|
|
||||||
.release = seq_release,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -290,7 +287,7 @@ int mpc_proc_init(void)
|
||||||
{
|
{
|
||||||
struct proc_dir_entry *p;
|
struct proc_dir_entry *p;
|
||||||
|
|
||||||
p = proc_create(STAT_FILE_NAME, 0, atm_proc_root, &mpc_file_operations);
|
p = proc_create(STAT_FILE_NAME, 0, atm_proc_root, &mpc_proc_ops);
|
||||||
if (!p) {
|
if (!p) {
|
||||||
pr_err("Unable to initialize /proc/atm/%s\n", STAT_FILE_NAME);
|
pr_err("Unable to initialize /proc/atm/%s\n", STAT_FILE_NAME);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
|
@ -36,9 +36,9 @@
|
||||||
static ssize_t proc_dev_atm_read(struct file *file, char __user *buf,
|
static ssize_t proc_dev_atm_read(struct file *file, char __user *buf,
|
||||||
size_t count, loff_t *pos);
|
size_t count, loff_t *pos);
|
||||||
|
|
||||||
static const struct file_operations proc_atm_dev_ops = {
|
static const struct proc_ops atm_dev_proc_ops = {
|
||||||
.read = proc_dev_atm_read,
|
.proc_read = proc_dev_atm_read,
|
||||||
.llseek = noop_llseek,
|
.proc_lseek = noop_llseek,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void add_stats(struct seq_file *seq, const char *aal,
|
static void add_stats(struct seq_file *seq, const char *aal,
|
||||||
|
@ -359,7 +359,7 @@ int atm_proc_dev_register(struct atm_dev *dev)
|
||||||
goto err_out;
|
goto err_out;
|
||||||
|
|
||||||
dev->proc_entry = proc_create_data(dev->proc_name, 0, atm_proc_root,
|
dev->proc_entry = proc_create_data(dev->proc_name, 0, atm_proc_root,
|
||||||
&proc_atm_dev_ops, dev);
|
&atm_dev_proc_ops, dev);
|
||||||
if (!dev->proc_entry)
|
if (!dev->proc_entry)
|
||||||
goto err_free_name;
|
goto err_free_name;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -535,12 +535,12 @@ static int pgctrl_open(struct inode *inode, struct file *file)
|
||||||
return single_open(file, pgctrl_show, PDE_DATA(inode));
|
return single_open(file, pgctrl_show, PDE_DATA(inode));
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations pktgen_fops = {
|
static const struct proc_ops pktgen_proc_ops = {
|
||||||
.open = pgctrl_open,
|
.proc_open = pgctrl_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.write = pgctrl_write,
|
.proc_write = pgctrl_write,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int pktgen_if_show(struct seq_file *seq, void *v)
|
static int pktgen_if_show(struct seq_file *seq, void *v)
|
||||||
|
@ -1707,12 +1707,12 @@ static int pktgen_if_open(struct inode *inode, struct file *file)
|
||||||
return single_open(file, pktgen_if_show, PDE_DATA(inode));
|
return single_open(file, pktgen_if_show, PDE_DATA(inode));
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations pktgen_if_fops = {
|
static const struct proc_ops pktgen_if_proc_ops = {
|
||||||
.open = pktgen_if_open,
|
.proc_open = pktgen_if_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.write = pktgen_if_write,
|
.proc_write = pktgen_if_write,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int pktgen_thread_show(struct seq_file *seq, void *v)
|
static int pktgen_thread_show(struct seq_file *seq, void *v)
|
||||||
|
@ -1844,12 +1844,12 @@ static int pktgen_thread_open(struct inode *inode, struct file *file)
|
||||||
return single_open(file, pktgen_thread_show, PDE_DATA(inode));
|
return single_open(file, pktgen_thread_show, PDE_DATA(inode));
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations pktgen_thread_fops = {
|
static const struct proc_ops pktgen_thread_proc_ops = {
|
||||||
.open = pktgen_thread_open,
|
.proc_open = pktgen_thread_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.write = pktgen_thread_write,
|
.proc_write = pktgen_thread_write,
|
||||||
.release = single_release,
|
.proc_release = single_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Think find or remove for NN */
|
/* Think find or remove for NN */
|
||||||
|
@ -1926,7 +1926,7 @@ static void pktgen_change_name(const struct pktgen_net *pn, struct net_device *d
|
||||||
|
|
||||||
pkt_dev->entry = proc_create_data(dev->name, 0600,
|
pkt_dev->entry = proc_create_data(dev->name, 0600,
|
||||||
pn->proc_dir,
|
pn->proc_dir,
|
||||||
&pktgen_if_fops,
|
&pktgen_if_proc_ops,
|
||||||
pkt_dev);
|
pkt_dev);
|
||||||
if (!pkt_dev->entry)
|
if (!pkt_dev->entry)
|
||||||
pr_err("can't move proc entry for '%s'\n",
|
pr_err("can't move proc entry for '%s'\n",
|
||||||
|
@ -3638,7 +3638,7 @@ static int pktgen_add_device(struct pktgen_thread *t, const char *ifname)
|
||||||
pkt_dev->clone_skb = pg_clone_skb_d;
|
pkt_dev->clone_skb = pg_clone_skb_d;
|
||||||
|
|
||||||
pkt_dev->entry = proc_create_data(ifname, 0600, t->net->proc_dir,
|
pkt_dev->entry = proc_create_data(ifname, 0600, t->net->proc_dir,
|
||||||
&pktgen_if_fops, pkt_dev);
|
&pktgen_if_proc_ops, pkt_dev);
|
||||||
if (!pkt_dev->entry) {
|
if (!pkt_dev->entry) {
|
||||||
pr_err("cannot create %s/%s procfs entry\n",
|
pr_err("cannot create %s/%s procfs entry\n",
|
||||||
PG_PROC_DIR, ifname);
|
PG_PROC_DIR, ifname);
|
||||||
|
@ -3708,7 +3708,7 @@ static int __net_init pktgen_create_thread(int cpu, struct pktgen_net *pn)
|
||||||
t->tsk = p;
|
t->tsk = p;
|
||||||
|
|
||||||
pe = proc_create_data(t->tsk->comm, 0600, pn->proc_dir,
|
pe = proc_create_data(t->tsk->comm, 0600, pn->proc_dir,
|
||||||
&pktgen_thread_fops, t);
|
&pktgen_thread_proc_ops, t);
|
||||||
if (!pe) {
|
if (!pe) {
|
||||||
pr_err("cannot create %s/%s procfs entry\n",
|
pr_err("cannot create %s/%s procfs entry\n",
|
||||||
PG_PROC_DIR, t->tsk->comm);
|
PG_PROC_DIR, t->tsk->comm);
|
||||||
|
@ -3793,7 +3793,7 @@ static int __net_init pg_net_init(struct net *net)
|
||||||
pr_warn("cannot create /proc/net/%s\n", PG_PROC_DIR);
|
pr_warn("cannot create /proc/net/%s\n", PG_PROC_DIR);
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
pe = proc_create(PGCTRL, 0600, pn->proc_dir, &pktgen_fops);
|
pe = proc_create(PGCTRL, 0600, pn->proc_dir, &pktgen_proc_ops);
|
||||||
if (pe == NULL) {
|
if (pe == NULL) {
|
||||||
pr_err("cannot create %s procfs entry\n", PGCTRL);
|
pr_err("cannot create %s procfs entry\n", PGCTRL);
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
|
|
|
@ -1334,7 +1334,7 @@ static int __init ipconfig_proc_net_init(void)
|
||||||
|
|
||||||
/* Create a new file under /proc/net/ipconfig */
|
/* Create a new file under /proc/net/ipconfig */
|
||||||
static int ipconfig_proc_net_create(const char *name,
|
static int ipconfig_proc_net_create(const char *name,
|
||||||
const struct file_operations *fops)
|
const struct proc_ops *proc_ops)
|
||||||
{
|
{
|
||||||
char *pname;
|
char *pname;
|
||||||
struct proc_dir_entry *p;
|
struct proc_dir_entry *p;
|
||||||
|
@ -1346,7 +1346,7 @@ static int ipconfig_proc_net_create(const char *name,
|
||||||
if (!pname)
|
if (!pname)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
p = proc_create(pname, 0444, init_net.proc_net, fops);
|
p = proc_create(pname, 0444, init_net.proc_net, proc_ops);
|
||||||
kfree(pname);
|
kfree(pname);
|
||||||
if (!p)
|
if (!p)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
@ -1355,7 +1355,7 @@ static int ipconfig_proc_net_create(const char *name,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Write NTP server IP addresses to /proc/net/ipconfig/ntp_servers */
|
/* Write NTP server IP addresses to /proc/net/ipconfig/ntp_servers */
|
||||||
static int ntp_servers_seq_show(struct seq_file *seq, void *v)
|
static int ntp_servers_show(struct seq_file *seq, void *v)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -1365,7 +1365,7 @@ static int ntp_servers_seq_show(struct seq_file *seq, void *v)
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
DEFINE_SHOW_ATTRIBUTE(ntp_servers_seq);
|
DEFINE_PROC_SHOW_ATTRIBUTE(ntp_servers);
|
||||||
#endif /* CONFIG_PROC_FS */
|
#endif /* CONFIG_PROC_FS */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1456,7 +1456,7 @@ static int __init ip_auto_config(void)
|
||||||
proc_create_single("pnp", 0444, init_net.proc_net, pnp_seq_show);
|
proc_create_single("pnp", 0444, init_net.proc_net, pnp_seq_show);
|
||||||
|
|
||||||
if (ipconfig_proc_net_init() == 0)
|
if (ipconfig_proc_net_init() == 0)
|
||||||
ipconfig_proc_net_create("ntp_servers", &ntp_servers_seq_fops);
|
ipconfig_proc_net_create("ntp_servers", &ntp_servers_proc_ops);
|
||||||
#endif /* CONFIG_PROC_FS */
|
#endif /* CONFIG_PROC_FS */
|
||||||
|
|
||||||
if (!ic_enable)
|
if (!ic_enable)
|
||||||
|
|
|
@ -58,7 +58,7 @@ struct clusterip_config {
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_PROC_FS
|
||||||
static const struct file_operations clusterip_proc_fops;
|
static const struct proc_ops clusterip_proc_ops;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
struct clusterip_net {
|
struct clusterip_net {
|
||||||
|
@ -280,7 +280,7 @@ clusterip_config_init(struct net *net, const struct ipt_clusterip_tgt_info *i,
|
||||||
mutex_lock(&cn->mutex);
|
mutex_lock(&cn->mutex);
|
||||||
c->pde = proc_create_data(buffer, 0600,
|
c->pde = proc_create_data(buffer, 0600,
|
||||||
cn->procdir,
|
cn->procdir,
|
||||||
&clusterip_proc_fops, c);
|
&clusterip_proc_ops, c);
|
||||||
mutex_unlock(&cn->mutex);
|
mutex_unlock(&cn->mutex);
|
||||||
if (!c->pde) {
|
if (!c->pde) {
|
||||||
err = -ENOMEM;
|
err = -ENOMEM;
|
||||||
|
@ -804,12 +804,12 @@ static ssize_t clusterip_proc_write(struct file *file, const char __user *input,
|
||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations clusterip_proc_fops = {
|
static const struct proc_ops clusterip_proc_ops = {
|
||||||
.open = clusterip_proc_open,
|
.proc_open = clusterip_proc_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.write = clusterip_proc_write,
|
.proc_write = clusterip_proc_write,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = clusterip_proc_release,
|
.proc_release = clusterip_proc_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* CONFIG_PROC_FS */
|
#endif /* CONFIG_PROC_FS */
|
||||||
|
|
|
@ -237,11 +237,11 @@ static int rt_cache_seq_open(struct inode *inode, struct file *file)
|
||||||
return seq_open(file, &rt_cache_seq_ops);
|
return seq_open(file, &rt_cache_seq_ops);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations rt_cache_seq_fops = {
|
static const struct proc_ops rt_cache_proc_ops = {
|
||||||
.open = rt_cache_seq_open,
|
.proc_open = rt_cache_seq_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = seq_release,
|
.proc_release = seq_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -328,11 +328,11 @@ static int rt_cpu_seq_open(struct inode *inode, struct file *file)
|
||||||
return seq_open(file, &rt_cpu_seq_ops);
|
return seq_open(file, &rt_cpu_seq_ops);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations rt_cpu_seq_fops = {
|
static const struct proc_ops rt_cpu_proc_ops = {
|
||||||
.open = rt_cpu_seq_open,
|
.proc_open = rt_cpu_seq_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = seq_release,
|
.proc_release = seq_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_IP_ROUTE_CLASSID
|
#ifdef CONFIG_IP_ROUTE_CLASSID
|
||||||
|
@ -366,12 +366,12 @@ static int __net_init ip_rt_do_proc_init(struct net *net)
|
||||||
struct proc_dir_entry *pde;
|
struct proc_dir_entry *pde;
|
||||||
|
|
||||||
pde = proc_create("rt_cache", 0444, net->proc_net,
|
pde = proc_create("rt_cache", 0444, net->proc_net,
|
||||||
&rt_cache_seq_fops);
|
&rt_cache_proc_ops);
|
||||||
if (!pde)
|
if (!pde)
|
||||||
goto err1;
|
goto err1;
|
||||||
|
|
||||||
pde = proc_create("rt_cache", 0444,
|
pde = proc_create("rt_cache", 0444,
|
||||||
net->proc_net_stat, &rt_cpu_seq_fops);
|
net->proc_net_stat, &rt_cpu_proc_ops);
|
||||||
if (!pde)
|
if (!pde)
|
||||||
goto err2;
|
goto err2;
|
||||||
|
|
||||||
|
|
|
@ -103,7 +103,7 @@ static DEFINE_SPINLOCK(recent_lock);
|
||||||
static DEFINE_MUTEX(recent_mutex);
|
static DEFINE_MUTEX(recent_mutex);
|
||||||
|
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_PROC_FS
|
||||||
static const struct file_operations recent_mt_fops;
|
static const struct proc_ops recent_mt_proc_ops;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static u_int32_t hash_rnd __read_mostly;
|
static u_int32_t hash_rnd __read_mostly;
|
||||||
|
@ -405,7 +405,7 @@ static int recent_mt_check(const struct xt_mtchk_param *par,
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
pde = proc_create_data(t->name, ip_list_perms, recent_net->xt_recent,
|
pde = proc_create_data(t->name, ip_list_perms, recent_net->xt_recent,
|
||||||
&recent_mt_fops, t);
|
&recent_mt_proc_ops, t);
|
||||||
if (pde == NULL) {
|
if (pde == NULL) {
|
||||||
recent_table_free(t);
|
recent_table_free(t);
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
|
@ -616,13 +616,12 @@ recent_mt_proc_write(struct file *file, const char __user *input,
|
||||||
return size + 1;
|
return size + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations recent_mt_fops = {
|
static const struct proc_ops recent_mt_proc_ops = {
|
||||||
.open = recent_seq_open,
|
.proc_open = recent_seq_open,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.write = recent_mt_proc_write,
|
.proc_write = recent_mt_proc_write,
|
||||||
.release = seq_release_private,
|
.proc_release = seq_release_private,
|
||||||
.owner = THIS_MODULE,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __net_init recent_proc_net_init(struct net *net)
|
static int __net_init recent_proc_net_init(struct net *net)
|
||||||
|
|
|
@ -1428,10 +1428,10 @@ static ssize_t read_gssp(struct file *file, char __user *buf,
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations use_gss_proxy_ops = {
|
static const struct proc_ops use_gss_proxy_proc_ops = {
|
||||||
.open = nonseekable_open,
|
.proc_open = nonseekable_open,
|
||||||
.write = write_gssp,
|
.proc_write = write_gssp,
|
||||||
.read = read_gssp,
|
.proc_read = read_gssp,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int create_use_gss_proxy_proc_entry(struct net *net)
|
static int create_use_gss_proxy_proc_entry(struct net *net)
|
||||||
|
@ -1442,7 +1442,7 @@ static int create_use_gss_proxy_proc_entry(struct net *net)
|
||||||
sn->use_gss_proxy = -1;
|
sn->use_gss_proxy = -1;
|
||||||
*p = proc_create_data("use-gss-proxy", S_IFREG | 0600,
|
*p = proc_create_data("use-gss-proxy", S_IFREG | 0600,
|
||||||
sn->proc_net_rpc,
|
sn->proc_net_rpc,
|
||||||
&use_gss_proxy_ops, net);
|
&use_gss_proxy_proc_ops, net);
|
||||||
if (!*p)
|
if (!*p)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
init_gssp_clnt(sn);
|
init_gssp_clnt(sn);
|
||||||
|
|
|
@ -1571,15 +1571,14 @@ static int cache_release_procfs(struct inode *inode, struct file *filp)
|
||||||
return cache_release(inode, filp, cd);
|
return cache_release(inode, filp, cd);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations cache_file_operations_procfs = {
|
static const struct proc_ops cache_channel_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_lseek = no_llseek,
|
||||||
.llseek = no_llseek,
|
.proc_read = cache_read_procfs,
|
||||||
.read = cache_read_procfs,
|
.proc_write = cache_write_procfs,
|
||||||
.write = cache_write_procfs,
|
.proc_poll = cache_poll_procfs,
|
||||||
.poll = cache_poll_procfs,
|
.proc_ioctl = cache_ioctl_procfs, /* for FIONREAD */
|
||||||
.unlocked_ioctl = cache_ioctl_procfs, /* for FIONREAD */
|
.proc_open = cache_open_procfs,
|
||||||
.open = cache_open_procfs,
|
.proc_release = cache_release_procfs,
|
||||||
.release = cache_release_procfs,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int content_open_procfs(struct inode *inode, struct file *filp)
|
static int content_open_procfs(struct inode *inode, struct file *filp)
|
||||||
|
@ -1596,11 +1595,11 @@ static int content_release_procfs(struct inode *inode, struct file *filp)
|
||||||
return content_release(inode, filp, cd);
|
return content_release(inode, filp, cd);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations content_file_operations_procfs = {
|
static const struct proc_ops content_proc_ops = {
|
||||||
.open = content_open_procfs,
|
.proc_open = content_open_procfs,
|
||||||
.read = seq_read,
|
.proc_read = seq_read,
|
||||||
.llseek = seq_lseek,
|
.proc_lseek = seq_lseek,
|
||||||
.release = content_release_procfs,
|
.proc_release = content_release_procfs,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int open_flush_procfs(struct inode *inode, struct file *filp)
|
static int open_flush_procfs(struct inode *inode, struct file *filp)
|
||||||
|
@ -1634,12 +1633,12 @@ static ssize_t write_flush_procfs(struct file *filp,
|
||||||
return write_flush(filp, buf, count, ppos, cd);
|
return write_flush(filp, buf, count, ppos, cd);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations cache_flush_operations_procfs = {
|
static const struct proc_ops cache_flush_proc_ops = {
|
||||||
.open = open_flush_procfs,
|
.proc_open = open_flush_procfs,
|
||||||
.read = read_flush_procfs,
|
.proc_read = read_flush_procfs,
|
||||||
.write = write_flush_procfs,
|
.proc_write = write_flush_procfs,
|
||||||
.release = release_flush_procfs,
|
.proc_release = release_flush_procfs,
|
||||||
.llseek = no_llseek,
|
.proc_lseek = no_llseek,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void remove_cache_proc_entries(struct cache_detail *cd)
|
static void remove_cache_proc_entries(struct cache_detail *cd)
|
||||||
|
@ -1662,19 +1661,19 @@ static int create_cache_proc_entries(struct cache_detail *cd, struct net *net)
|
||||||
goto out_nomem;
|
goto out_nomem;
|
||||||
|
|
||||||
p = proc_create_data("flush", S_IFREG | 0600,
|
p = proc_create_data("flush", S_IFREG | 0600,
|
||||||
cd->procfs, &cache_flush_operations_procfs, cd);
|
cd->procfs, &cache_flush_proc_ops, cd);
|
||||||
if (p == NULL)
|
if (p == NULL)
|
||||||
goto out_nomem;
|
goto out_nomem;
|
||||||
|
|
||||||
if (cd->cache_request || cd->cache_parse) {
|
if (cd->cache_request || cd->cache_parse) {
|
||||||
p = proc_create_data("channel", S_IFREG | 0600, cd->procfs,
|
p = proc_create_data("channel", S_IFREG | 0600, cd->procfs,
|
||||||
&cache_file_operations_procfs, cd);
|
&cache_channel_proc_ops, cd);
|
||||||
if (p == NULL)
|
if (p == NULL)
|
||||||
goto out_nomem;
|
goto out_nomem;
|
||||||
}
|
}
|
||||||
if (cd->cache_show) {
|
if (cd->cache_show) {
|
||||||
p = proc_create_data("content", S_IFREG | 0400, cd->procfs,
|
p = proc_create_data("content", S_IFREG | 0400, cd->procfs,
|
||||||
&content_file_operations_procfs, cd);
|
&content_proc_ops, cd);
|
||||||
if (p == NULL)
|
if (p == NULL)
|
||||||
goto out_nomem;
|
goto out_nomem;
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,12 +69,11 @@ static int rpc_proc_open(struct inode *inode, struct file *file)
|
||||||
return single_open(file, rpc_proc_show, PDE_DATA(inode));
|
return single_open(file, rpc_proc_show, PDE_DATA(inode));
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations rpc_proc_fops = {
|
static const struct proc_ops rpc_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_open = rpc_proc_open,
|
||||||
.open = rpc_proc_open,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_release = single_release,
|
||||||
.release = single_release,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -281,19 +280,19 @@ EXPORT_SYMBOL_GPL(rpc_clnt_show_stats);
|
||||||
*/
|
*/
|
||||||
static inline struct proc_dir_entry *
|
static inline struct proc_dir_entry *
|
||||||
do_register(struct net *net, const char *name, void *data,
|
do_register(struct net *net, const char *name, void *data,
|
||||||
const struct file_operations *fops)
|
const struct proc_ops *proc_ops)
|
||||||
{
|
{
|
||||||
struct sunrpc_net *sn;
|
struct sunrpc_net *sn;
|
||||||
|
|
||||||
dprintk("RPC: registering /proc/net/rpc/%s\n", name);
|
dprintk("RPC: registering /proc/net/rpc/%s\n", name);
|
||||||
sn = net_generic(net, sunrpc_net_id);
|
sn = net_generic(net, sunrpc_net_id);
|
||||||
return proc_create_data(name, 0, sn->proc_net_rpc, fops, data);
|
return proc_create_data(name, 0, sn->proc_net_rpc, proc_ops, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct proc_dir_entry *
|
struct proc_dir_entry *
|
||||||
rpc_proc_register(struct net *net, struct rpc_stat *statp)
|
rpc_proc_register(struct net *net, struct rpc_stat *statp)
|
||||||
{
|
{
|
||||||
return do_register(net, statp->program->name, statp, &rpc_proc_fops);
|
return do_register(net, statp->program->name, statp, &rpc_proc_ops);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(rpc_proc_register);
|
EXPORT_SYMBOL_GPL(rpc_proc_register);
|
||||||
|
|
||||||
|
@ -308,9 +307,9 @@ rpc_proc_unregister(struct net *net, const char *name)
|
||||||
EXPORT_SYMBOL_GPL(rpc_proc_unregister);
|
EXPORT_SYMBOL_GPL(rpc_proc_unregister);
|
||||||
|
|
||||||
struct proc_dir_entry *
|
struct proc_dir_entry *
|
||||||
svc_proc_register(struct net *net, struct svc_stat *statp, const struct file_operations *fops)
|
svc_proc_register(struct net *net, struct svc_stat *statp, const struct proc_ops *proc_ops)
|
||||||
{
|
{
|
||||||
return do_register(net, statp->program->pg_name, statp, fops);
|
return do_register(net, statp->program->pg_name, statp, proc_ops);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(svc_proc_register);
|
EXPORT_SYMBOL_GPL(svc_proc_register);
|
||||||
|
|
||||||
|
|
|
@ -142,11 +142,10 @@ static ssize_t fifo_read(struct file *file, char __user *buf,
|
||||||
return ret ? ret : copied;
|
return ret ? ret : copied;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations fifo_fops = {
|
static const struct proc_ops fifo_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_read = fifo_read,
|
||||||
.read = fifo_read,
|
.proc_write = fifo_write,
|
||||||
.write = fifo_write,
|
.proc_lseek = noop_llseek,
|
||||||
.llseek = noop_llseek,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init example_init(void)
|
static int __init example_init(void)
|
||||||
|
@ -169,7 +168,7 @@ static int __init example_init(void)
|
||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (proc_create(PROC_FIFO, 0, NULL, &fifo_fops) == NULL) {
|
if (proc_create(PROC_FIFO, 0, NULL, &fifo_proc_ops) == NULL) {
|
||||||
#ifdef DYNAMIC
|
#ifdef DYNAMIC
|
||||||
kfifo_free(&test);
|
kfifo_free(&test);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -135,11 +135,10 @@ static ssize_t fifo_read(struct file *file, char __user *buf,
|
||||||
return ret ? ret : copied;
|
return ret ? ret : copied;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations fifo_fops = {
|
static const struct proc_ops fifo_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_read = fifo_read,
|
||||||
.read = fifo_read,
|
.proc_write = fifo_write,
|
||||||
.write = fifo_write,
|
.proc_lseek = noop_llseek,
|
||||||
.llseek = noop_llseek,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init example_init(void)
|
static int __init example_init(void)
|
||||||
|
@ -160,7 +159,7 @@ static int __init example_init(void)
|
||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (proc_create(PROC_FIFO, 0, NULL, &fifo_fops) == NULL) {
|
if (proc_create(PROC_FIFO, 0, NULL, &fifo_proc_ops) == NULL) {
|
||||||
#ifdef DYNAMIC
|
#ifdef DYNAMIC
|
||||||
kfifo_free(&test);
|
kfifo_free(&test);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -149,11 +149,10 @@ static ssize_t fifo_read(struct file *file, char __user *buf,
|
||||||
return ret ? ret : copied;
|
return ret ? ret : copied;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations fifo_fops = {
|
static const struct proc_ops fifo_proc_ops = {
|
||||||
.owner = THIS_MODULE,
|
.proc_read = fifo_read,
|
||||||
.read = fifo_read,
|
.proc_write = fifo_write,
|
||||||
.write = fifo_write,
|
.proc_lseek = noop_llseek,
|
||||||
.llseek = noop_llseek,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init example_init(void)
|
static int __init example_init(void)
|
||||||
|
@ -176,7 +175,7 @@ static int __init example_init(void)
|
||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (proc_create(PROC_FIFO, 0, NULL, &fifo_fops) == NULL) {
|
if (proc_create(PROC_FIFO, 0, NULL, &fifo_proc_ops) == NULL) {
|
||||||
#ifdef DYNAMIC
|
#ifdef DYNAMIC
|
||||||
kfifo_free(&test);
|
kfifo_free(&test);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -282,17 +282,16 @@ static int snd_info_entry_release(struct inode *inode, struct file *file)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations snd_info_entry_operations =
|
static const struct proc_ops snd_info_entry_operations =
|
||||||
{
|
{
|
||||||
.owner = THIS_MODULE,
|
.proc_lseek = snd_info_entry_llseek,
|
||||||
.llseek = snd_info_entry_llseek,
|
.proc_read = snd_info_entry_read,
|
||||||
.read = snd_info_entry_read,
|
.proc_write = snd_info_entry_write,
|
||||||
.write = snd_info_entry_write,
|
.proc_poll = snd_info_entry_poll,
|
||||||
.poll = snd_info_entry_poll,
|
.proc_ioctl = snd_info_entry_ioctl,
|
||||||
.unlocked_ioctl = snd_info_entry_ioctl,
|
.proc_mmap = snd_info_entry_mmap,
|
||||||
.mmap = snd_info_entry_mmap,
|
.proc_open = snd_info_entry_open,
|
||||||
.open = snd_info_entry_open,
|
.proc_release = snd_info_entry_release,
|
||||||
.release = snd_info_entry_release,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -421,14 +420,13 @@ static int snd_info_text_entry_release(struct inode *inode, struct file *file)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations snd_info_text_entry_ops =
|
static const struct proc_ops snd_info_text_entry_ops =
|
||||||
{
|
{
|
||||||
.owner = THIS_MODULE,
|
.proc_open = snd_info_text_entry_open,
|
||||||
.open = snd_info_text_entry_open,
|
.proc_release = snd_info_text_entry_release,
|
||||||
.release = snd_info_text_entry_release,
|
.proc_write = snd_info_text_entry_write,
|
||||||
.write = snd_info_text_entry_write,
|
.proc_lseek = seq_lseek,
|
||||||
.llseek = seq_lseek,
|
.proc_read = seq_read,
|
||||||
.read = seq_read,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct snd_info_entry *create_subdir(struct module *mod,
|
static struct snd_info_entry *create_subdir(struct module *mod,
|
||||||
|
@ -810,7 +808,7 @@ static int __snd_info_register(struct snd_info_entry *entry)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
const struct file_operations *ops;
|
const struct proc_ops *ops;
|
||||||
if (entry->content == SNDRV_INFO_CONTENT_DATA)
|
if (entry->content == SNDRV_INFO_CONTENT_DATA)
|
||||||
ops = &snd_info_entry_operations;
|
ops = &snd_info_entry_operations;
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue