]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/blob - db/flist.h
eab154d7b8b370f1facace1e8b73757da9cbf047
[thirdparty/xfsprogs-dev.git] / db / flist.h
1 /*
2 * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of version 2 of the GNU General Public License as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it would be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11 *
12 * Further, this software is distributed without any warranty that it is
13 * free of the rightful claim of any third person regarding infringement
14 * or the like. Any license provided herein, whether implied or
15 * otherwise, applies only to this software file. Patent licenses, if
16 * any, provided herein do not apply to combinations of this program with
17 * other software, or any other product whatsoever.
18 *
19 * You should have received a copy of the GNU General Public License along
20 * with this program; if not, write the Free Software Foundation, Inc., 59
21 * Temple Place - Suite 330, Boston MA 02111-1307, USA.
22 *
23 * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
24 * Mountain View, CA 94043, or:
25 *
26 * http://www.sgi.com
27 *
28 * For further information regarding this notice, see:
29 *
30 * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
31 */
32
33 struct field;
34
35 typedef struct flist {
36 char *name;
37 const struct field *fld;
38 struct flist *child;
39 struct flist *sibling;
40 int low;
41 int high;
42 int flags;
43 int offset;
44 } flist_t;
45
46 /*
47 * Flags for flist
48 */
49 #define FL_OKLOW 1
50 #define FL_OKHIGH 2
51
52 typedef enum tokty {
53 TT_NAME, TT_NUM, TT_STRING, TT_LB, TT_RB, TT_DASH, TT_DOT, TT_END
54 } tokty_t;
55
56 typedef struct ftok {
57 char *tok;
58 tokty_t tokty;
59 } ftok_t;
60
61 extern void flist_free(flist_t *fl);
62 extern flist_t *flist_make(char *name);
63 extern int flist_parse(const struct field *fields, flist_t *fl, void *obj,
64 int startoff);
65 extern void flist_print(flist_t *fl);
66 extern flist_t *flist_scan(char *name);