X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fmdadm.git;a=blobdiff_plain;f=util.c;h=c21bf5143dfd43129cadb04f9816288f83a5ef0e;hp=ffb113c3c9d5179a872e0e55ed39b7f8f7ef0043;hb=350f29f90d1f6bb3ddfafea368327911f9e8b27c;hpb=3d3dd91e3837d5eb6eeaa876c39153f2b0a4929d diff --git a/util.c b/util.c index ffb113c3..c21bf514 100644 --- a/util.c +++ b/util.c @@ -246,6 +246,25 @@ int same_uuid(int a[4], int b[4], int swapuuid) return 0; } } +void copy_uuid(void *a, int b[4], int swapuuid) +{ + if (swapuuid) { + /* parse uuids are hostendian. + * uuid's from some superblocks are big-ending + * if there is a difference, we need to swap.. + */ + unsigned char *ac = (unsigned char *)a; + unsigned char *bc = (unsigned char *)b; + int i; + for (i=0; i<16; i+= 4) { + ac[i+0] = bc[i+3]; + ac[i+1] = bc[i+2]; + ac[i+2] = bc[i+1]; + ac[i+3] = bc[i+0]; + } + } else + memcpy(a, b, 16); +} #ifndef MDASSEMBLE int check_ext2(int fd, char *name)