]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/blob - db/flist.h
xfs: zero length symlinks are not valid
[thirdparty/xfsprogs-dev.git] / db / flist.h
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3 * Copyright (c) 2000-2001,2005 Silicon Graphics, Inc.
4 * All Rights Reserved.
5 */
6
7 struct field;
8
9 typedef struct flist {
10 char *name;
11 const struct field *fld;
12 struct flist *child;
13 struct flist *sibling;
14 int low;
15 int high;
16 int flags;
17 int offset;
18 } flist_t;
19
20 /*
21 * Flags for flist
22 */
23 #define FL_OKLOW 1
24 #define FL_OKHIGH 2
25
26 typedef enum tokty {
27 TT_NAME, TT_NUM, TT_STRING, TT_LB, TT_RB, TT_DASH, TT_DOT, TT_END
28 } tokty_t;
29
30 typedef struct ftok {
31 char *tok;
32 tokty_t tokty;
33 } ftok_t;
34
35 extern void flist_free(flist_t *fl);
36 extern flist_t *flist_make(char *name);
37 extern int flist_parse(const struct field *fields, flist_t *fl, void *obj,
38 int startoff);
39 extern void flist_print(flist_t *fl);
40 extern flist_t *flist_scan(char *name);
41 extern flist_t *flist_find_ftyp(const field_t *fields, fldt_t type);