⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jfs_endian.c

📁 jfs 源码
💻 C
📖 第 1 页 / 共 2 页
字号:
			 */			while ((index != -1) && (len > 0)) {				if (index > lastslot)					break;				dtslot = &dtp_t->slot[index];				for (j = 0; j < DTSLOTDATALEN; j++)					dtslot->name[j] = __le16_to_cpu(dtslot->name[j]);				len -= DTSLOTDATALEN;				index = dtslot->next;			}		}	}}/*-------------------------------------------------------------------- * NAME: ujfs_swap_fsck_blk_map_hdr * * FUNCTION: Change endianness of fsck_blk_map_hdr structure * * PARAMETERS: *      fsck_bmap_h         - fsck block map header structure * * RETURNS: NONE */void ujfs_swap_fsck_blk_map_hdr(struct fsck_blk_map_hdr *fsck_bmap_h){	int i;	/* fsck_blk_map_hdr in libfs/fsckwsp.h */	/* struct fsckcbbl_record  cbblrec */	fsck_bmap_h->cbblrec.cbbl_retcode = __le32_to_cpu(fsck_bmap_h->cbblrec.cbbl_retcode);	fsck_bmap_h->cbblrec.fs_blksize = __le32_to_cpu(fsck_bmap_h->cbblrec.fs_blksize);	fsck_bmap_h->cbblrec.lv_blksize = __le32_to_cpu(fsck_bmap_h->cbblrec.lv_blksize);	fsck_bmap_h->cbblrec.fs_lv_ratio = __le32_to_cpu(fsck_bmap_h->cbblrec.fs_lv_ratio);	fsck_bmap_h->cbblrec.fs_last_metablk = __le64_to_cpu(fsck_bmap_h->cbblrec.fs_last_metablk);	fsck_bmap_h->cbblrec.fs_first_wspblk = __le64_to_cpu(fsck_bmap_h->cbblrec.fs_first_wspblk);	fsck_bmap_h->cbblrec.total_bad_blocks =	    __le32_to_cpu(fsck_bmap_h->cbblrec.total_bad_blocks);	fsck_bmap_h->cbblrec.resolved_blocks = __le32_to_cpu(fsck_bmap_h->cbblrec.resolved_blocks);	fsck_bmap_h->cbblrec.reloc_extents = __le32_to_cpu(fsck_bmap_h->cbblrec.reloc_extents);	fsck_bmap_h->cbblrec.reloc_blocks = __le64_to_cpu(fsck_bmap_h->cbblrec.reloc_blocks);	fsck_bmap_h->cbblrec.LVM_lists = __le32_to_cpu(fsck_bmap_h->cbblrec.LVM_lists);	fsck_bmap_h->hdr.last_entry_pos = __le32_to_cpu(fsck_bmap_h->hdr.last_entry_pos);	fsck_bmap_h->hdr.next_entry_pos = __le32_to_cpu(fsck_bmap_h->hdr.next_entry_pos);	fsck_bmap_h->hdr.return_code = __le32_to_cpu(fsck_bmap_h->hdr.return_code);	fsck_bmap_h->hdr.fscklog_agg_offset = __le64_to_cpu(fsck_bmap_h->hdr.fscklog_agg_offset);	fsck_bmap_h->hdr.num_logwrite_errors = __le32_to_cpu(fsck_bmap_h->hdr.num_logwrite_errors);	/* struct fscklog_error logerr[125] */	for (i = 0; i < 125; i++) {		fsck_bmap_h->hdr.logerr[i].err_offset =		    __le64_to_cpu(fsck_bmap_h->hdr.logerr[i].err_offset);		fsck_bmap_h->hdr.logerr[i].bytes_written =		    __le32_to_cpu(fsck_bmap_h->hdr.logerr[i].bytes_written);		fsck_bmap_h->hdr.logerr[i].io_retcode =		    __le32_to_cpu(fsck_bmap_h->hdr.logerr[i].io_retcode);	}}/*-------------------------------------------------------------------- * NAME: ujfs_swap_fsck_blk_map_page * * FUNCTION: Change endianness of fsck_blk_map_page structure * * PARAMETERS: *      fsck_bmap_p         - fsck block map page structure * * RETURNS: NONE */void ujfs_swap_fsck_blk_map_page(struct fsck_blk_map_page *fsck_bmap_p){	int i;	/* fsck_blk_map_page in libfs/fsckwsp.h */	for (i = 0; i < 1024; i++)		fsck_bmap_p->fsck_blkmap_words[i] =		    __le32_to_cpu(fsck_bmap_p->fsck_blkmap_words[i]);}/*-------------------------------------------------------------------- * NAME: ujfs_swap_iag * * FUNCTION: Change endianness of iag structure * * PARAMETERS: *      ia_t         - iag structure * * RETURNS: NONE */void ujfs_swap_iag(struct iag *ia_t){	int i;	/* iag in jfs_logmgr.h */	ia_t->agstart = __le64_to_cpu(ia_t->agstart);	ia_t->iagnum = __le32_to_cpu(ia_t->iagnum);	ia_t->inofreefwd = __le32_to_cpu(ia_t->inofreefwd);	ia_t->inofreeback = __le32_to_cpu(ia_t->inofreeback);	ia_t->extfreefwd = __le32_to_cpu(ia_t->extfreefwd);	ia_t->extfreeback = __le32_to_cpu(ia_t->extfreeback);	ia_t->iagfree = __le32_to_cpu(ia_t->iagfree);	for (i = 0; i < SMAPSZ; i++) {		ia_t->inosmap[i] = __le32_to_cpu(ia_t->inosmap[i]);		ia_t->extsmap[i] = __le32_to_cpu(ia_t->extsmap[i]);	}	ia_t->nfreeinos = __le32_to_cpu(ia_t->nfreeinos);	ia_t->nfreeexts = __le32_to_cpu(ia_t->nfreeexts);	for (i = 0; i < EXTSPERIAG; i++) {		ia_t->wmap[i] = __le32_to_cpu(ia_t->wmap[i]);		ia_t->pmap[i] = __le32_to_cpu(ia_t->pmap[i]);	}}/*-------------------------------------------------------------------- * NAME: ujfs_swap_logpage * * FUNCTION: Change endianness of logpage structure * * PARAMETERS: *      lpage_t         - logpage structure *      numpages        - number of pages to swap * * RETURNS: NONE */void ujfs_swap_logpage(struct logpage *lpage_t, uint8_t numpages){	uint8_t i;	struct logpage *lp_t;	/* struct logpage in jfs_logmgr.h */	lp_t = lpage_t;	for (i = 0; i < numpages; i++) {		lp_t->h.page = __le32_to_cpu(lp_t->h.page);		lp_t->h.rsrvd = __le16_to_cpu(lp_t->h.rsrvd);		lp_t->h.eor = __le16_to_cpu(lp_t->h.eor);		lp_t->t.page = __le32_to_cpu(lp_t->t.page);		lp_t->t.rsrvd = __le16_to_cpu(lp_t->t.rsrvd);		lp_t->t.eor = __le16_to_cpu(lp_t->t.eor);		lp_t++;	}}/*-------------------------------------------------------------------- * NAME: ujfs_swap_logsuper * * FUNCTION: Change endianness of logsuper structure * * PARAMETERS: *      lsup_t         - logsuper structure * * RETURNS: NONE */void ujfs_swap_logsuper(struct logsuper *lsup_t){	int i;	/* struct logsuper in jfs_logmgr.h */	lsup_t->magic = __le32_to_cpu(lsup_t->magic);	lsup_t->version = __le32_to_cpu(lsup_t->version);	lsup_t->serial = __le32_to_cpu(lsup_t->serial);	lsup_t->size = __le32_to_cpu(lsup_t->size);	lsup_t->bsize = __le32_to_cpu(lsup_t->bsize);	lsup_t->l2bsize = __le32_to_cpu(lsup_t->l2bsize);	lsup_t->flag = __le32_to_cpu(lsup_t->flag);	lsup_t->state = __le32_to_cpu(lsup_t->state);	lsup_t->end = __le32_to_cpu(lsup_t->end);}/*-------------------------------------------------------------------- * NAME: ujfs_swap_lrd * * FUNCTION: Change endianness of lrd structure * * PARAMETERS: *      lrd             - lrd structure * * RETURNS: NONE */void ujfs_swap_lrd(struct lrd *lrd){	lrd->logtid = __le32_to_cpu(lrd->logtid);	lrd->backchain = __le32_to_cpu(lrd->backchain);	lrd->type = __le16_to_cpu(lrd->type);	lrd->length = __le16_to_cpu(lrd->length);	lrd->aggregate = __le32_to_cpu(lrd->aggregate);	switch (lrd->type) {	case LOG_COMMIT:		break;	case LOG_SYNCPT:		lrd->log.syncpt.sync = __le32_to_cpu(lrd->log.syncpt.sync);		break;	case LOG_MOUNT:		break;	case LOG_REDOPAGE:	case LOG_NOREDOPAGE:		lrd->log.redopage.fileset = __le32_to_cpu(lrd->log.redopage.fileset);		lrd->log.redopage.inode = __le32_to_cpu(lrd->log.redopage.inode);		lrd->log.redopage.type = __le16_to_cpu(lrd->log.redopage.type);		lrd->log.redopage.l2linesize = __le16_to_cpu(lrd->log.redopage.l2linesize);		break;	case LOG_UPDATEMAP:		lrd->log.updatemap.fileset = __le32_to_cpu(lrd->log.updatemap.fileset);		lrd->log.updatemap.inode = __le32_to_cpu(lrd->log.updatemap.inode);		lrd->log.updatemap.type = __le16_to_cpu(lrd->log.updatemap.type);		lrd->log.updatemap.nxd = __le16_to_cpu(lrd->log.updatemap.nxd);		break;	case LOG_NOREDOINOEXT:		lrd->log.noredoinoext.fileset = __le32_to_cpu(lrd->log.noredoinoext.fileset);		lrd->log.noredoinoext.iagnum = __le32_to_cpu(lrd->log.noredoinoext.iagnum);		lrd->log.noredoinoext.inoext_idx = __le32_to_cpu(lrd->log.noredoinoext.inoext_idx);		break;	}}/*-------------------------------------------------------------------- * NAME: ujfs_swap_superblock * * FUNCTION: Change endianness of superblock structure * * PARAMETERS: *      sblk         - superblock structure * * RETURNS: NONE */void ujfs_swap_superblock(struct superblock *sblk){	/* superblock in jfs_superblock.h */	sblk->s_version = __le32_to_cpu(sblk->s_version);	sblk->s_size = __le64_to_cpu(sblk->s_size);	sblk->s_bsize = __le32_to_cpu(sblk->s_bsize);	sblk->s_l2bsize = __le16_to_cpu(sblk->s_l2bsize);	sblk->s_l2bfactor = __le16_to_cpu(sblk->s_l2bfactor);	sblk->s_pbsize = __le32_to_cpu(sblk->s_pbsize);	sblk->s_l2pbsize = __le16_to_cpu(sblk->s_l2pbsize);	sblk->pad = __le16_to_cpu(sblk->pad);	sblk->s_agsize = __le32_to_cpu(sblk->s_agsize);	sblk->s_flag = __le32_to_cpu(sblk->s_flag);	sblk->s_state = __le32_to_cpu(sblk->s_state);	sblk->s_compress = __le32_to_cpu(sblk->s_compress);	sblk->s_logdev = __le32_to_cpu(sblk->s_logdev);	sblk->s_logserial = __le32_to_cpu(sblk->s_logserial);	/* struct timestruc_t s_time; */	sblk->s_time.tv_sec = __le32_to_cpu(sblk->s_time.tv_sec);	sblk->s_time.tv_nsec = __le32_to_cpu(sblk->s_time.tv_nsec);	sblk->s_fsckloglen = __le32_to_cpu(sblk->s_fsckloglen);	sblk->s_xsize = __le64_to_cpu(sblk->s_xsize);}/*-------------------------------------------------------------------- * NAME: ujfs_swap_xtpage_t * * FUNCTION: Change endianness of xtpage_t structure * * PARAMETERS: *      xtp_t         - xtpage_t structure *      mode          - PUT or GET * * RETURNS: NONE */void ujfs_swap_xtpage_t(xtpage_t * xtp_t){	/* xtpage_t in jfs_xtree.h */	/* struct xtheader header; */	xtp_t->header.next = __le64_to_cpu(xtp_t->header.next);	xtp_t->header.prev = __le64_to_cpu(xtp_t->header.prev);	xtp_t->header.maxentry = __le16_to_cpu(xtp_t->header.maxentry);	xtp_t->header.rsrvd2 = __le16_to_cpu(xtp_t->header.rsrvd2);	xtp_t->header.nextindex = __le16_to_cpu(xtp_t->header.nextindex);}/*-------------------------------------------------------------------- * NAME: ujfs_swap_fscklog_entry_hdr * * FUNCTION: Change endianness of fscklog_entry_hdr structure * * PARAMETERS: *      hdptr         - pointer to fscklog_entry_hdr structure * * RETURNS: NONE */void ujfs_swap_fscklog_entry_hdr(struct fscklog_entry_hdr *hdptr){	/* fscklog_entry_hdr in fscklog.h */	hdptr->entry_length = __le16_to_cpu(hdptr->entry_length);}#endif				/* BIG ENDIAN */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -