From 758b8b4ba03b8f0b63216324e6c548dad78a9bfe Mon Sep 17 00:00:00 2001 From: Joe Thornber Date: Wed, 10 Oct 2001 15:30:31 +0000 Subject: [PATCH] o builds a very sub-optimal table --- lib/activate/table-build.c | 35 +++++++++++++++++++++++++++++++++++ lib/activate/table-build.h | 13 +++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 lib/activate/table-build.c create mode 100644 lib/activate/table-build.h diff --git a/lib/activate/table-build.c b/lib/activate/table-build.c new file mode 100644 index 000000000..c88d0b320 --- /dev/null +++ b/lib/activate/table-build.c @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2001 Sistina Software (UK) Limited. + * + * This file is released under the GPL. + */ + +#include "table-build.c" + +/* FIXME: optimise linear runs */ +int build_table(struct volume_group *vg, struct logical_volume *lv, + const char *file) +{ + int i; + uint64_t sector = 0; + uint64_t pe_size = vg->extent_size; + uint64_t dest; + struct pe_specifier *pes; + FILE *fp = fopen(file, "w"); + + if (!fp) { + log_err("couldn't open '%s' to write table", file); + return 0; + } + + for (i = 0; i < lv->le_count; i++) { + pes = lv->map + i; + dest = pes->pv->pe_start + (pe_size * pes->pe); + fprintf(fp, "%ull %ull linear %s %ull\n", + sector, pe_size, pes->pv->dev->name, dest); + sector += pe_size; + } + fclose(fp); + + return 1; +} diff --git a/lib/activate/table-build.h b/lib/activate/table-build.h new file mode 100644 index 000000000..d783bf107 --- /dev/null +++ b/lib/activate/table-build.h @@ -0,0 +1,13 @@ +/* + * Copyright (C) 2001 Sistina Software (UK) Limited. + * + * This file is released under the GPL. + */ + +#ifndef TABLE_BUILD_H +#define TABLE_BUILD_H + +int build_table(struct volume_group *vg, struct logical_volume *lv, + const char *file); + +#endif -- 2.43.5