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

[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
...@@ -27,6 +27,16 @@ uuid_init(void) ...@@ -27,6 +27,16 @@ uuid_init(void)
mutex_init(&uuid_monitor); 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. * uuid_getnodeuniq - obtain the node unique fields of a UUID.
* *
...@@ -36,16 +46,11 @@ uuid_init(void) ...@@ -36,16 +46,11 @@ uuid_init(void)
void void
uuid_getnodeuniq(uuid_t *uuid, int fsid [2]) uuid_getnodeuniq(uuid_t *uuid, int fsid [2])
{ {
char *uu = (char *)uuid; xfs_uu_t *uup = (xfs_uu_t *)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
*/
fsid[0] = (INT_GET(*(u_int16_t*)(uu+8), ARCH_CONVERT) << 16) + fsid[0] = (be16_to_cpu(uup->uu_clockseq) << 16) |
INT_GET(*(u_int16_t*)(uu+4), ARCH_CONVERT); be16_to_cpu(uup->uu_timemid);
fsid[1] = INT_GET(*(u_int32_t*)(uu ), ARCH_CONVERT); fsid[1] = be16_to_cpu(uup->uu_timelow);
} }
void void
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment