1/*
2 * Copyright (c) 1982, 1989, 1993
3 * The Regents of the University of California. All rights reserved.
4 * (c) UNIX System Laboratories, Inc.
5 * All or some portions of this file are derived from material licensed
6 * to the University of California by American Telephone and Telegraph
7 * Co. or Unix System Laboratories, Inc. and are reproduced herein with
8 * the permission of UNIX System Laboratories, Inc.
--- 22 unchanged lines hidden (view full) ---
31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36 * SUCH DAMAGE.
37 *
38 * @(#)inode.h 8.9 (Berkeley) 5/14/95
39 * $FreeBSD: head/sys/gnu/fs/ext2fs/inode.h 96877 2002-05-18 19:12:38Z iedowse $
40 */
41
42#ifndef _SYS_GNU_EXT2FS_INODE_H_
43#define _SYS_GNU_EXT2FS_INODE_H_
44
45#include <sys/lock.h>
46#include <sys/queue.h>
47
--- 48 unchanged lines hidden (view full) ---
96 int16_t i_nlink; /* File link count. */
97 u_int64_t i_size; /* File byte count. */
98 int32_t i_atime; /* Last access time. */
99 int32_t i_atimensec; /* Last access time. */
100 int32_t i_mtime; /* Last modified time. */
101 int32_t i_mtimensec; /* Last modified time. */
102 int32_t i_ctime; /* Last inode change time. */
103 int32_t i_ctimensec; /* Last inode change time. */
104 int32_t i_db[NDADDR]; /* Direct disk blocks. */
105 int32_t i_ib[NIADDR]; /* Indirect disk blocks. */
106 u_int32_t i_flags; /* Status flags (chflags). */
107 int32_t i_blocks; /* Blocks actually held. */
108 int32_t i_gen; /* Generation number. */
109 u_int32_t i_uid; /* File owner. */
110 u_int32_t i_gid; /* File group. */
111};
112
113/*
114 * The di_db fields may be overlaid with other information for
115 * file types that do not have associated disk storage. Block
116 * and character devices overlay the first data block with their
117 * dev_t value. Short symbolic links place their path in the
118 * di_db area.
119 */
120#define i_shortlink i_db
121#define i_rdev i_db[0]
122#define MAXSYMLINKLEN ((NDADDR + NIADDR) * sizeof(int32_t))
123
124/* File permissions. */
125#define IEXEC 0000100 /* Executable. */
126#define IWRITE 0000200 /* Writeable. */
127#define IREAD 0000400 /* Readable. */
128#define ISVTX 0001000 /* Sticky bit. */
129#define ISGID 0002000 /* Set-gid. */
130#define ISUID 0004000 /* Set-uid. */
--- 17 unchanged lines hidden (view full) ---
148#define IN_RENAME 0x0010 /* Inode is being renamed. */
149#define IN_HASHED 0x0020 /* Inode is on hash list */
150#define IN_LAZYMOD 0x0040 /* Modified, but don't write yet. */
151#define IN_SPACECOUNTED 0x0080 /* Blocks to be freed in free count. */
152
153#ifdef _KERNEL
154/*
155 * Structure used to pass around logical block paths generated by
156 * ext2_getlbns and used by truncate and bmap code.
157 */
158struct indir {
159 int32_t in_lbn; /* Logical block number. */
160 int in_off; /* Offset in buffer. */
161 int in_exists; /* Flag if the block exists. */
162};
163
164/* Convert between inode pointers and vnode pointers. */
165#define VTOI(vp) ((struct inode *)(vp)->v_data)
166#define ITOV(ip) ((ip)->i_vnode)
167
168/* This overlays the fid structure (see mount.h). */
169struct ufid {
170 u_int16_t ufid_len; /* Length of structure. */
171 u_int16_t ufid_pad; /* Force 32-bit alignment. */
172 ino_t ufid_ino; /* File number (ino). */
173 int32_t ufid_gen; /* Generation number. */
174};
175#endif /* _KERNEL */
176
177#endif /* !_SYS_GNU_EXT2FS_INODE_H_ */
2 * Copyright (c) 1982, 1989, 1993
3 * The Regents of the University of California. All rights reserved.
4 * (c) UNIX System Laboratories, Inc.
5 * All or some portions of this file are derived from material licensed
6 * to the University of California by American Telephone and Telegraph
7 * Co. or Unix System Laboratories, Inc. and are reproduced herein with
8 * the permission of UNIX System Laboratories, Inc.
--- 22 unchanged lines hidden (view full) ---
31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36 * SUCH DAMAGE.
37 *
38 * @(#)inode.h 8.9 (Berkeley) 5/14/95
39 * $FreeBSD: head/sys/gnu/fs/ext2fs/inode.h 96877 2002-05-18 19:12:38Z iedowse $
40 */
41
42#ifndef _SYS_GNU_EXT2FS_INODE_H_
43#define _SYS_GNU_EXT2FS_INODE_H_
44
45#include <sys/lock.h>
46#include <sys/queue.h>
47
--- 48 unchanged lines hidden (view full) ---
96 int16_t i_nlink; /* File link count. */
97 u_int64_t i_size; /* File byte count. */
98 int32_t i_atime; /* Last access time. */
99 int32_t i_atimensec; /* Last access time. */
100 int32_t i_mtime; /* Last modified time. */
101 int32_t i_mtimensec; /* Last modified time. */
102 int32_t i_ctime; /* Last inode change time. */
103 int32_t i_ctimensec; /* Last inode change time. */
104 int32_t i_db[NDADDR]; /* Direct disk blocks. */
105 int32_t i_ib[NIADDR]; /* Indirect disk blocks. */
106 u_int32_t i_flags; /* Status flags (chflags). */
107 int32_t i_blocks; /* Blocks actually held. */
108 int32_t i_gen; /* Generation number. */
109 u_int32_t i_uid; /* File owner. */
110 u_int32_t i_gid; /* File group. */
111};
112
113/*
114 * The di_db fields may be overlaid with other information for
115 * file types that do not have associated disk storage. Block
116 * and character devices overlay the first data block with their
117 * dev_t value. Short symbolic links place their path in the
118 * di_db area.
119 */
120#define i_shortlink i_db
121#define i_rdev i_db[0]
122#define MAXSYMLINKLEN ((NDADDR + NIADDR) * sizeof(int32_t))
123
124/* File permissions. */
125#define IEXEC 0000100 /* Executable. */
126#define IWRITE 0000200 /* Writeable. */
127#define IREAD 0000400 /* Readable. */
128#define ISVTX 0001000 /* Sticky bit. */
129#define ISGID 0002000 /* Set-gid. */
130#define ISUID 0004000 /* Set-uid. */
--- 17 unchanged lines hidden (view full) ---
148#define IN_RENAME 0x0010 /* Inode is being renamed. */
149#define IN_HASHED 0x0020 /* Inode is on hash list */
150#define IN_LAZYMOD 0x0040 /* Modified, but don't write yet. */
151#define IN_SPACECOUNTED 0x0080 /* Blocks to be freed in free count. */
152
153#ifdef _KERNEL
154/*
155 * Structure used to pass around logical block paths generated by
156 * ext2_getlbns and used by truncate and bmap code.
157 */
158struct indir {
159 int32_t in_lbn; /* Logical block number. */
160 int in_off; /* Offset in buffer. */
161 int in_exists; /* Flag if the block exists. */
162};
163
164/* Convert between inode pointers and vnode pointers. */
165#define VTOI(vp) ((struct inode *)(vp)->v_data)
166#define ITOV(ip) ((ip)->i_vnode)
167
168/* This overlays the fid structure (see mount.h). */
169struct ufid {
170 u_int16_t ufid_len; /* Length of structure. */
171 u_int16_t ufid_pad; /* Force 32-bit alignment. */
172 ino_t ufid_ino; /* File number (ino). */
173 int32_t ufid_gen; /* Generation number. */
174};
175#endif /* _KERNEL */
176
177#endif /* !_SYS_GNU_EXT2FS_INODE_H_ */