📄 xfsck.h
字号:
/* * Copyright (c) International Business Machines Corp., 2000-2002 * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See * the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */#ifndef H_XFSCK#define H_XFSCK#include "jfs_types.h"#include "jfs_dmap.h"/* Stuff for handling extended attributes. */#ifndef OS2struct FEA { /* fea */ uint8_t fEA; /* flags */ uint8_t cbName; /* name length not including NULL */ uint16_t cbValue; /* value length */};/* flags for FEA.fEA */#define FEA_NEEDEA 0x80 /* need EA bit */struct FEALIST { /* feal */ uint32_t cbList; /* total bytes of structure including full list */ struct FEA list[1]; /* variable length FEA structures */};#define ERROR_EA_LIST_INCONSISTENT 255#endifextern int jfs_ValidateFEAList(struct FEALIST *, int, unsigned long *);/* ***** IMPORTANT ***** IMPORTANT ***** IMPORTANT ***** IMPORTANT ***** * * fsck_first_msgid * MUST be set to the first message id for fsck, according * to jfs.txt. Will be used to locate the text for any * message which is displayed in the local language. * * fsck_highest_msgid_defined * MUST be maintained in synch with the * message id constants (defined in fsckmsgc.h) since the * message text array and the message attributes array (declared * in fsckmsgp.h) are both dimensioned using it. * * ***** IMPORTANT ***** IMPORTANT ***** IMPORTANT ***** IMPORTANT ***** */#define fsck_msgid_offset 50#define fsck_highest_msgid_defined 599#define MAXPARMLEN 64#define fscklog_var_text 1#define fscklog_literal 2 /* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + * * The following are used to access the columns of * MsgProtocol[][], which is defined in fsckmsgp.h * */#define MP_MSGLVL 0#define MP_MSGFILE 1 /* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + * * The following are the possible values effective fsck * messaging level and for implied response level. * *//* * special cases (must not match any other constants in the table) */#define fsck_hrtbt 130#define fsck_txtins 131/* * The lowest messaging level (dictated by input parms) at which * the message is displayed. */#define fsck_quiet 2#define fsck_verbose 8#define fsck_debug 32/* * The message file to use for local language lookup * * These are determined by the array message_file_name[] * in messages.c */#define no_msgfile -1#define jfs_msgfile 1 /* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + * The following are used for reporting storage allocation * failures. */void report_dynstg_error(void);#define dynstg_unknown 0/* the actions */#define dynstg_allocation 1#define dynstg_initialization 2/* the objects */#define dynstg_unknown_object 0#define dynstg_blkmap 1#define dynstg_blkmap_buf 2#define dynstg_blkmap_hdr 3#define dynstg_inomap 4#define dynstg_fer 5#define dynstg_wspext 6#define dynstg_pathbuffer 7#define dynstg_inoextrec 8#define dynstg_inorec 9#define dynstg_dtreeQ_elem 10#define dynstg_treeQ_elem 11#define dynstg_ait_map 12#define dynstg_fsit_map 13#define dynstg_dupall_blkrec 14#define dynstg_dupall_inorec 15#define dynstg_agg_agtbl 16#define dynstg_agg_iagtbl 17#define dynstg_fs_agtbl 18#define dynstg_fs_iagtbl 19#define dynstg_iobufs 20#define dynstg_eaiobuf 21#define dynstg_tmpinoiobuf 22#define dynstg_recondnodebuf 23#define dynstg_xtreebuf 24#define dynstg_xtreepagebuf 25#define dynstg_treeStack_elem 26#define dynstg_fsckcbblbuf1 27#define dynstg_fsckcbblbuf2 28#define dynstg_inotbl 29#define dynstg_inoexttbl 30#define dynstg_fsit_iagtbl 31#define dynstg_fsit_inoexttbl 32#define dynstg_fsit_inotbl 33#define dynstg_ait_inotbl 34/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + * * used during blockmap verify/rebuild * */struct fsck_bmap_record { char eyecatcher[8]; int64_t total_blocks; int64_t free_blocks; int8_t ctl_fctl_error; int8_t ctl_other_error; char rsvd0[2]; char bmpctlinf_eyecatcher[8]; struct dbmap *bmpctl_bufptr; int64_t bmpctl_agg_fsblk_offset; char rsvd1[4]; char AGinf_eyecatcher[8]; int64_t *AGFree_tbl; int8_t AGActive[MAXAG]; char dmapinf_eyecatcher[8]; uint32_t dmappg_count; uint32_t dmappg_ordno; uint32_t dmappg_idx; int8_t *dmap_wsp_stree; int8_t *dmap_wsp_sleafs; struct dmap *dmap_bufptr; int64_t dmap_agg_offset; int64_t dmap_1stblk; int8_t dmap_pmap_error; int8_t dmap_slfv_error; int8_t dmap_slnv_error; int8_t dmap_other_error; char rsvd2[4]; char L0inf_eyecatcher[8]; uint32_t L0pg_count; uint32_t L0pg_ordno; uint32_t L0pg_idx; int8_t *L0_wsp_stree; int8_t *L0_wsp_sleafs; struct dmapctl *L0_bufptr; int64_t L0pg_agg_offset; int64_t L0pg_1stblk; int8_t L0_rsvd; int8_t L0pg_slfv_error; int8_t L0pg_slnv_error; int8_t L0pg_other_error; char rsvd3[4]; char L1inf_eyecatcher[8]; uint32_t L1pg_count; uint32_t L1pg_ordno; uint32_t L1pg_idx; int8_t *L1_wsp_stree; int8_t *L1_wsp_sleafs; struct dmapctl *L1_bufptr; int64_t L1pg_agg_offset; int64_t L1pg_1stblk; int8_t L1_rsvd; int8_t L1pg_slfv_error; int8_t L1pg_slnv_error; int8_t L1pg_other_error; char rsvd4[4]; char L2inf_eyecatcher[8]; uint32_t L2pg_count; int8_t *L2_wsp_stree; int8_t *L2_wsp_sleafs; struct dmapctl *L2_bufptr; int64_t L2pg_agg_offset; int64_t L2pg_1stblk; int8_t L2pg_slfv_error; int8_t L2pg_slnv_error; int8_t L2pg_other_error; char rsvd5[5];};/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + * * unicharacter name structure */struct uniname { uint32_t len_in_UniChars; UniChar name_in_UniChars[256];};/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + * * used to pass message inserts from one routine to another economically */struct fsck_ino_msg_info { uint32_t msg_inonum; int msg_inopfx; int msg_inotyp; int msg_dxdtyp;};struct fsck_imap_msg_info { int32_t msg_iagnum; int32_t msg_agnum; int msg_mapowner;};/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + * * used to specify what action should be performed by routing * process_extent */#define FSCK_RECORD 1#define FSCK_RECORD_DUPCHECK 2#define FSCK_UNRECORD 3#define FSCK_QUERY 4#define FSCK_GET_OBJNAME 5#define FSCK_FSIM_RECORD_DUPCHECK 6#define FSCK_FSIM_UNRECORD 7#define FSCK_FSIM_QUERY 8 /* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + * * The following are the values which may be displayed in * message fsck_INOINLINECONFLICT * */#define fsck_longdata_and_otherinline 1/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + * * The following define exit codes passed back by fsck.jfs * and return codes passed internally in fsck.jfs. * *//* exit codes */#define FSCK_OK 0#define FSCK_CORRECTED 1#define FSCK_REBOOT 2#define FSCK_ERRORS_UNCORRECTED 4#define FSCK_OP_ERROR 8#define FSCK_USAGE_ERROR 16/* informational return codes */#define FSCK_FAILED -00001
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -