]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/blame - db/flist.h
libxfs: refactor manage_zones()
[thirdparty/xfsprogs-dev.git] / db / flist.h
CommitLineData
959ef981 1// SPDX-License-Identifier: GPL-2.0
2bd0ea18 2/*
da23017d
NS
3 * Copyright (c) 2000-2001,2005 Silicon Graphics, Inc.
4 * All Rights Reserved.
2bd0ea18
NS
5 */
6
7struct field;
8
9typedef struct flist {
10 char *name;
dfc130f3 11 const struct field *fld;
2bd0ea18
NS
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
26typedef enum tokty {
27 TT_NAME, TT_NUM, TT_STRING, TT_LB, TT_RB, TT_DASH, TT_DOT, TT_END
28} tokty_t;
29
30typedef struct ftok {
31 char *tok;
32 tokty_t tokty;
33} ftok_t;
34
35extern void flist_free(flist_t *fl);
36extern flist_t *flist_make(char *name);
37extern int flist_parse(const struct field *fields, flist_t *fl, void *obj,
38 int startoff);
39extern void flist_print(flist_t *fl);
40extern flist_t *flist_scan(char *name);
b64af2c4 41extern flist_t *flist_find_ftyp(const field_t *fields, fldt_t type);