From d032b723ee4b7d25ec9be9387e2cc1fa04ec3190 Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Tue, 18 Apr 2017 20:23:30 +0200 Subject: [PATCH] Remove COMPAT_TABLE_VERSION. The compatibility version concept was introduced eight years ago in commit (62d228ec), and was never needed. In fact, COMPAT_TABLE_VERSION has always been zero so far. This commit gets rid of it. Given a library version and the on-disk table version, we can still tell whether the table can be opened by comparing the MIN_TABLE_VERSION and the CURRENT_TABLE_VERSION numbers of the library against the value stored in the table (i.e., the CURRENT_TABLE_VERSION value of the library that created the table). --- osl.c | 24 +++++++----------------- osl_core.h | 7 ------- 2 files changed, 7 insertions(+), 24 deletions(-) diff --git a/osl.c b/osl.c index e31811b..c5f70ff 100644 --- a/osl.c +++ b/osl.c @@ -349,7 +349,7 @@ err: int read_table_desc(struct osl_object *map, struct osl_table_description *desc) { char *buf = map->data; - uint8_t version, compat_version, create_version; + uint8_t table_version; uint16_t header_size; int ret, i; unsigned offset; @@ -359,20 +359,11 @@ int read_table_desc(struct osl_object *map, struct osl_table_description *desc) return -E_OSL_SHORT_TABLE; if (strncmp(buf + IDX_OSL_MAGIC, OSL_MAGIC, strlen(OSL_MAGIC))) return -E_OSL_NO_MAGIC; - version = read_u8(buf + IDX_VERSION); - /* - * The on-disk version consists of two version numbers: the - * create_version (low 4 bits) is the CURRENT_TABLE_VERSION version - * number of the library that created the table, and compat_version - * (high 4 bits) tells us the lowest version of the library that can - * still read this table. - */ - create_version = version & 0xf; - compat_version = version >> 4; - INFO_LOG("create_version: %u, compat_version: %u\n", create_version, - compat_version); - if (create_version < MIN_TABLE_VERSION /* table too old */ - || compat_version > CURRENT_TABLE_VERSION) /* libosl too old */ + table_version = read_u8(buf + IDX_VERSION); + INFO_LOG("osl versions (table/min/current): %u/%u/%u\n", + table_version, MIN_TABLE_VERSION, CURRENT_TABLE_VERSION); + if (table_version < MIN_TABLE_VERSION /* table too old */ + || table_version > CURRENT_TABLE_VERSION) /* libosl too old */ return -E_OSL_VERSION_MISMATCH; desc->flags = read_u8(buf + IDX_TABLE_FLAGS); desc->num_columns = read_u16(buf + IDX_NUM_COLUMNS); @@ -507,8 +498,7 @@ static int create_table_index(struct osl_table *t) sprintf(buf + IDX_OSL_MAGIC, "%s", OSL_MAGIC); write_u8(buf + IDX_TABLE_FLAGS, t->desc->flags); write_u8(buf + IDX_DIRTY_FLAG, 0); - write_u8(buf + IDX_VERSION, CURRENT_TABLE_VERSION - + (COMPAT_TABLE_VERSION << 4)); + write_u8(buf + IDX_VERSION, CURRENT_TABLE_VERSION); write_u16(buf + IDX_NUM_COLUMNS, t->num_mapped_columns + t->num_disk_storage_columns); write_u16(buf + IDX_HEADER_SIZE, t->index_header_size); offset = IDX_COLUMN_DESCRIPTIONS; diff --git a/osl_core.h b/osl_core.h index 6046d8c..9f31181 100644 --- a/osl_core.h +++ b/osl_core.h @@ -196,13 +196,6 @@ _static_inline_ size_t index_column_description_size(const char *name) */ #define CURRENT_TABLE_VERSION 1 -/* - * The lowest library version that is able to use tables of version - * CURRENT_TABLE_VERSION. Also written to the index of new tables. If - * compat_version(table) > current_version(lib) the table can not be opened. - */ -#define COMPAT_TABLE_VERSION 0 - /* * The lowest table version this library understands. On open, if * current_version(table) < min_version(lib) the osl_open_table() call -- 2.39.5