.. | .. |
---|
137 | 137 | return 0; |
---|
138 | 138 | } |
---|
139 | 139 | |
---|
| 140 | +static int nubus_rsrc_proc_open(struct inode *inode, struct file *file) |
---|
| 141 | +{ |
---|
| 142 | + return single_open(file, nubus_proc_rsrc_show, inode); |
---|
| 143 | +} |
---|
| 144 | + |
---|
| 145 | +static const struct proc_ops nubus_rsrc_proc_ops = { |
---|
| 146 | + .proc_open = nubus_rsrc_proc_open, |
---|
| 147 | + .proc_read = seq_read, |
---|
| 148 | + .proc_lseek = seq_lseek, |
---|
| 149 | + .proc_release = single_release, |
---|
| 150 | +}; |
---|
| 151 | + |
---|
140 | 152 | void nubus_proc_add_rsrc_mem(struct proc_dir_entry *procdir, |
---|
141 | 153 | const struct nubus_dirent *ent, |
---|
142 | 154 | unsigned int size) |
---|
.. | .. |
---|
152 | 164 | pde_data = nubus_proc_alloc_pde_data(nubus_dirptr(ent), size); |
---|
153 | 165 | else |
---|
154 | 166 | pde_data = NULL; |
---|
155 | | - proc_create_single_data(name, S_IFREG | 0444, procdir, |
---|
156 | | - nubus_proc_rsrc_show, pde_data); |
---|
| 167 | + proc_create_data(name, S_IFREG | 0444, procdir, |
---|
| 168 | + &nubus_rsrc_proc_ops, pde_data); |
---|
157 | 169 | } |
---|
158 | 170 | |
---|
159 | 171 | void nubus_proc_add_rsrc(struct proc_dir_entry *procdir, |
---|
.. | .. |
---|
166 | 178 | return; |
---|
167 | 179 | |
---|
168 | 180 | snprintf(name, sizeof(name), "%x", ent->type); |
---|
169 | | - proc_create_single_data(name, S_IFREG | 0444, procdir, |
---|
170 | | - nubus_proc_rsrc_show, |
---|
171 | | - nubus_proc_alloc_pde_data(data, 0)); |
---|
| 181 | + proc_create_data(name, S_IFREG | 0444, procdir, |
---|
| 182 | + &nubus_rsrc_proc_ops, |
---|
| 183 | + nubus_proc_alloc_pde_data(data, 0)); |
---|
172 | 184 | } |
---|
173 | 185 | |
---|
174 | 186 | /* |
---|