4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
22 /* Copyright (c) 1988 AT&T */
23 /* All Rights Reserved */
27 * Copyright 1999, 2003 Sun Microsystems, Inc. All rights reserved.
28 * Use is subject to license terms.
31 #pragma ident "%Z%%M% %I% %E% SMI"
33 /* inverted index definitions */
35 /* postings temporary file long number coding into characters */
36 #define BASE 95 /* 127 - ' ' */
37 #define PRECISION 5 /* maximum digits after converting a long */
39 /* inverted index access parameters */
44 /* boolean set operations */
50 /* note that the entire first block is for parameters */
52 long version
; /* inverted index format version */
53 long filestat
; /* file status word */
54 long sizeblk
; /* size of logical block in bytes */
55 long startbyte
; /* first byte of superfinger */
56 long supsize
; /* size of superfinger in bytes */
57 long cntlsize
; /* size of max cntl space (should be a */
58 /* multiple of BUFSIZ) */
59 long share
; /* flag whether to use shared memory */
63 FILE *invfile
; /* the inverted file ptr */
64 FILE *postfile
; /* posting file ptr */
65 PARAM param
; /* control parameters for the file */
66 char *iindex
; /* ptr to space for superindex */
67 char *logblk
; /* ptr to space for a logical block */
68 long numblk
; /* number of block presently at *logblk */
69 long keypnt
; /* number item in present block found */
70 int swap
; /* file endian mistmatch? */
74 short offset
; /* offset in this logical block */
75 unsigned char size
; /* size of term */
76 unsigned char space
; /* number of longs of growth space */
77 long post
; /* number of postings for this entry */
81 long lineoffset
; /* source line database offset */
82 long fcnoffset
; /* function name database offset */
83 long fileindex
: 24; /* source file name index */
84 long type
: 8; /* reference type (mark character) */
87 extern long *srcoffset
; /* source file name database offsets */
88 extern int nsrcoffset
; /* number of file name database offsets */
90 extern void boolclear(void);
91 extern POSTING
*boolfile(INVCONTROL
*invcntl
, long *num
, int bool);
92 extern void invclose(INVCONTROL
*invcntl
);
93 extern long invfind(INVCONTROL
*invcntl
, char *searchterm
);
94 extern int invforward(INVCONTROL
*invcntl
);
95 extern int invopen(INVCONTROL
*invcntl
, char *invname
, char *invpost
,
97 extern int invterm(INVCONTROL
*invcntl
, char *term
);
98 extern long invmake(char *invname
, char *invpost
, FILE *infile
);