X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=extras%2Fvolume_id%2Fvolume_id%2Fvolume_id.h;h=9994615c69c9e74e106a748d644f955ee02662d9;hb=09c2bab517c58d9447660a9584822c8de6b641f0;hp=6c25a243c3fde2c1071a5151429e2c1cb4139b2e;hpb=c033fd9f01b3cd5771875069c26d3af06969a300;p=elogind.git diff --git a/extras/volume_id/volume_id/volume_id.h b/extras/volume_id/volume_id/volume_id.h index 6c25a243c..9994615c6 100644 --- a/extras/volume_id/volume_id/volume_id.h +++ b/extras/volume_id/volume_id/volume_id.h @@ -3,29 +3,20 @@ * * Copyright (C) 2005 Kay Sievers * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation version 2 of the License. */ #ifndef _VOLUME_ID_H_ #define _VOLUME_ID_H_ -#define VOLUME_ID_VERSION 31 +#include + +#define VOLUME_ID_VERSION 52 #define VOLUME_ID_LABEL_SIZE 64 -#define VOLUME_ID_UUID_SIZE 16 -#define VOLUME_ID_UUID_STRING_SIZE 37 +#define VOLUME_ID_UUID_SIZE 36 #define VOLUME_ID_FORMAT_SIZE 32 #define VOLUME_ID_PATH_MAX 256 #define VOLUME_ID_PARTITIONS_MAX 256 @@ -38,44 +29,46 @@ enum volume_id_usage { VOLUME_ID_PARTITIONTABLE, VOLUME_ID_RAID, VOLUME_ID_DISKLABEL, + VOLUME_ID_CRYPTO, }; struct volume_id_partition { enum volume_id_usage usage_id; char *usage; char *type; - unsigned long long off; - unsigned long long len; - unsigned int partition_type_raw; + uint64_t off; + uint64_t len; + uint8_t partition_type_raw; }; struct volume_id { - unsigned char label_raw[VOLUME_ID_LABEL_SIZE]; - unsigned int label_raw_len; + uint8_t label_raw[VOLUME_ID_LABEL_SIZE]; + size_t label_raw_len; char label[VOLUME_ID_LABEL_SIZE+1]; - unsigned char uuid_raw[VOLUME_ID_UUID_SIZE]; - char uuid[VOLUME_ID_UUID_STRING_SIZE]; + uint8_t uuid_raw[VOLUME_ID_UUID_SIZE]; + size_t uuid_raw_len; + char uuid[VOLUME_ID_UUID_SIZE+1]; enum volume_id_usage usage_id; char *usage; char *type; char type_version[VOLUME_ID_FORMAT_SIZE]; struct volume_id_partition *partitions; - unsigned int partition_count; + size_t partition_count; int fd; - unsigned char *sbbuf; - unsigned int sbbuf_len; - unsigned char *seekbuf; - unsigned long long seekbuf_off; - unsigned int seekbuf_len; - int fd_close; + uint8_t *sbbuf; + size_t sbbuf_len; + uint8_t *seekbuf; + uint64_t seekbuf_off; + size_t seekbuf_len; + int fd_close:1; }; extern struct volume_id *volume_id_open_fd(int fd); extern struct volume_id *volume_id_open_node(const char *path); extern struct volume_id *volume_id_open_dev_t(dev_t devt); -extern int volume_id_probe_all(struct volume_id *id, unsigned long long off, unsigned long long size); +extern int volume_id_probe_all(struct volume_id *id, uint64_t off, uint64_t size); extern void volume_id_close(struct volume_id *id); #endif