| // SPDX-License-Identifier: GPL-2.0 | 
 | /* | 
 |  * Copyright (c) 2000-2001,2005 Silicon Graphics, Inc. | 
 |  * All Rights Reserved. | 
 |  */ | 
 |  | 
 | struct field; | 
 |  | 
 | typedef struct flist { | 
 | 	char			*name; | 
 | 	const struct field	*fld; | 
 | 	struct flist		*child; | 
 | 	struct flist		*sibling; | 
 | 	int			low; | 
 | 	int			high; | 
 | 	int			flags; | 
 | 	int			offset; | 
 | } flist_t; | 
 |  | 
 | /* | 
 |  * Flags for flist | 
 |  */ | 
 | #define	FL_OKLOW	1 | 
 | #define	FL_OKHIGH	2 | 
 |  | 
 | typedef enum tokty { | 
 | 	TT_NAME, TT_NUM, TT_STRING, TT_LB, TT_RB, TT_DASH, TT_DOT, TT_END | 
 | } tokty_t; | 
 |  | 
 | typedef struct ftok { | 
 | 	char	*tok; | 
 | 	tokty_t	tokty; | 
 | } ftok_t; | 
 |  | 
 | extern void	flist_free(flist_t *fl); | 
 | extern flist_t	*flist_make(char *name); | 
 | extern int	flist_parse(const struct field *fields, flist_t *fl, void *obj, | 
 | 			    int startoff); | 
 | extern void	flist_print(flist_t *fl); | 
 | extern flist_t	*flist_scan(char *name); | 
 | extern flist_t	*flist_find_ftyp(const field_t *fields, fldt_t  type, void *obj, | 
 | 		int startoff); |