Project

General

Profile

Statistics
| Revision:

root / lab4 / .minix-src / include / sys / vnode_if.h @ 13

History | View | Annotate | Download (15.7 KB)

1 13 up20180614
/*        $NetBSD: vnode_if.h,v 1.90 2015/04/20 23:11:27 riastradh Exp $        */
2
3
/*
4
 * Warning: DO NOT EDIT! This file is automatically generated!
5
 * (Modifications made here may easily be lost!)
6
 *
7
 * Created from the file:
8
 *        NetBSD: vnode_if.src,v 1.69 2015/04/20 23:08:07 riastradh Exp
9
 * by the script:
10
 *        NetBSD: vnode_if.sh,v 1.60 2014/01/13 12:07:55 hannken Exp
11
 */
12
13
/*
14
 * Copyright (c) 1992, 1993, 1994, 1995
15
 *        The Regents of the University of California.  All rights reserved.
16
 *
17
 * Redistribution and use in source and binary forms, with or without
18
 * modification, are permitted provided that the following conditions
19
 * are met:
20
 * 1. Redistributions of source code must retain the above copyright
21
 *    notice, this list of conditions and the following disclaimer.
22
 * 2. Redistributions in binary form must reproduce the above copyright
23
 *    notice, this list of conditions and the following disclaimer in the
24
 *    documentation and/or other materials provided with the distribution.
25
 * 3. Neither the name of the University nor the names of its contributors
26
 *    may be used to endorse or promote products derived from this software
27
 *    without specific prior written permission.
28
 *
29
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
30
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
31
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
32
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
33
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
34
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
35
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
36
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
37
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
38
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
39
 * SUCH DAMAGE.
40
 */
41
42
#ifndef _SYS_VNODE_IF_H_
43
#define _SYS_VNODE_IF_H_
44
45
extern const struct vnodeop_desc vop_default_desc;
46
47
struct buf;
48
49
#ifndef _KERNEL
50
#include <stdbool.h>
51
#endif
52
53
#define VOP_BWRITE_DESCOFFSET 1
54
struct vop_bwrite_args {
55
        const struct vnodeop_desc *a_desc;
56
        struct vnode *a_vp;
57
        struct buf *a_bp;
58
};
59
extern const struct vnodeop_desc vop_bwrite_desc;
60
int VOP_BWRITE(struct vnode *, struct buf *);
61
62
#define VOP_LOOKUP_DESCOFFSET 2
63
struct vop_lookup_v2_args {
64
        const struct vnodeop_desc *a_desc;
65
        struct vnode *a_dvp;
66
        struct vnode **a_vpp;
67
        struct componentname *a_cnp;
68
};
69
extern const struct vnodeop_desc vop_lookup_desc;
70
int VOP_LOOKUP(struct vnode *, struct vnode **, struct componentname *);
71
72
#define VOP_CREATE_DESCOFFSET 3
73
struct vop_create_v3_args {
74
        const struct vnodeop_desc *a_desc;
75
        struct vnode *a_dvp;
76
        struct vnode **a_vpp;
77
        struct componentname *a_cnp;
78
        struct vattr *a_vap;
79
};
80
extern const struct vnodeop_desc vop_create_desc;
81
int VOP_CREATE(struct vnode *, struct vnode **, struct componentname *,
82
    struct vattr *);
83
84
#define VOP_MKNOD_DESCOFFSET 4
85
struct vop_mknod_v3_args {
86
        const struct vnodeop_desc *a_desc;
87
        struct vnode *a_dvp;
88
        struct vnode **a_vpp;
89
        struct componentname *a_cnp;
90
        struct vattr *a_vap;
91
};
92
extern const struct vnodeop_desc vop_mknod_desc;
93
int VOP_MKNOD(struct vnode *, struct vnode **, struct componentname *,
94
    struct vattr *);
95
96
#define VOP_OPEN_DESCOFFSET 5
97
struct vop_open_args {
98
        const struct vnodeop_desc *a_desc;
99
        struct vnode *a_vp;
100
        int a_mode;
101
        kauth_cred_t a_cred;
102
};
103
extern const struct vnodeop_desc vop_open_desc;
104
int VOP_OPEN(struct vnode *, int, kauth_cred_t);
105
106
#define VOP_CLOSE_DESCOFFSET 6
107
struct vop_close_args {
108
        const struct vnodeop_desc *a_desc;
109
        struct vnode *a_vp;
110
        int a_fflag;
111
        kauth_cred_t a_cred;
112
};
113
extern const struct vnodeop_desc vop_close_desc;
114
int VOP_CLOSE(struct vnode *, int, kauth_cred_t);
115
116
#define VOP_ACCESS_DESCOFFSET 7
117
struct vop_access_args {
118
        const struct vnodeop_desc *a_desc;
119
        struct vnode *a_vp;
120
        int a_mode;
121
        kauth_cred_t a_cred;
122
};
123
extern const struct vnodeop_desc vop_access_desc;
124
int VOP_ACCESS(struct vnode *, int, kauth_cred_t);
125
126
#define VOP_GETATTR_DESCOFFSET 8
127
struct vop_getattr_args {
128
        const struct vnodeop_desc *a_desc;
129
        struct vnode *a_vp;
130
        struct vattr *a_vap;
131
        kauth_cred_t a_cred;
132
};
133
extern const struct vnodeop_desc vop_getattr_desc;
134
int VOP_GETATTR(struct vnode *, struct vattr *, kauth_cred_t);
135
136
#define VOP_SETATTR_DESCOFFSET 9
137
struct vop_setattr_args {
138
        const struct vnodeop_desc *a_desc;
139
        struct vnode *a_vp;
140
        struct vattr *a_vap;
141
        kauth_cred_t a_cred;
142
};
143
extern const struct vnodeop_desc vop_setattr_desc;
144
int VOP_SETATTR(struct vnode *, struct vattr *, kauth_cred_t);
145
146
#define VOP_READ_DESCOFFSET 10
147
struct vop_read_args {
148
        const struct vnodeop_desc *a_desc;
149
        struct vnode *a_vp;
150
        struct uio *a_uio;
151
        int a_ioflag;
152
        kauth_cred_t a_cred;
153
};
154
extern const struct vnodeop_desc vop_read_desc;
155
int VOP_READ(struct vnode *, struct uio *, int, kauth_cred_t);
156
157
#define VOP_WRITE_DESCOFFSET 11
158
struct vop_write_args {
159
        const struct vnodeop_desc *a_desc;
160
        struct vnode *a_vp;
161
        struct uio *a_uio;
162
        int a_ioflag;
163
        kauth_cred_t a_cred;
164
};
165
extern const struct vnodeop_desc vop_write_desc;
166
int VOP_WRITE(struct vnode *, struct uio *, int, kauth_cred_t);
167
168
#define VOP_FALLOCATE_DESCOFFSET 12
169
struct vop_fallocate_args {
170
        const struct vnodeop_desc *a_desc;
171
        struct vnode *a_vp;
172
        off_t a_pos;
173
        off_t a_len;
174
};
175
extern const struct vnodeop_desc vop_fallocate_desc;
176
int VOP_FALLOCATE(struct vnode *, off_t, off_t);
177
178
#define VOP_FDISCARD_DESCOFFSET 13
179
struct vop_fdiscard_args {
180
        const struct vnodeop_desc *a_desc;
181
        struct vnode *a_vp;
182
        off_t a_pos;
183
        off_t a_len;
184
};
185
extern const struct vnodeop_desc vop_fdiscard_desc;
186
int VOP_FDISCARD(struct vnode *, off_t, off_t);
187
188
#define VOP_IOCTL_DESCOFFSET 14
189
struct vop_ioctl_args {
190
        const struct vnodeop_desc *a_desc;
191
        struct vnode *a_vp;
192
        u_long a_command;
193
        void *a_data;
194
        int a_fflag;
195
        kauth_cred_t a_cred;
196
};
197
extern const struct vnodeop_desc vop_ioctl_desc;
198
int VOP_IOCTL(struct vnode *, u_long, void *, int, kauth_cred_t);
199
200
#define VOP_FCNTL_DESCOFFSET 15
201
struct vop_fcntl_args {
202
        const struct vnodeop_desc *a_desc;
203
        struct vnode *a_vp;
204
        u_int a_command;
205
        void *a_data;
206
        int a_fflag;
207
        kauth_cred_t a_cred;
208
};
209
extern const struct vnodeop_desc vop_fcntl_desc;
210
int VOP_FCNTL(struct vnode *, u_int, void *, int, kauth_cred_t);
211
212
#define VOP_POLL_DESCOFFSET 16
213
struct vop_poll_args {
214
        const struct vnodeop_desc *a_desc;
215
        struct vnode *a_vp;
216
        int a_events;
217
};
218
extern const struct vnodeop_desc vop_poll_desc;
219
int VOP_POLL(struct vnode *, int);
220
221
#define VOP_KQFILTER_DESCOFFSET 17
222
struct vop_kqfilter_args {
223
        const struct vnodeop_desc *a_desc;
224
        struct vnode *a_vp;
225
        struct knote *a_kn;
226
};
227
extern const struct vnodeop_desc vop_kqfilter_desc;
228
int VOP_KQFILTER(struct vnode *, struct knote *);
229
230
#define VOP_REVOKE_DESCOFFSET 18
231
struct vop_revoke_args {
232
        const struct vnodeop_desc *a_desc;
233
        struct vnode *a_vp;
234
        int a_flags;
235
};
236
extern const struct vnodeop_desc vop_revoke_desc;
237
int VOP_REVOKE(struct vnode *, int);
238
239
#define VOP_MMAP_DESCOFFSET 19
240
struct vop_mmap_args {
241
        const struct vnodeop_desc *a_desc;
242
        struct vnode *a_vp;
243
        vm_prot_t a_prot;
244
        kauth_cred_t a_cred;
245
};
246
extern const struct vnodeop_desc vop_mmap_desc;
247
int VOP_MMAP(struct vnode *, vm_prot_t, kauth_cred_t);
248
249
#define VOP_FSYNC_DESCOFFSET 20
250
struct vop_fsync_args {
251
        const struct vnodeop_desc *a_desc;
252
        struct vnode *a_vp;
253
        kauth_cred_t a_cred;
254
        int a_flags;
255
        off_t a_offlo;
256
        off_t a_offhi;
257
};
258
extern const struct vnodeop_desc vop_fsync_desc;
259
int VOP_FSYNC(struct vnode *, kauth_cred_t, int, off_t, off_t);
260
261
#define VOP_SEEK_DESCOFFSET 21
262
struct vop_seek_args {
263
        const struct vnodeop_desc *a_desc;
264
        struct vnode *a_vp;
265
        off_t a_oldoff;
266
        off_t a_newoff;
267
        kauth_cred_t a_cred;
268
};
269
extern const struct vnodeop_desc vop_seek_desc;
270
int VOP_SEEK(struct vnode *, off_t, off_t, kauth_cred_t);
271
272
#define VOP_REMOVE_DESCOFFSET 22
273
struct vop_remove_args {
274
        const struct vnodeop_desc *a_desc;
275
        struct vnode *a_dvp;
276
        struct vnode *a_vp;
277
        struct componentname *a_cnp;
278
};
279
extern const struct vnodeop_desc vop_remove_desc;
280
int VOP_REMOVE(struct vnode *, struct vnode *, struct componentname *);
281
282
#define VOP_LINK_DESCOFFSET 23
283
struct vop_link_v2_args {
284
        const struct vnodeop_desc *a_desc;
285
        struct vnode *a_dvp;
286
        struct vnode *a_vp;
287
        struct componentname *a_cnp;
288
};
289
extern const struct vnodeop_desc vop_link_desc;
290
int VOP_LINK(struct vnode *, struct vnode *, struct componentname *);
291
292
#define VOP_RENAME_DESCOFFSET 24
293
struct vop_rename_args {
294
        const struct vnodeop_desc *a_desc;
295
        struct vnode *a_fdvp;
296
        struct vnode *a_fvp;
297
        struct componentname *a_fcnp;
298
        struct vnode *a_tdvp;
299
        struct vnode *a_tvp;
300
        struct componentname *a_tcnp;
301
};
302
extern const struct vnodeop_desc vop_rename_desc;
303
int VOP_RENAME(struct vnode *, struct vnode *, struct componentname *,
304
    struct vnode *, struct vnode *, struct componentname *);
305
306
#define VOP_MKDIR_DESCOFFSET 25
307
struct vop_mkdir_v3_args {
308
        const struct vnodeop_desc *a_desc;
309
        struct vnode *a_dvp;
310
        struct vnode **a_vpp;
311
        struct componentname *a_cnp;
312
        struct vattr *a_vap;
313
};
314
extern const struct vnodeop_desc vop_mkdir_desc;
315
int VOP_MKDIR(struct vnode *, struct vnode **, struct componentname *,
316
    struct vattr *);
317
318
#define VOP_RMDIR_DESCOFFSET 26
319
struct vop_rmdir_args {
320
        const struct vnodeop_desc *a_desc;
321
        struct vnode *a_dvp;
322
        struct vnode *a_vp;
323
        struct componentname *a_cnp;
324
};
325
extern const struct vnodeop_desc vop_rmdir_desc;
326
int VOP_RMDIR(struct vnode *, struct vnode *, struct componentname *);
327
328
#define VOP_SYMLINK_DESCOFFSET 27
329
struct vop_symlink_v3_args {
330
        const struct vnodeop_desc *a_desc;
331
        struct vnode *a_dvp;
332
        struct vnode **a_vpp;
333
        struct componentname *a_cnp;
334
        struct vattr *a_vap;
335
        char *a_target;
336
};
337
extern const struct vnodeop_desc vop_symlink_desc;
338
int VOP_SYMLINK(struct vnode *, struct vnode **, struct componentname *,
339
    struct vattr *, char *);
340
341
#define VOP_READDIR_DESCOFFSET 28
342
struct vop_readdir_args {
343
        const struct vnodeop_desc *a_desc;
344
        struct vnode *a_vp;
345
        struct uio *a_uio;
346
        kauth_cred_t a_cred;
347
        int *a_eofflag;
348
        off_t **a_cookies;
349
        int *a_ncookies;
350
};
351
extern const struct vnodeop_desc vop_readdir_desc;
352
int VOP_READDIR(struct vnode *, struct uio *, kauth_cred_t, int *, off_t **,
353
    int *);
354
355
#define VOP_READLINK_DESCOFFSET 29
356
struct vop_readlink_args {
357
        const struct vnodeop_desc *a_desc;
358
        struct vnode *a_vp;
359
        struct uio *a_uio;
360
        kauth_cred_t a_cred;
361
};
362
extern const struct vnodeop_desc vop_readlink_desc;
363
int VOP_READLINK(struct vnode *, struct uio *, kauth_cred_t);
364
365
#define VOP_ABORTOP_DESCOFFSET 30
366
struct vop_abortop_args {
367
        const struct vnodeop_desc *a_desc;
368
        struct vnode *a_dvp;
369
        struct componentname *a_cnp;
370
};
371
extern const struct vnodeop_desc vop_abortop_desc;
372
int VOP_ABORTOP(struct vnode *, struct componentname *);
373
374
#define VOP_INACTIVE_DESCOFFSET 31
375
struct vop_inactive_args {
376
        const struct vnodeop_desc *a_desc;
377
        struct vnode *a_vp;
378
        bool *a_recycle;
379
};
380
extern const struct vnodeop_desc vop_inactive_desc;
381
int VOP_INACTIVE(struct vnode *, bool *);
382
383
#define VOP_RECLAIM_DESCOFFSET 32
384
struct vop_reclaim_args {
385
        const struct vnodeop_desc *a_desc;
386
        struct vnode *a_vp;
387
};
388
extern const struct vnodeop_desc vop_reclaim_desc;
389
int VOP_RECLAIM(struct vnode *);
390
391
#define VOP_LOCK_DESCOFFSET 33
392
struct vop_lock_args {
393
        const struct vnodeop_desc *a_desc;
394
        struct vnode *a_vp;
395
        int a_flags;
396
};
397
extern const struct vnodeop_desc vop_lock_desc;
398
int VOP_LOCK(struct vnode *, int);
399
400
#define VOP_UNLOCK_DESCOFFSET 34
401
struct vop_unlock_args {
402
        const struct vnodeop_desc *a_desc;
403
        struct vnode *a_vp;
404
};
405
extern const struct vnodeop_desc vop_unlock_desc;
406
int VOP_UNLOCK(struct vnode *);
407
408
#define VOP_BMAP_DESCOFFSET 35
409
struct vop_bmap_args {
410
        const struct vnodeop_desc *a_desc;
411
        struct vnode *a_vp;
412
        daddr_t a_bn;
413
        struct vnode **a_vpp;
414
        daddr_t *a_bnp;
415
        int *a_runp;
416
};
417
extern const struct vnodeop_desc vop_bmap_desc;
418
int VOP_BMAP(struct vnode *, daddr_t, struct vnode **, daddr_t *, int *);
419
420
#define VOP_STRATEGY_DESCOFFSET 36
421
struct vop_strategy_args {
422
        const struct vnodeop_desc *a_desc;
423
        struct vnode *a_vp;
424
        struct buf *a_bp;
425
};
426
extern const struct vnodeop_desc vop_strategy_desc;
427
int VOP_STRATEGY(struct vnode *, struct buf *);
428
429
#define VOP_PRINT_DESCOFFSET 37
430
struct vop_print_args {
431
        const struct vnodeop_desc *a_desc;
432
        struct vnode *a_vp;
433
};
434
extern const struct vnodeop_desc vop_print_desc;
435
int VOP_PRINT(struct vnode *);
436
437
#define VOP_ISLOCKED_DESCOFFSET 38
438
struct vop_islocked_args {
439
        const struct vnodeop_desc *a_desc;
440
        struct vnode *a_vp;
441
};
442
extern const struct vnodeop_desc vop_islocked_desc;
443
int VOP_ISLOCKED(struct vnode *);
444
445
#define VOP_PATHCONF_DESCOFFSET 39
446
struct vop_pathconf_args {
447
        const struct vnodeop_desc *a_desc;
448
        struct vnode *a_vp;
449
        int a_name;
450
        register_t *a_retval;
451
};
452
extern const struct vnodeop_desc vop_pathconf_desc;
453
int VOP_PATHCONF(struct vnode *, int, register_t *);
454
455
#define VOP_ADVLOCK_DESCOFFSET 40
456
struct vop_advlock_args {
457
        const struct vnodeop_desc *a_desc;
458
        struct vnode *a_vp;
459
        void *a_id;
460
        int a_op;
461
        struct flock *a_fl;
462
        int a_flags;
463
};
464
extern const struct vnodeop_desc vop_advlock_desc;
465
int VOP_ADVLOCK(struct vnode *, void *, int, struct flock *, int);
466
467
#define VOP_WHITEOUT_DESCOFFSET 41
468
struct vop_whiteout_args {
469
        const struct vnodeop_desc *a_desc;
470
        struct vnode *a_dvp;
471
        struct componentname *a_cnp;
472
        int a_flags;
473
};
474
extern const struct vnodeop_desc vop_whiteout_desc;
475
int VOP_WHITEOUT(struct vnode *, struct componentname *, int);
476
477
#define VOP_GETPAGES_DESCOFFSET 42
478
struct vop_getpages_args {
479
        const struct vnodeop_desc *a_desc;
480
        struct vnode *a_vp;
481
        voff_t a_offset;
482
        struct vm_page **a_m;
483
        int *a_count;
484
        int a_centeridx;
485
        vm_prot_t a_access_type;
486
        int a_advice;
487
        int a_flags;
488
};
489
extern const struct vnodeop_desc vop_getpages_desc;
490
int VOP_GETPAGES(struct vnode *, voff_t, struct vm_page **, int *, int,
491
    vm_prot_t, int, int);
492
493
#define VOP_PUTPAGES_DESCOFFSET 43
494
struct vop_putpages_args {
495
        const struct vnodeop_desc *a_desc;
496
        struct vnode *a_vp;
497
        voff_t a_offlo;
498
        voff_t a_offhi;
499
        int a_flags;
500
};
501
extern const struct vnodeop_desc vop_putpages_desc;
502
int VOP_PUTPAGES(struct vnode *, voff_t, voff_t, int);
503
504
#define VOP_CLOSEEXTATTR_DESCOFFSET 44
505
struct vop_closeextattr_args {
506
        const struct vnodeop_desc *a_desc;
507
        struct vnode *a_vp;
508
        int a_commit;
509
        kauth_cred_t a_cred;
510
};
511
extern const struct vnodeop_desc vop_closeextattr_desc;
512
int VOP_CLOSEEXTATTR(struct vnode *, int, kauth_cred_t);
513
514
#define VOP_GETEXTATTR_DESCOFFSET 45
515
struct vop_getextattr_args {
516
        const struct vnodeop_desc *a_desc;
517
        struct vnode *a_vp;
518
        int a_attrnamespace;
519
        const char *a_name;
520
        struct uio *a_uio;
521
        size_t *a_size;
522
        kauth_cred_t a_cred;
523
};
524
extern const struct vnodeop_desc vop_getextattr_desc;
525
int VOP_GETEXTATTR(struct vnode *, int, const char *, struct uio *,
526
    size_t *, kauth_cred_t);
527
528
#define VOP_LISTEXTATTR_DESCOFFSET 46
529
struct vop_listextattr_args {
530
        const struct vnodeop_desc *a_desc;
531
        struct vnode *a_vp;
532
        int a_attrnamespace;
533
        struct uio *a_uio;
534
        size_t *a_size;
535
        int a_flag;
536
        kauth_cred_t a_cred;
537
};
538
extern const struct vnodeop_desc vop_listextattr_desc;
539
int VOP_LISTEXTATTR(struct vnode *, int, struct uio *, size_t *, int,
540
    kauth_cred_t);
541
542
#define VOP_OPENEXTATTR_DESCOFFSET 47
543
struct vop_openextattr_args {
544
        const struct vnodeop_desc *a_desc;
545
        struct vnode *a_vp;
546
        kauth_cred_t a_cred;
547
};
548
extern const struct vnodeop_desc vop_openextattr_desc;
549
int VOP_OPENEXTATTR(struct vnode *, kauth_cred_t);
550
551
#define VOP_DELETEEXTATTR_DESCOFFSET 48
552
struct vop_deleteextattr_args {
553
        const struct vnodeop_desc *a_desc;
554
        struct vnode *a_vp;
555
        int a_attrnamespace;
556
        const char *a_name;
557
        kauth_cred_t a_cred;
558
};
559
extern const struct vnodeop_desc vop_deleteextattr_desc;
560
int VOP_DELETEEXTATTR(struct vnode *, int, const char *, kauth_cred_t);
561
562
#define VOP_SETEXTATTR_DESCOFFSET 49
563
struct vop_setextattr_args {
564
        const struct vnodeop_desc *a_desc;
565
        struct vnode *a_vp;
566
        int a_attrnamespace;
567
        const char *a_name;
568
        struct uio *a_uio;
569
        kauth_cred_t a_cred;
570
};
571
extern const struct vnodeop_desc vop_setextattr_desc;
572
int VOP_SETEXTATTR(struct vnode *, int, const char *, struct uio *,
573
    kauth_cred_t);
574
575
#define VNODE_OPS_COUNT        50
576
577
#endif /* !_SYS_VNODE_IF_H_ */