Mon Jul 19 01:33:53 2021 UTC ()
Abolish all the silly indirection macros for initializing vnode ops tables.

These are things of the form #define foofs_op genfs_op, or #define
foofs_op genfs_eopnotsupp, or similar. They serve no purpose besides
obfuscation, and have gotten cutpasted all over everywhere.

Part 3; cvs randomly didn't commit all the files the first time, still
hunting down the files it skipped.


(dholland)
diff -r1.171 -r1.172 src/sys/miscfs/kernfs/kernfs_vnops.c

cvs diff -r1.171 -r1.172 src/sys/miscfs/kernfs/kernfs_vnops.c (expand / switch to unified diff)

--- src/sys/miscfs/kernfs/kernfs_vnops.c 2021/07/18 23:56:13 1.171
+++ src/sys/miscfs/kernfs/kernfs_vnops.c 2021/07/19 01:33:53 1.172
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: kernfs_vnops.c,v 1.171 2021/07/18 23:56:13 dholland Exp $ */ 1/* $NetBSD: kernfs_vnops.c,v 1.172 2021/07/19 01:33:53 dholland Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 1992, 1993 4 * Copyright (c) 1992, 1993
5 * The Regents of the University of California. All rights reserved. 5 * The Regents of the University of California. All rights reserved.
6 * 6 *
7 * This code is derived from software donated to Berkeley by 7 * This code is derived from software donated to Berkeley by
8 * Jan-Simon Pendry. 8 * Jan-Simon Pendry.
9 * 9 *
10 * Redistribution and use in source and binary forms, with or without 10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions 11 * modification, are permitted provided that the following conditions
12 * are met: 12 * are met:
13 * 1. Redistributions of source code must retain the above copyright 13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer. 14 * notice, this list of conditions and the following disclaimer.
@@ -29,27 +29,27 @@ @@ -29,27 +29,27 @@
29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 * SUCH DAMAGE. 32 * SUCH DAMAGE.
33 * 33 *
34 * @(#)kernfs_vnops.c 8.15 (Berkeley) 5/21/95 34 * @(#)kernfs_vnops.c 8.15 (Berkeley) 5/21/95
35 */ 35 */
36 36
37/* 37/*
38 * Kernel parameter filesystem (/kern) 38 * Kernel parameter filesystem (/kern)
39 */ 39 */
40 40
41#include <sys/cdefs.h> 41#include <sys/cdefs.h>
42__KERNEL_RCSID(0, "$NetBSD: kernfs_vnops.c,v 1.171 2021/07/18 23:56:13 dholland Exp $"); 42__KERNEL_RCSID(0, "$NetBSD: kernfs_vnops.c,v 1.172 2021/07/19 01:33:53 dholland Exp $");
43 43
44#include <sys/param.h> 44#include <sys/param.h>
45#include <sys/systm.h> 45#include <sys/systm.h>
46#include <sys/kernel.h> 46#include <sys/kernel.h>
47#include <sys/vmmeter.h> 47#include <sys/vmmeter.h>
48#include <sys/time.h> 48#include <sys/time.h>
49#include <sys/proc.h> 49#include <sys/proc.h>
50#include <sys/vnode.h> 50#include <sys/vnode.h>
51#include <sys/malloc.h> 51#include <sys/malloc.h>
52#include <sys/file.h> 52#include <sys/file.h>
53#include <sys/stat.h> 53#include <sys/stat.h>
54#include <sys/mount.h> 54#include <sys/mount.h>
55#include <sys/namei.h> 55#include <sys/namei.h>
@@ -127,139 +127,118 @@ const struct kernfs_fileop kernfs_defaul @@ -127,139 +127,118 @@ const struct kernfs_fileop kernfs_defaul
127 { .kf_fileop = KERNFS_XWRITE }, 127 { .kf_fileop = KERNFS_XWRITE },
128 { .kf_fileop = KERNFS_FILEOP_OPEN }, 128 { .kf_fileop = KERNFS_FILEOP_OPEN },
129 { .kf_fileop = KERNFS_FILEOP_GETATTR, 129 { .kf_fileop = KERNFS_FILEOP_GETATTR,
130 .kf_vop = kernfs_default_fileop_getattr }, 130 .kf_vop = kernfs_default_fileop_getattr },
131 { .kf_fileop = KERNFS_FILEOP_IOCTL }, 131 { .kf_fileop = KERNFS_FILEOP_IOCTL },
132 { .kf_fileop = KERNFS_FILEOP_CLOSE }, 132 { .kf_fileop = KERNFS_FILEOP_CLOSE },
133 { .kf_fileop = KERNFS_FILEOP_READ,  133 { .kf_fileop = KERNFS_FILEOP_READ,
134 .kf_vop = kernfs_default_xread }, 134 .kf_vop = kernfs_default_xread },
135 { .kf_fileop = KERNFS_FILEOP_WRITE,  135 { .kf_fileop = KERNFS_FILEOP_WRITE,
136 .kf_vop = kernfs_default_xwrite }, 136 .kf_vop = kernfs_default_xwrite },
137}; 137};
138 138
139int kernfs_lookup(void *); 139int kernfs_lookup(void *);
140#define kernfs_create genfs_eopnotsupp 
141#define kernfs_mknod genfs_eopnotsupp 
142int kernfs_open(void *); 140int kernfs_open(void *);
143int kernfs_close(void *); 141int kernfs_close(void *);
144int kernfs_access(void *); 142int kernfs_access(void *);
145int kernfs_getattr(void *); 143int kernfs_getattr(void *);
146int kernfs_setattr(void *); 144int kernfs_setattr(void *);
147int kernfs_read(void *); 145int kernfs_read(void *);
148int kernfs_write(void *); 146int kernfs_write(void *);
149#define kernfs_fcntl genfs_fcntl 
150int kernfs_ioctl(void *); 147int kernfs_ioctl(void *);
151#define kernfs_poll genfs_poll 
152#define kernfs_revoke genfs_revoke 
153#define kernfs_fsync genfs_nullop 
154#define kernfs_seek genfs_nullop 
155#define kernfs_remove genfs_eopnotsupp 
156int kernfs_link(void *); 148int kernfs_link(void *);
157#define kernfs_rename genfs_eopnotsupp 
158#define kernfs_mkdir genfs_eopnotsupp 
159#define kernfs_rmdir genfs_eopnotsupp 
160int kernfs_symlink(void *); 149int kernfs_symlink(void *);
161int kernfs_readdir(void *); 150int kernfs_readdir(void *);
162#define kernfs_readlink genfs_eopnotsupp 
163#define kernfs_abortop genfs_abortop 
164int kernfs_inactive(void *); 151int kernfs_inactive(void *);
165int kernfs_reclaim(void *); 152int kernfs_reclaim(void *);
166#define kernfs_lock genfs_lock 
167#define kernfs_unlock genfs_unlock 
168#define kernfs_bmap genfs_badop 
169#define kernfs_strategy genfs_eopnotsupp 
170int kernfs_print(void *); 153int kernfs_print(void *);
171#define kernfs_islocked genfs_islocked 
172int kernfs_pathconf(void *); 154int kernfs_pathconf(void *);
173#define kernfs_advlock genfs_einval 
174#define kernfs_bwrite genfs_eopnotsupp 
175int kernfs_getpages(void *); 155int kernfs_getpages(void *);
176#define kernfs_putpages genfs_putpages 
177 156
178static int kernfs_xread(struct kernfs_node *, int, char **, 157static int kernfs_xread(struct kernfs_node *, int, char **,
179 size_t, size_t *); 158 size_t, size_t *);
180static int kernfs_xwrite(const struct kernfs_node *, char *, size_t); 159static int kernfs_xwrite(const struct kernfs_node *, char *, size_t);
181 160
182int (**kernfs_vnodeop_p)(void *); 161int (**kernfs_vnodeop_p)(void *);
183const struct vnodeopv_entry_desc kernfs_vnodeop_entries[] = { 162const struct vnodeopv_entry_desc kernfs_vnodeop_entries[] = {
184 { &vop_default_desc, vn_default_error }, 163 { &vop_default_desc, vn_default_error },
185 { &vop_parsepath_desc, genfs_parsepath }, /* parsepath */ 164 { &vop_parsepath_desc, genfs_parsepath }, /* parsepath */
186 { &vop_lookup_desc, kernfs_lookup }, /* lookup */ 165 { &vop_lookup_desc, kernfs_lookup }, /* lookup */
187 { &vop_create_desc, kernfs_create }, /* create */ 166 { &vop_create_desc, genfs_eopnotsupp }, /* create */
188 { &vop_mknod_desc, kernfs_mknod }, /* mknod */ 167 { &vop_mknod_desc, genfs_eopnotsupp }, /* mknod */
189 { &vop_open_desc, kernfs_open }, /* open */ 168 { &vop_open_desc, kernfs_open }, /* open */
190 { &vop_close_desc, kernfs_close }, /* close */ 169 { &vop_close_desc, kernfs_close }, /* close */
191 { &vop_access_desc, kernfs_access }, /* access */ 170 { &vop_access_desc, kernfs_access }, /* access */
192 { &vop_accessx_desc, genfs_accessx }, /* accessx */ 171 { &vop_accessx_desc, genfs_accessx }, /* accessx */
193 { &vop_getattr_desc, kernfs_getattr }, /* getattr */ 172 { &vop_getattr_desc, kernfs_getattr }, /* getattr */
194 { &vop_setattr_desc, kernfs_setattr }, /* setattr */ 173 { &vop_setattr_desc, kernfs_setattr }, /* setattr */
195 { &vop_read_desc, kernfs_read }, /* read */ 174 { &vop_read_desc, kernfs_read }, /* read */
196 { &vop_write_desc, kernfs_write }, /* write */ 175 { &vop_write_desc, kernfs_write }, /* write */
197 { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ 176 { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */
198 { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ 177 { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */
199 { &vop_fcntl_desc, kernfs_fcntl }, /* fcntl */ 178 { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */
200 { &vop_ioctl_desc, kernfs_ioctl }, /* ioctl */ 179 { &vop_ioctl_desc, kernfs_ioctl }, /* ioctl */
201 { &vop_poll_desc, kernfs_poll }, /* poll */ 180 { &vop_poll_desc, genfs_poll }, /* poll */
202 { &vop_kqfilter_desc, genfs_kqfilter }, /* kqfilter */ 181 { &vop_kqfilter_desc, genfs_kqfilter }, /* kqfilter */
203 { &vop_revoke_desc, kernfs_revoke }, /* revoke */ 182 { &vop_revoke_desc, genfs_revoke }, /* revoke */
204 { &vop_fsync_desc, kernfs_fsync }, /* fsync */ 183 { &vop_fsync_desc, genfs_nullop }, /* fsync */
205 { &vop_seek_desc, kernfs_seek }, /* seek */ 184 { &vop_seek_desc, genfs_nullop }, /* seek */
206 { &vop_remove_desc, kernfs_remove }, /* remove */ 185 { &vop_remove_desc, genfs_eopnotsupp }, /* remove */
207 { &vop_link_desc, kernfs_link }, /* link */ 186 { &vop_link_desc, kernfs_link }, /* link */
208 { &vop_rename_desc, kernfs_rename }, /* rename */ 187 { &vop_rename_desc, genfs_eopnotsupp }, /* rename */
209 { &vop_mkdir_desc, kernfs_mkdir }, /* mkdir */ 188 { &vop_mkdir_desc, genfs_eopnotsupp }, /* mkdir */
210 { &vop_rmdir_desc, kernfs_rmdir }, /* rmdir */ 189 { &vop_rmdir_desc, genfs_eopnotsupp }, /* rmdir */
211 { &vop_symlink_desc, kernfs_symlink }, /* symlink */ 190 { &vop_symlink_desc, kernfs_symlink }, /* symlink */
212 { &vop_readdir_desc, kernfs_readdir }, /* readdir */ 191 { &vop_readdir_desc, kernfs_readdir }, /* readdir */
213 { &vop_readlink_desc, kernfs_readlink }, /* readlink */ 192 { &vop_readlink_desc, genfs_eopnotsupp }, /* readlink */
214 { &vop_abortop_desc, kernfs_abortop }, /* abortop */ 193 { &vop_abortop_desc, genfs_abortop }, /* abortop */
215 { &vop_inactive_desc, kernfs_inactive }, /* inactive */ 194 { &vop_inactive_desc, kernfs_inactive }, /* inactive */
216 { &vop_reclaim_desc, kernfs_reclaim }, /* reclaim */ 195 { &vop_reclaim_desc, kernfs_reclaim }, /* reclaim */
217 { &vop_lock_desc, kernfs_lock }, /* lock */ 196 { &vop_lock_desc, genfs_lock }, /* lock */
218 { &vop_unlock_desc, kernfs_unlock }, /* unlock */ 197 { &vop_unlock_desc, genfs_unlock }, /* unlock */
219 { &vop_bmap_desc, kernfs_bmap }, /* bmap */ 198 { &vop_bmap_desc, genfs_badop }, /* bmap */
220 { &vop_strategy_desc, kernfs_strategy }, /* strategy */ 199 { &vop_strategy_desc, genfs_eopnotsupp }, /* strategy */
221 { &vop_print_desc, kernfs_print }, /* print */ 200 { &vop_print_desc, kernfs_print }, /* print */
222 { &vop_islocked_desc, kernfs_islocked }, /* islocked */ 201 { &vop_islocked_desc, genfs_islocked }, /* islocked */
223 { &vop_pathconf_desc, kernfs_pathconf }, /* pathconf */ 202 { &vop_pathconf_desc, kernfs_pathconf }, /* pathconf */
224 { &vop_advlock_desc, kernfs_advlock }, /* advlock */ 203 { &vop_advlock_desc, genfs_einval }, /* advlock */
225 { &vop_bwrite_desc, kernfs_bwrite }, /* bwrite */ 204 { &vop_bwrite_desc, genfs_eopnotsupp }, /* bwrite */
226 { &vop_getpages_desc, kernfs_getpages }, /* getpages */ 205 { &vop_getpages_desc, kernfs_getpages }, /* getpages */
227 { &vop_putpages_desc, kernfs_putpages }, /* putpages */ 206 { &vop_putpages_desc, genfs_putpages }, /* putpages */
228 { NULL, NULL } 207 { NULL, NULL }
229}; 208};
230const struct vnodeopv_desc kernfs_vnodeop_opv_desc = 209const struct vnodeopv_desc kernfs_vnodeop_opv_desc =
231 { &kernfs_vnodeop_p, kernfs_vnodeop_entries }; 210 { &kernfs_vnodeop_p, kernfs_vnodeop_entries };
232 211
233int (**kernfs_specop_p)(void *); 212int (**kernfs_specop_p)(void *);
234const struct vnodeopv_entry_desc kernfs_specop_entries[] = { 213const struct vnodeopv_entry_desc kernfs_specop_entries[] = {
235 { &vop_default_desc, vn_default_error }, 214 { &vop_default_desc, vn_default_error },
236 GENFS_SPECOP_ENTRIES, 215 GENFS_SPECOP_ENTRIES,
237 { &vop_close_desc, spec_close }, /* close */ 216 { &vop_close_desc, spec_close }, /* close */
238 { &vop_access_desc, kernfs_access }, /* access */ 217 { &vop_access_desc, kernfs_access }, /* access */
239 { &vop_accessx_desc, genfs_accessx }, /* accessx */ 218 { &vop_accessx_desc, genfs_accessx }, /* accessx */
240 { &vop_getattr_desc, kernfs_getattr }, /* getattr */ 219 { &vop_getattr_desc, kernfs_getattr }, /* getattr */
241 { &vop_setattr_desc, kernfs_setattr }, /* setattr */ 220 { &vop_setattr_desc, kernfs_setattr }, /* setattr */
242 { &vop_read_desc, spec_read }, /* read */ 221 { &vop_read_desc, spec_read }, /* read */
243 { &vop_write_desc, spec_write }, /* write */ 222 { &vop_write_desc, spec_write }, /* write */
244 { &vop_fcntl_desc, spec_fcntl }, /* fcntl */ 223 { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */
245 { &vop_fsync_desc, spec_fsync }, /* fsync */ 224 { &vop_fsync_desc, spec_fsync }, /* fsync */
246 { &vop_inactive_desc, kernfs_inactive }, /* inactive */ 225 { &vop_inactive_desc, kernfs_inactive }, /* inactive */
247 { &vop_reclaim_desc, kernfs_reclaim }, /* reclaim */ 226 { &vop_reclaim_desc, kernfs_reclaim }, /* reclaim */
248 { &vop_lock_desc, kernfs_lock }, /* lock */ 227 { &vop_lock_desc, genfs_lock }, /* lock */
249 { &vop_unlock_desc, kernfs_unlock }, /* unlock */ 228 { &vop_unlock_desc, genfs_unlock }, /* unlock */
250 { &vop_print_desc, kernfs_print }, /* print */ 229 { &vop_print_desc, kernfs_print }, /* print */
251 { &vop_islocked_desc, kernfs_islocked }, /* islocked */ 230 { &vop_islocked_desc, genfs_islocked }, /* islocked */
252 { &vop_bwrite_desc, spec_bwrite }, /* bwrite */ 231 { &vop_bwrite_desc, vn_bwrite }, /* bwrite */
253 { NULL, NULL } 232 { NULL, NULL }
254}; 233};
255const struct vnodeopv_desc kernfs_specop_opv_desc = 234const struct vnodeopv_desc kernfs_specop_opv_desc =
256 { &kernfs_specop_p, kernfs_specop_entries }; 235 { &kernfs_specop_p, kernfs_specop_entries };
257 236
258static inline int 237static inline int
259kernfs_fileop_compare(struct kernfs_fileop *a, struct kernfs_fileop *b) 238kernfs_fileop_compare(struct kernfs_fileop *a, struct kernfs_fileop *b)
260{ 239{
261 if (a->kf_type < b->kf_type) 240 if (a->kf_type < b->kf_type)
262 return -1; 241 return -1;
263 if (a->kf_type > b->kf_type) 242 if (a->kf_type > b->kf_type)
264 return 1; 243 return 1;
265 if (a->kf_fileop < b->kf_fileop) 244 if (a->kf_fileop < b->kf_fileop)