X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=extras%2Fvolume_id%2Flib%2Futil.h;h=e3c766d4ab66f947381d3298c70839f43475184e;hp=dc60a09123eb6c94fa237b7057a76b56c3e00667;hb=5caa40bea22b9ac07dbe667985d1b8556d8b6b80;hpb=92da64c700371126ee3bde79f983e0b3056d9442 diff --git a/extras/volume_id/lib/util.h b/extras/volume_id/lib/util.h index dc60a0912..e3c766d4a 100644 --- a/extras/volume_id/lib/util.h +++ b/extras/volume_id/lib/util.h @@ -23,6 +23,12 @@ #include #include +#define ALLOWED_CHARS "#+-.:=@_" + +#ifndef PACKED +#define PACKED __attribute__((packed)) +#endif + #define err(format, arg...) volume_id_log_fn(LOG_ERR, __FILE__, __LINE__, format, ##arg) #define info(format, arg...) volume_id_log_fn(LOG_INFO, __FILE__, __LINE__, format, ##arg) #ifdef DEBUG @@ -59,11 +65,14 @@ #endif /* __BYTE_ORDER */ enum uuid_format { - UUID_DCE_STRING, + UUID_STRING, + UUID_HEX_STRING, UUID_DCE, UUID_DOS, - UUID_NTFS, - UUID_HFS, + UUID_64BIT_LE, + UUID_64BIT_BE, + UUID_MD, + UUID_LVM, }; enum endian { @@ -71,12 +80,13 @@ enum endian { BE = 1 }; -extern void volume_id_set_unicode16(char *str, size_t len, const uint8_t *buf, enum endian endianess, size_t count); +extern int volume_id_utf8_encoded_valid_unichar(const char *str); +extern size_t volume_id_set_unicode16(uint8_t *str, size_t len, const uint8_t *buf, enum endian endianess, size_t count); extern void volume_id_set_usage(struct volume_id *id, enum volume_id_usage usage_id); extern void volume_id_set_label_raw(struct volume_id *id, const uint8_t *buf, size_t count); extern void volume_id_set_label_string(struct volume_id *id, const uint8_t *buf, size_t count); extern void volume_id_set_label_unicode16(struct volume_id *id, const uint8_t *buf, enum endian endianess, size_t count); -extern void volume_id_set_uuid(struct volume_id *id, const uint8_t *buf, enum uuid_format format); +extern void volume_id_set_uuid(struct volume_id *id, const uint8_t *buf, size_t len, enum uuid_format format); extern uint8_t *volume_id_get_buffer(struct volume_id *id, uint64_t off, size_t len); extern void volume_id_free_buffer(struct volume_id *id);