Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 794fe2dc authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Nathan Scott
Browse files

[XFS] endianess annotations and tidying for the uuid code



SGI-PV: 943272
SGI-Modid: xfs-linux-melb:xfs-kern:203709a

Signed-off-by: default avatarChristoph Hellwig <hch@sgi.com>
Signed-off-by: default avatarNathan Scott <nathans@sgi.com>
parent 60a204f0
Loading
Loading
Loading
Loading
+14 −9
Original line number Diff line number Diff line
@@ -27,6 +27,16 @@ uuid_init(void)
	mutex_init(&uuid_monitor);
}


/* IRIX interpretation of an uuid_t */
typedef struct {
	__be32	uu_timelow;
	__be16	uu_timemid;
	__be16	uu_timehi;
	__be16	uu_clockseq;
	__be16	uu_node[3];
} xfs_uu_t;

/*
 * uuid_getnodeuniq - obtain the node unique fields of a UUID.
 *
@@ -36,16 +46,11 @@ uuid_init(void)
void
uuid_getnodeuniq(uuid_t *uuid, int fsid [2])
{
	char	*uu = (char *)uuid;

	/* on IRIX, this function assumes big-endian fields within
	 * the uuid, so we use INT_GET to get the same result on
	 * little-endian systems
	 */
	xfs_uu_t *uup = (xfs_uu_t *)uuid;

	fsid[0] = (INT_GET(*(u_int16_t*)(uu+8), ARCH_CONVERT) << 16) +
		   INT_GET(*(u_int16_t*)(uu+4), ARCH_CONVERT);
	fsid[1] =  INT_GET(*(u_int32_t*)(uu  ), ARCH_CONVERT);
	fsid[0] = (be16_to_cpu(uup->uu_clockseq) << 16) |
		   be16_to_cpu(uup->uu_timemid);
	fsid[1] = be16_to_cpu(uup->uu_timelow);
}

void