]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - lib/libprocstat/zfs_defs.c
bhnd(9): Fix a few mandoc related issues
[FreeBSD/FreeBSD.git] / lib / libprocstat / zfs_defs.c
1 /*-
2  * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
3  *
4  * Copyright (c) 2020 Andriy Gapon <avg@FreeBSD.org>
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  * 1. Redistributions of source code must retain the above copyright
10  *    notice, this list of conditions and the following disclaimer.
11  * 2. Redistributions in binary form must reproduce the above copyright
12  *    notice, this list of conditions and the following disclaimer in the
13  *    documentation and/or other materials provided with the distribution.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
16  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
19  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25  * SUCH DAMAGE.
26  */
27
28 #include <sys/cdefs.h>
29 #include <sys/types.h>
30 __FBSDID("$FreeBSD$");
31
32
33 /*
34  * Prevent some headers from getting included and fake some types
35  * in order to allow this file to compile without bringing in
36  * too many kernel build dependencies.
37  */
38 #define _OPENSOLARIS_SYS_PATHNAME_H_
39 #define _OPENSOLARIS_SYS_POLICY_H_
40 #define _VNODE_PAGER_
41
42
43 enum vtype      { VNON, VREG, VDIR, VBLK, VCHR, VLNK, VSOCK, VFIFO, VBAD,
44                   VMARKER };
45
46 /*
47  * Vnode attributes.  A field value of VNOVAL represents a field whose value
48  * is unavailable (getattr) or which is not to be changed (setattr).
49  */
50 struct vattr {
51         enum vtype      va_type;        /* vnode type (for create) */
52         u_short         va_mode;        /* files access mode and type */
53         u_short         va_padding0;
54         uid_t           va_uid;         /* owner user id */
55         gid_t           va_gid;         /* owner group id */
56         nlink_t         va_nlink;       /* number of references to file */
57         dev_t           va_fsid;        /* filesystem id */
58         ino_t           va_fileid;      /* file id */
59         u_quad_t        va_size;        /* file size in bytes */
60         long            va_blocksize;   /* blocksize preferred for i/o */
61         struct timespec va_atime;       /* time of last access */
62         struct timespec va_mtime;       /* time of last modification */
63         struct timespec va_ctime;       /* time file changed */
64         struct timespec va_birthtime;   /* time file created */
65         u_long          va_gen;         /* generation number of file */
66         u_long          va_flags;       /* flags defined for file */
67         dev_t           va_rdev;        /* device the special file represents */
68         u_quad_t        va_bytes;       /* bytes of disk space held by file */
69         u_quad_t        va_filerev;     /* file modification number */
70         u_int           va_vaflags;     /* operations flags, see below */
71         long            va_spare;       /* remain quad aligned */
72 };
73
74
75 #include <sys/zfs_context.h>
76 #include <sys/zfs_znode.h>
77
78 size_t sizeof_znode_t = sizeof(znode_t);
79 size_t offsetof_z_id = offsetof(znode_t, z_id);
80 size_t offsetof_z_size = offsetof(znode_t, z_size);
81 size_t offsetof_z_mode = offsetof(znode_t, z_mode);
82
83 /* Keep pcpu.h satisfied. */
84 uintptr_t *__start_set_pcpu;
85 uintptr_t *__stop_set_pcpu;