Chameleon

Chameleon Svn Source Tree

Root/branches/rewrite/i386/include/ufs/ufs/inode.h

Source at commit 1146 created 12 years 11 months ago.
By azimutz, Sync with trunk (r1145). Add nVidia dev id's, 0DF4 for "GeForce GT 450M" (issue 99) and 1251 for "GeForce GTX 560M" (thanks to oSxFr33k for testing).
1/*
2 * Copyright (c) 2000-2008 Apple, Inc. All rights reserved.
3 *
4 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. The rights granted to you under the License
10 * may not be used to create, or enable the creation or redistribution of,
11 * unlawful or unlicensed copies of an Apple operating system, or to
12 * circumvent, violate, or enable the circumvention or violation of, any
13 * terms of an Apple operating system software license agreement.
14 *
15 * Please obtain a copy of the License at
16 * http://www.opensource.apple.com/apsl/ and read it before using this file.
17 *
18 * The Original Code and all software distributed under the License are
19 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
20 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
21 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
22 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
23 * Please see the License for the specific language governing rights and
24 * limitations under the License.
25 *
26 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
27 */
28/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
29/*
30 * Copyright (c) 1982, 1989, 1993
31 *The Regents of the University of California. All rights reserved.
32 * (c) UNIX System Laboratories, Inc.
33 * All or some portions of this file are derived from material licensed
34 * to the University of California by American Telephone and Telegraph
35 * Co. or Unix System Laboratories, Inc. and are reproduced herein with
36 * the permission of UNIX System Laboratories, Inc.
37 *
38 * Redistribution and use in source and binary forms, with or without
39 * modification, are permitted provided that the following conditions
40 * are met:
41 * 1. Redistributions of source code must retain the above copyright
42 * notice, this list of conditions and the following disclaimer.
43 * 2. Redistributions in binary form must reproduce the above copyright
44 * notice, this list of conditions and the following disclaimer in the
45 * documentation and/or other materials provided with the distribution.
46 * 3. All advertising materials mentioning features or use of this software
47 * must display the following acknowledgement:
48 *This product includes software developed by the University of
49 *California, Berkeley and its contributors.
50 * 4. Neither the name of the University nor the names of its contributors
51 * may be used to endorse or promote products derived from this software
52 * without specific prior written permission.
53 *
54 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
55 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
56 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
57 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
58 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
59 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
60 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
61 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
62 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
63 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
64 * SUCH DAMAGE.
65 *
66 *@(#)inode.h8.9 (Berkeley) 5/14/95
67 */
68#ifndef _UFS_INDOE_H_
69#define _UFS_INDOE_H_
70
71#include <sys/appleapiopts.h>
72
73#ifdef __APPLE_API_PRIVATE
74#include <ufs/ufs/dir.h>
75#include <ufs/ufs/dinode.h>
76#include <sys/queue.h>
77#include <sys/event.h>
78#include <sys/lock.h>
79#include <sys/quota.h>
80
81/*
82 * The inode is used to describe each active (or recently active) file in the
83 * UFS filesystem. It is composed of two types of information. The first part
84 * is the information that is needed only while the file is active (such as
85 * the identity of the file and linkage to speed its lookup). The second part
86 * is * the permanent meta-data associated with the file which is read in
87 * from the permanent dinode from long term storage when the file becomes
88 * active, and is put back when the file is no longer being used.
89 */
90struct inode {
91LIST_ENTRY(inode) i_hash;/* Hash chain. */
92structvnode *i_vnode;/* Vnode associated with this inode. */
93structvnode *i_devvp;/* Vnode for block I/O. */
94u_int32_t i_flag;/* flags, see below */
95dev_t i_dev;/* Device associated with the inode. */
96ino_t i_number;/* The identity of the inode. */
97
98union {/* Associated filesystem. */
99structfs *fs;/* FFS */
100} inode_u;
101#definei_fsinode_u.fs
102
103struct dquot *i_dquot[MAXQUOTAS]; /* Dquot structures. */
104u_quad_t i_modrev;/* Revision level for NFS lease. */
105void *i_lockf;/* DEPRECATED */
106
107/*
108 * Side effects; used during directory lookup.
109 */
110int32_t i_count;/* Size of free slot in directory. */
111doff_t i_endoff;/* End of useful stuff in directory. */
112doff_t i_diroff;/* Offset in dir, where we found last entry. */
113doff_t i_offset;/* Offset of free space in directory. */
114ino_t i_ino;/* Inode number of found directory. */
115u_int32_t i_reclen;/* Size of found directory entry. */
116 daddr_t i_lastr;/* last read... read-ahead */
117/*
118 * The on-disk dinode itself.
119 */
120structdinode i_din;/* 128 bytes of the on-disk dinode. */
121};
122
123#definei_atimei_din.di_atime
124#definei_atimenseci_din.di_atimensec
125#definei_blocksi_din.di_blocks
126#definei_ctimei_din.di_ctime
127#definei_ctimenseci_din.di_ctimensec
128#definei_dbi_din.di_db
129#definei_flagsi_din.di_flags
130#definei_geni_din.di_gen
131#definei_gidi_din.di_gid
132#definei_ibi_din.di_ib
133#definei_modei_din.di_mode
134#definei_mtimei_din.di_mtime
135#definei_mtimenseci_din.di_mtimensec
136#definei_nlinki_din.di_nlink
137#definei_rdevi_din.di_rdev
138#definei_shortlinki_din.di_shortlink
139#definei_sizei_din.di_size
140#definei_uidi_din.di_uid
141#definei_sparei_din.di_spare
142#definei_oldidsi_din.di_u.oldids
143#definei_inumberi_din.di_u.inumber
144
145/* These flags are kept in i_flag. */
146#defineIN_ACCESS0x0001/* Access time update request. */
147#defineIN_CHANGE0x0002/* Inode change time update request. */
148#defineIN_UPDATE0x0004/* Modification time update request. */
149#defineIN_MODIFIED0x0008/* Inode has been modified. */
150#defineIN_RENAME0x0010/* Inode is being renamed. */
151#defineIN_SHLOCK0x0020/* File has shared lock. */
152#defineIN_EXLOCK0x0040/* File has exclusive lock. */
153#defineIN_TRANSIT0x0080/* inode is getting recycled */
154#defineIN_WTRANSIT0x0100/* waiting for inode getting recycled */
155#defineIN_ALLOC0x0200/* being allocated */
156#defineIN_WALLOC0x0400/* waiting for allocation to be done */
157
158
159#endif /* __APPLE_API_PRIVATE */
160#endif /* ! _UFS_INDOE_H_ */
161

Archive Download this file

Revision: 1146