Merge commit '7e3488dc6cdcb0c04e1ce167a1a3bfef83b5f2e0'
[unleashed.git] / include / sys / filep.h
blob0cd2b0734e37c07b37b39828f108267ebed64070
1 /*
2 * CDDL HEADER START
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
19 * CDDL HEADER END
22 * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
26 #ifndef _SYS_FILEP_H
27 #define _SYS_FILEP_H
29 #pragma ident "%Z%%M% %I% %E% SMI"
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
35 #include <sys/fs/ufs_fsdir.h>
36 #include <sys/fs/ufs_fs.h>
37 #include <sys/fs/ufs_inode.h>
40 * These structs should be invisible to the caller of
41 * the user-level routines
43 typedef struct dev_ident { /* device identifier block */
44 char *di_desc;
45 int di_dcookie;
46 char di_taken;
47 union {
48 struct fs di_fs;
49 char dummy[SBSIZE];
50 } un_fs;
51 } devid_t;
54 * Borrowed bits from i_flag
56 #define FI_CACHED 0x100000
57 #define FI_PARTIAL_CACHE 0x200000
58 #define FI_NOCACHE 0x400000
60 #define FI_COMPRESSED 0x8 /* File compressed in ramdisk */
61 #define DECOMP_BUFSIZE (512 * 1024) /* size of decompress buffer */
63 typedef struct file_ident { /* file identifier block */
64 uint_t fi_filedes;
65 char *fi_path;
66 daddr_t fi_blocknum;
67 uint_t fi_count;
68 off_t fi_offset;
69 caddr_t fi_memp;
70 char fi_taken;
71 char fi_flags;
72 devid_t *fi_devp;
73 char fi_buf[MAXBSIZE];
74 int (*fi_getblock)(struct file_ident *);
75 struct inode *fi_inode;
76 struct file_ident *fi_forw;
77 struct file_ident *fi_back;
78 off_t fi_cfoff; /* compressed file offset */
79 caddr_t fi_dcscrbuf; /* decomp scratch buffer */
80 size_t fi_dcscrused; /* used bytes in scratch buf */
81 struct z_stream_s *fi_dcstream; /* decompression stream */
82 } fileid_t;
84 extern int diskread(fileid_t *);
86 #ifdef __cplusplus
88 #endif
90 #endif /* _SYS_FILEP_H */