summaryrefslogtreecommitdiffstats
path: root/sys/geom/label/g_label.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/geom/label/g_label.h')
-rw-r--r--sys/geom/label/g_label.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/sys/geom/label/g_label.h b/sys/geom/label/g_label.h
index a084831..2d17bbc 100644
--- a/sys/geom/label/g_label.h
+++ b/sys/geom/label/g_label.h
@@ -1,5 +1,5 @@
/*-
- * Copyright (c) 2004 Pawel Jakub Dawidek <pjd@FreeBSD.org>
+ * Copyright (c) 2004-2005 Pawel Jakub Dawidek <pjd@FreeBSD.org>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -34,7 +34,12 @@
#define G_LABEL_CLASS_NAME "LABEL"
#define G_LABEL_MAGIC "GEOM::LABEL"
-#define G_LABEL_VERSION 1
+/*
+ * Version history:
+ * 1 - Initial version number.
+ * 2 - Added md_provsize field to metadata.
+ */
+#define G_LABEL_VERSION 2
#define G_LABEL_DIR "label"
#ifdef _KERNEL
@@ -68,6 +73,7 @@ struct g_label_metadata {
char md_magic[16]; /* Magic value. */
uint32_t md_version; /* Version number. */
char md_label[16]; /* Label. */
+ uint64_t md_provsize; /* Provider's size. */
};
static __inline void
label_metadata_encode(const struct g_label_metadata *md, u_char *data)
@@ -76,6 +82,7 @@ label_metadata_encode(const struct g_label_metadata *md, u_char *data)
bcopy(md->md_magic, data, sizeof(md->md_magic));
le32enc(data + 16, md->md_version);
bcopy(md->md_label, data + 20, sizeof(md->md_label));
+ le64enc(data + 36, md->md_provsize);
}
static __inline void
label_metadata_decode(const u_char *data, struct g_label_metadata *md)
@@ -84,5 +91,6 @@ label_metadata_decode(const u_char *data, struct g_label_metadata *md)
bcopy(data, md->md_magic, sizeof(md->md_magic));
md->md_version = le32dec(data + 16);
bcopy(data + 20, md->md_label, sizeof(md->md_label));
+ md->md_provsize = le64dec(data + 36);
}
#endif /* _G_LABEL_H_ */
OpenPOWER on IntegriCloud