volume_id: uuid_format small code shrink

function                                             old     new   delta
volume_id_set_uuid                                   318     300     -18

Signed-off-by: Sven-Göran Bergh <sgb@systemasis.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Sven-Göran Bergh 2013-01-14 00:50:49 +01:00 committed by Denys Vlasenko
parent 07b419dbcb
commit 5218515508
2 changed files with 9 additions and 20 deletions

View File

@ -135,23 +135,8 @@ void volume_id_set_label_unicode16(struct volume_id *id, const uint8_t *buf, enu
void volume_id_set_uuid(struct volume_id *id, const uint8_t *buf, enum uuid_format format) void volume_id_set_uuid(struct volume_id *id, const uint8_t *buf, enum uuid_format format)
{ {
unsigned i; unsigned i;
unsigned count = 0; unsigned count = (format == UUID_DCE_STRING ? VOLUME_ID_UUID_SIZE : 4 << format);
switch (format) {
case UUID_DOS:
count = 4;
break;
case UUID_NTFS:
count = 8;
break;
case UUID_DCE:
count = 16;
break;
case UUID_DCE_STRING:
/* 36 is ok, id->uuid has one extra byte for NUL */
count = VOLUME_ID_UUID_SIZE;
break;
}
// memcpy(id->uuid_raw, buf, count); // memcpy(id->uuid_raw, buf, count);
// id->uuid_raw_len = count; // id->uuid_raw_len = count;

View File

@ -136,11 +136,15 @@ void FAST_FUNC free_volume_id(struct volume_id *id);
#define cpu_to_be32(x) (x) #define cpu_to_be32(x) (x)
#endif #endif
/* volume_id_set_uuid(id,buf,fmt) assumes size of uuid buf
* by shifting: 4 << fmt, except for fmt == UUID_DCE_STRING.
* The constants below should match sizes.
*/
enum uuid_format { enum uuid_format {
UUID_DCE_STRING, UUID_DOS = 0, /* 4 bytes */
UUID_DCE, UUID_NTFS = 1, /* 8 bytes */
UUID_DOS, UUID_DCE = 2, /* 16 bytes */
UUID_NTFS, UUID_DCE_STRING = 3, /* 36 bytes (VOLUME_ID_UUID_SIZE) */
}; };
enum endian { enum endian {