]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - lib/libprocstat/zfs_defs.c
zfs: merge openzfs/zfs@f795e90a1
[FreeBSD/FreeBSD.git] / lib / libprocstat / zfs_defs.c
1 /*-
2  * SPDX-License-Identifier: BSD-2-Clause
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 /*
31  * Prevent some headers from getting included and fake some types
32  * in order to allow this file to compile without bringing in
33  * too many kernel build dependencies.
34  */
35 #define _OPENSOLARIS_SYS_PATHNAME_H_
36 #define _OPENSOLARIS_SYS_POLICY_H_
37 #define _VNODE_PAGER_
38
39
40 enum vtype      { VNON, VREG, VDIR, VBLK, VCHR, VLNK, VSOCK, VFIFO, VBAD,
41                   VMARKER };
42
43 /*
44  * Vnode attributes.  A field value of VNOVAL represents a field whose value
45  * is unavailable (getattr) or which is not to be changed (setattr).
46  */
47 struct vattr {
48         enum vtype      va_type;        /* vnode type (for create) */
49         u_short         va_mode;        /* files access mode and type */
50         u_short         va_padding0;
51         uid_t           va_uid;         /* owner user id */
52         gid_t           va_gid;         /* owner group id */
53         nlink_t         va_nlink;       /* number of references to file */
54         dev_t           va_fsid;        /* filesystem id */
55         ino_t           va_fileid;      /* file id */
56         u_quad_t        va_size;        /* file size in bytes */
57         long            va_blocksize;   /* blocksize preferred for i/o */
58         struct timespec va_atime;       /* time of last access */
59         struct timespec va_mtime;       /* time of last modification */
60         struct timespec va_ctime;       /* time file changed */
61         struct timespec va_birthtime;   /* time file created */
62         u_long          va_gen;         /* generation number of file */
63         u_long          va_flags;       /* flags defined for file */
64         dev_t           va_rdev;        /* device the special file represents */
65         u_quad_t        va_bytes;       /* bytes of disk space held by file */
66         u_quad_t        va_filerev;     /* file modification number */
67         u_int           va_vaflags;     /* operations flags, see below */
68         long            va_spare;       /* remain quad aligned */
69 };
70
71 #define _WANT_MOUNT
72 #include <sys/zfs_context.h>
73 #include <sys/zfs_znode.h>
74
75 size_t sizeof_znode_t = sizeof(znode_t);
76 size_t offsetof_z_id = offsetof(znode_t, z_id);
77 size_t offsetof_z_size = offsetof(znode_t, z_size);
78 size_t offsetof_z_mode = offsetof(znode_t, z_mode);
79
80 /* Keep pcpu.h satisfied. */
81 uintptr_t *__start_set_pcpu;
82 uintptr_t *__stop_set_pcpu;