X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=osl_core.h;h=a23bb3d9d0652dbc8811032240a14fba7db05ce4;hp=27b808a7dfbf415efec209c86e09128569b94000;hb=c73d23911d78ed10179c12ef8f79a3fcf3bbcdaf;hpb=f6f50d03a09d6bc423324206d274336e9905bbb4 diff --git a/osl_core.h b/osl_core.h index 27b808a7..a23bb3d9 100644 --- a/osl_core.h +++ b/osl_core.h @@ -60,15 +60,19 @@ struct osl_table { */ unsigned disk_storage_name_column; /** The number of bytes of an index entry of a row. */ - unsigned index_entry_size; + unsigned row_index_size; /** Pointer to the internal representation of the columns. */ struct osl_column *columns; }; /** Internal representation of a row of an osl table */ struct osl_row { - /** The row number only present if there is at least one mapped column. */ - off_t id; + /** + * The row number. + * + * It is only used if there is at least one mapped column. + */ + off_t num; /** Array of size \a num_volatile_columns. */ struct osl_object *volatile_objects; }; @@ -76,9 +80,9 @@ struct osl_row { int read_table_desc(struct osl_object *map, struct osl_table_description *desc); int init_table_structure(const struct osl_table_description *desc, struct osl_table **table_ptr); -int row_is_invalid(struct osl_table *t, uint32_t id); +int row_is_invalid(struct osl_table *t, uint32_t row_num); int get_mapped_object(const struct osl_table *t, unsigned col_num, - uint32_t id, struct osl_object *obj); + uint32_t row_num, struct osl_object *obj); int para_truncate(const char *filename, off_t size); int unmap_table(struct osl_table *t, enum osl_close_flags flags); int init_rbtrees(struct osl_table *t); @@ -204,7 +208,7 @@ _static_inline_ size_t index_column_description_size(const char *name) _static_inline_ unsigned table_num_rows(const struct osl_table *t) { return (t->index_map.size - t->index_header_size) - / t->index_entry_size; + / t->row_index_size; } /** @@ -243,22 +247,22 @@ _static_inline_ char *column_filename(const struct osl_table *t, unsigned col_nu * * \param t Pointer to a table which has been mapped. * \param row_num The number of the row whose index entry should be retrieved. - * \param index_entry Result is returned here. + * \param row_index Result pointer. * * \return Positive on success, \p -E_INDEX_CORRUPTION otherwise. * - * \sa get_index_entry(). + * \sa get_cell_index(). */ -_static_inline_ int get_index_entry_start(const struct osl_table *t, uint32_t row_num, - unsigned char **index_entry) +_static_inline_ int get_row_index(const struct osl_table *t, uint32_t row_num, + char **row_index) { uint32_t index_offset; - index_offset = t->index_header_size + t->index_entry_size * row_num; + index_offset = t->index_header_size + t->row_index_size * row_num; if (index_offset + 8 > t->index_map.size) { - *index_entry = NULL; + *row_index = NULL; return -E_INDEX_CORRUPTION; } - *index_entry = (unsigned char *)(t->index_map.data) + index_offset; + *row_index = (char *)(t->index_map.data) + index_offset; return 1; } @@ -268,26 +272,26 @@ _static_inline_ int get_index_entry_start(const struct osl_table *t, uint32_t ro * \param t Pointer to a table which has been mapped. * \param row_num The number of the row whose index entry should be retrieved. * \param col_num The number of the column whose index entry should be retrieved. - * \param index_entry Result pointer. + * \param cell_index Result pointer. * * \return Positive on success, \p -E_INDEX_CORRUPTION otherwise. * - * \sa get_index_entry_start(). + * \sa get_row_index(). */ -_static_inline_ int get_index_entry(const struct osl_table *t, uint32_t row_num, - uint32_t col_num, unsigned char **index_entry) +_static_inline_ int get_cell_index(const struct osl_table *t, uint32_t row_num, + uint32_t col_num, char **cell_index) { - int ret = get_index_entry_start(t, row_num, index_entry); + int ret = get_row_index(t, row_num, cell_index); if (ret < 0) return ret; - *index_entry += t->columns[col_num].index_offset; + *cell_index += t->columns[col_num].index_offset; return ret; } /** * Change an index entry of a column after object was added. * - * \param index_entry_start This determines the row. + * \param row_index Pointer to the index of the row to update. * \param col Pointer to the column. * \param map_size The new size of the data file. * \param object_size The size of the object just appended to the data file. @@ -295,13 +299,13 @@ _static_inline_ int get_index_entry(const struct osl_table *t, uint32_t row_num, * This is called right after an object was appended to the data file for a * mapped column. * - * \sa get_index_entry_start(). + * \sa get_row_index(). */ -_static_inline_ void update_index_entry(char *index_entry_start, struct osl_column *col, +_static_inline_ void update_cell_index(char *row_index, struct osl_column *col, uint32_t map_size, uint32_t object_size) { - write_u32(index_entry_start + col->index_offset, map_size - object_size - 1); - write_u32(index_entry_start + col->index_offset + 4, object_size + 1); + write_u32(row_index + col->index_offset, map_size - object_size - 1); + write_u32(row_index + col->index_offset + 4, object_size + 1); } /** @@ -472,14 +476,14 @@ static inline char *disk_storage_name_of_hash(const struct osl_table *t, HASH_TY * \param old_path The source path. * \param new_path The destination path. * - * \return positive in success, \p -E_RENAME on errors. + * \return Standard. * * \sa rename(2). */ static inline int para_rename(const char *old_path, const char *new_path) { if (rename(old_path, new_path) < 0) - return -E_RENAME; + return -ERRNO_TO_PARA_ERROR(errno); return 1; }