1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (c) 2000-2001,2005 Silicon Graphics, Inc.
* All Rights Reserved.
*/
struct field;
#define szof(x,y) sizeof(((x *)0)->y)
#define szcount(x,y) (szof(x,y) / szof(x,y[0]))
typedef enum typnm
{
TYP_AGF,
TYP_AGFL,
TYP_AGI,
TYP_ATTR,
TYP_BMAPBTA,
TYP_BMAPBTD,
TYP_BNOBT,
TYP_CNTBT,
TYP_RMAPBT,
TYP_RTRMAPBT,
TYP_REFCBT,
TYP_RTREFCBT,
TYP_DATA,
TYP_DIR2,
TYP_DQBLK,
TYP_INOBT,
TYP_INODATA,
TYP_INODE,
TYP_LOG,
TYP_RTBITMAP,
TYP_RTSUMMARY,
TYP_RTSB,
TYP_SB,
TYP_SYMLINK,
TYP_TEXT,
TYP_FINOBT,
TYP_RGBITMAP,
TYP_RGSUMMARY,
TYP_NONE
} typnm_t;
#define DB_FUZZ 2
#define DB_WRITE 1
#define DB_READ 0
typedef void (*opfunc_t)(const struct field *fld, int argc, char **argv);
typedef void (*pfunc_t)(int action, const struct field *fld, int argc, char **argv);
typedef struct typ
{
typnm_t typnm;
char *name;
pfunc_t pfunc;
const struct field *fields;
const struct xfs_buf_ops *bops;
unsigned long crc_off;
#define TYP_F_NO_CRC_OFF (-1UL)
#define TYP_F_CRC_FUNC (-2UL)
void (*set_crc)(struct xfs_buf *);
} typ_t;
extern const typ_t *typtab, *cur_typ;
extern void type_init(void);
extern void type_set_tab_crc(void);
extern void type_set_tab_spcrc(void);
extern void handle_block(int action, const struct field *fields, int argc,
char **argv);
extern void handle_string(int action, const struct field *fields, int argc,
char **argv);
extern void handle_struct(int action, const struct field *fields, int argc,
char **argv);
extern void handle_text(int action, const struct field *fields, int argc,
char **argv);
|