Example #1
0
// This is for the new 4.4 cylinder group block
void
byte_swap_cgout(struct cg *cg, struct fs * fs)
{
	int32_t * ulptr;
	int16_t * usptr;
	int size;

	byte_swap_int(cg->cg_firstfield);
	byte_swap_int(cg->cg_magic);
	byte_swap_int(cg->cg_time);
	byte_swap_int(cg->cg_cgx);
	byte_swap_short(cg->cg_ncyl);
	byte_swap_short(cg->cg_niblk);
	byte_swap_int(cg->cg_ndblk);
	byte_swap_csum(&cg->cg_cs);
	byte_swap_int(cg->cg_rotor);
	byte_swap_int(cg->cg_frotor);
	byte_swap_int(cg->cg_irotor);
	byte_swap_ints(cg->cg_frsum, MAXFRAG);
	byte_swap_int(cg->cg_freeoff);
	byte_swap_int(cg->cg_nextfreeoff);
	byte_swap_int(cg->cg_nclusterblks);
	byte_swap_ints(cg->cg_sparecon, 13);

	byte_swap_int(cg->cg_iusedoff);
	byte_swap_int(cg->cg_clusteroff);
	ulptr = ((int32_t *)((u_int8_t *)(cg) + (cg)->cg_btotoff));
	size = fs->fs_cpg;
	byte_swap_ints(ulptr, size);	/*cg_btotoff*/
	byte_swap_int(cg->cg_btotoff);

	usptr = ((int16_t *)((u_int8_t *)(cg) + (cg)->cg_boff));
	size = fs->fs_cpg * fs->fs_nrpos;

	byte_swap_shorts(usptr,size);	/*cg_boff*/
	byte_swap_int(cg->cg_boff);

	if ((unsigned int)fs->fs_contigsumsize > 0) {
	ulptr = ((int32_t *)((u_int8_t *)(cg) + (cg)->cg_clustersumoff));
		size = (fs->fs_contigsumsize + 1);
		byte_swap_ints(ulptr, size);	/*cg_clustersumoff*/

	}
	byte_swap_int(cg->cg_clustersumoff);

}
Example #2
0
void
byte_swap_cylgroup(struct cg *cg)
{
    swapBigLongToHost(cg->cg_time);
    swapBigLongToHost(cg->cg_cgx);
    swapBigShortToHost(cg->cg_ncyl);
    swapBigShortToHost(cg->cg_niblk);
    swapBigLongToHost(cg->cg_ndblk);
    byte_swap_csum(&cg->cg_cs);
    swapBigLongToHost(cg->cg_rotor);
    swapBigLongToHost(cg->cg_frotor);
    swapBigLongToHost(cg->cg_irotor);
    swapBigIntsToHost(cg->cg_frsum, MAXFRAG);
    swapBigIntsToHost(cg->cg_btot, MAXCPG);
    swapBigShortToHosts((short *) cg->cg_b, MAXCPG * NRPOS);
    swapBigLongToHost(cg->cg_magic);
}
Example #3
0
/* This is for the new 4.4 cylinder group block */
void
byte_swap_cgin(struct cg *cg, struct fs * fs)
{
	int32_t * ulptr;
	int16_t * usptr;
	size_t size;

	byte_swap_int(cg->cg_firstfield);
	byte_swap_int(cg->cg_magic);
	byte_swap_int(cg->cg_time);
	byte_swap_int(cg->cg_cgx);
	byte_swap_short(cg->cg_ncyl);
	byte_swap_short(cg->cg_niblk);
	byte_swap_int(cg->cg_ndblk);
	byte_swap_csum(&cg->cg_cs);
	byte_swap_int(cg->cg_rotor);
	byte_swap_int(cg->cg_frotor);
	byte_swap_int(cg->cg_irotor);
	byte_swap_ints(cg->cg_frsum, MAXFRAG);
	byte_swap_int(cg->cg_iusedoff);
	byte_swap_int(cg->cg_freeoff);
	byte_swap_int(cg->cg_nextfreeoff);
	byte_swap_int(cg->cg_clusteroff);
	byte_swap_int(cg->cg_nclusterblks);
	byte_swap_ints(cg->cg_sparecon, 13);

	byte_swap_int(cg->cg_btotoff);
	if (cg->cg_btotoff < 0 || cg->cg_btotoff > sblock.fs_bsize) {
		pfatal("CG bad on input:  block total offset out of range (%d)\n",
			cg->cg_btotoff);
	} else {
		ulptr = ((int32_t *)((u_int8_t *)(cg) + (cg)->cg_btotoff));
		size = fs->fs_cpg;

		if (size > sblock.fs_bsize ||
			(u_int8_t*)(ulptr + size) > ((u_int8_t*)cg + sblock.fs_bsize)) {
			pfatal("CG bad on input:  Block totals array out of range\n");
		} else {
			byte_swap_ints(ulptr, size);	/*cg_btotoff*/
		}
	}

	byte_swap_int(cg->cg_boff);
	if (cg->cg_boff < 0 || cg->cg_boff > sblock.fs_bsize) {
		pfatal("CG bad on input:  free block offset out of range (%d)\n",
			cg->cg_boff);
	} else {
		usptr = ((int16_t *)((u_int8_t *)(cg) + (cg)->cg_boff));
		size = fs->fs_cpg * fs->fs_nrpos;
		if (size > sblock.fs_bsize ||
			(u_int8_t*)(usptr + size) > ((u_int8_t*)cg + sblock.fs_bsize)) {
			pfatal("CG bad on input:  free block array out of bounds\n");
		} else {
			byte_swap_shorts(usptr,size);	/*cg_boff*/
		}
	}
	byte_swap_int(cg->cg_clustersumoff);

	if ((unsigned int)cg->cg_clustersumoff > sblock.fs_bsize) {
		pfatal("CG bad on input:  sum offset array out of range (%d)\n",
			cg->cg_clustersumoff);
	} else {
		if ((unsigned int)fs->fs_contigsumsize > 0) {
			ulptr = ((int32_t *)((u_int8_t *)(cg) + (cg)->cg_clustersumoff));
			size = (fs->fs_contigsumsize + 1);
			if (size > sblock.fs_bsize ||
				(u_int8_t*)(ulptr + size) > ((u_int8_t*)cg + sblock.fs_bsize)) {
				pfatal("CG bad on input:  sum array out of bounds\n");
			} else {
				byte_swap_ints(ulptr, size);	/*cg_clustersumoff*/
			}
		}
	}
}