X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=extras%2Fvolume_id%2Flib%2Futil.h;h=e3c766d4ab66f947381d3298c70839f43475184e;hb=726687ad48bdececed1e7e44387c50e009e28208;hp=1d1b53bb5753043800f49bcf19e3400cae6521d7;hpb=83cc6ab4760817509f1ed1ee429669e563f82caf;p=elogind.git diff --git a/extras/volume_id/lib/util.h b/extras/volume_id/lib/util.h index 1d1b53bb5..e3c766d4a 100644 --- a/extras/volume_id/lib/util.h +++ b/extras/volume_id/lib/util.h @@ -23,10 +23,16 @@ #include #include -#define err(format, arg...) volume_id_log(LOG_ERR, __FILE__, __LINE__, format, ##arg) -#define info(format, arg...) volume_id_log(LOG_INFO, __FILE__, __LINE__, format, ##arg) +#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 -#define dbg(format, arg...) volume_id_log(LOG_DEBUG, __FILE__, __LINE__, format, ##arg) +#define dbg(format, arg...) volume_id_log_fn(LOG_DEBUG, __FILE__, __LINE__, format, ##arg) #else #define dbg(format, arg...) do { } while (0) #endif @@ -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);