-struct extent {
- unsigned long long start, size;
-};
-int cmp_extent(const void *av, const void *bv)
-{
- const struct extent *a = av;
- const struct extent *b = bv;
- if (a->start < b->start)
- return -1;
- if (a->start > b->start)
- return 1;
- return 0;
-}
-
-struct extent *get_extents(struct ddf_super *ddf, struct dl *dl)
-{
- /* find a list of used extents on the give physical device
- * (dnum) of the given ddf.
- * Return a malloced array of 'struct extent'
-
-FIXME ignore DDF_Legacy devices?
-
- */
- struct extent *rv;
- int n = 0;
- int dnum;
- int i, j;
-
- /* FIXME this is dl->pdnum */
- for (dnum = 0; dnum < ddf->phys->used_pdes; dnum++)
- if (memcmp(dl->disk.guid,
- ddf->phys->entries[dnum].guid,
- DDF_GUID_LEN) == 0)
- break;
-
- if (dnum == ddf->phys->used_pdes)
- return NULL;
-
- rv = malloc(sizeof(struct extent) * (ddf->max_part + 2));
- if (!rv)
- return NULL;
-
- for (i = 0; i < ddf->max_part; i++) {
- struct vcl *v = dl->vlist[i];
- if (v == NULL)
- continue;
- for (j=0; j < v->conf.prim_elmnt_count; j++)
- if (v->conf.phys_refnum[j] == dl->disk.refnum) {
- /* This device plays role 'j' in 'v'. */
- rv[n].start = __be64_to_cpu(v->lba_offset[j]);
- rv[n].size = __be64_to_cpu(v->conf.blocks);
- n++;
- break;
- }
- }
- qsort(rv, n, sizeof(*rv), cmp_extent);
-
- rv[n].start = __be64_to_cpu(ddf->phys->entries[dnum].config_size);
- rv[n].size = 0;
- return rv;
-}
-
-int validate_geometry_ddf_bvd(struct supertype *st,
- int level, int layout, int raiddisks,
- int chunk, unsigned long long size,
- char *dev, unsigned long long *freesize)
+static int validate_geometry_ddf_bvd(struct supertype *st,
+ int level, int layout, int raiddisks,
+ int chunk, unsigned long long size,
+ char *dev, unsigned long long *freesize,
+ int verbose)