X-Git-Url: http://git.tuebingen.mpg.de/?p=osl.git;a=blobdiff_plain;f=osl.c;h=430d120fb3a286f61e1eb2a8ab3c2912d6652206;hp=3f55ed4c24fc3217e6f4925b1b0e6b8d82de550a;hb=8709b1999511701c143d803a75c3d094b93a3071;hpb=06fa6acd87ac23ee3ca422dbc56cf97a3c71aa09 diff --git a/osl.c b/osl.c index 3f55ed4..430d120 100644 --- a/osl.c +++ b/osl.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2007-2008 Andre Noll + * Copyright (C) 2007-2009 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -10,7 +10,6 @@ #include "log.h" #include "osl.h" -#include "error.h" #include "util.h" #include "osl_core.h" @@ -38,8 +37,6 @@ static const unsigned int errmsgidx[] = { __export const char *osl_strerror(int num) { - if (IS_SYSTEM_ERROR(num)) - return strerror((num) & ((1 << SYSTEM_ERROR_BIT) - 1)); return msgstr.str + errmsgidx[num]; } @@ -334,8 +331,8 @@ err: * \param map The memory mapping of the index file. * \param desc The values found in the index header are returned here. * - * Read the index header, check for the paraslash magic string and the table version number. - * Read all information stored in the index header into \a desc. + * Read the index header, check for the osl magic string and the table version + * number. Read all information stored in the index header into \a desc. * * \return Standard. * @@ -352,7 +349,7 @@ int read_table_desc(struct osl_object *map, struct osl_table_description *desc) if (map->size < MIN_INDEX_HEADER_SIZE(1)) return -E_OSL_SHORT_TABLE; - if (strncmp(buf + IDX_PARA_MAGIC, PARA_MAGIC, strlen(PARA_MAGIC))) + if (strncmp(buf + IDX_OSL_MAGIC, OSL_MAGIC, strlen(OSL_MAGIC))) return -E_OSL_NO_MAGIC; version = read_u8(buf + IDX_VERSION); if (version < MIN_TABLE_VERSION || version > MAX_TABLE_VERSION) @@ -487,7 +484,7 @@ static int create_table_index(struct osl_table *t) buf = calloc(1, size); if (!buf) return -E_OSL_NOMEM; - sprintf(buf + IDX_PARA_MAGIC, "%s", PARA_MAGIC); + 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); @@ -534,7 +531,7 @@ __export int osl_create_table(const struct osl_table_description *desc) continue; if (!table_dir) { ret = osl_mkdir(desc->dir, 0777); - if (ret < 0 && !is_errno(-ret, EEXIST)) + if (ret < 0 && ret != -E_OSL_DIR_EXISTS) goto out; table_dir = make_message("%s/%s", desc->dir, desc->name); @@ -1070,12 +1067,10 @@ __export int osl_open_table(const struct osl_table_description *table_desc, if (!dirname) goto err; /* check if directory exists */ - ret = stat(dirname, &statbuf); + ret = osl_stat(dirname, &statbuf); free(dirname); - if (ret < 0) { - ret = -E_OSL_STAT; + if (ret < 0) goto err; - } ret = -E_OSL_NOTDIR; if (!S_ISDIR(statbuf.st_mode)) goto err; @@ -1111,7 +1106,7 @@ static int create_disk_storage_object_dir(const struct osl_table *t, return -E_OSL_NOMEM; ret = osl_mkdir(dirname, 0777); free(dirname); - if (ret < 0 && !is_errno(-ret, EEXIST)) + if (ret < 0 && ret != -E_OSL_DIR_EXISTS) return ret; return 1; } @@ -1178,15 +1173,15 @@ static int delete_disk_storage_file(const struct osl_table *t, unsigned col_num, const char *ds_name) { char *dirname, *filename = disk_storage_path(t, col_num, ds_name); - int ret, err; + int ret = 1; if (!filename) return -E_OSL_NOMEM; - ret = unlink(filename); - err = errno; + if (unlink(filename) < 0) + ret = errno == ENOENT? -E_OSL_NOENT : -E_OSL_UNLINK; free(filename); if (ret < 0) - return -E_OSL_UNLINK; + return ret; if (!(t->desc->flags & OSL_LARGE_TABLE)) return 1; dirname = disk_storage_dirname(t, col_num, ds_name); @@ -1563,7 +1558,7 @@ __export int osl_update_object(struct osl_table *t, const struct osl_row *r, if (ret < 0) return ret; ret = delete_disk_storage_file(t, col_num, ds_name); - if (ret < 0 && !is_errno(-ret, ENOENT)) { + if (ret < 0 && ret != -E_OSL_NOENT) { free(ds_name); return ret; }