1/* 2 * CDDL HEADER START 3 * 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. 7 * 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. 12 * 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] 18 * 19 * CDDL HEADER END 20 */ 21/* 22 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 23 * Use is subject to license terms. 24 */ 25 26#ifndef _SYS_FILEP_H 27#define _SYS_FILEP_H 28 29#pragma ident "%Z%%M% %I% %E% SMI" 30 31#ifdef __cplusplus 32extern "C" { 33#endif 34 35#include <sys/fs/ufs_fsdir.h> 36#include <sys/fs/ufs_fs.h> 37#include <sys/fs/ufs_inode.h> 38 39/* 40 * These structs should be invisible to the caller of 41 * the user-level routines 42 */ 43typedef 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; 52 53/* 54 * Borrowed bits from i_flag 55 */ 56#define FI_CACHED 0x100000 57#define FI_PARTIAL_CACHE 0x200000 58#define FI_NOCACHE 0x400000 59 60#define FI_COMPRESSED 0x8 /* File compressed in ramdisk */ 61#define DECOMP_BUFSIZE (512 * 1024) /* size of decompress buffer */ 62 63typedef 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; 83 84extern int diskread(fileid_t *); 85 86#ifdef __cplusplus 87} 88#endif 89 90#endif /* _SYS_FILEP_H */ 91