X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=blob.c;h=f0133c3b5d53b7c916f1662b158ac5073a74af8f;hp=38e5cb54df04ad3a0600ac893e108a71446eb6da;hb=a4eb244ecdf9aaa0f167b3c91d3e276bde99d681;hpb=f31f8ceeaff0db558b63a46559e7d7464859d0c4 diff --git a/blob.c b/blob.c index 38e5cb54..f0133c3b 100644 --- a/blob.c +++ b/blob.c @@ -6,6 +6,7 @@ /** \file blob.c Macros and functions for blob handling. */ +#include #include #include #include @@ -63,6 +64,24 @@ static struct osl_column_description blob_cols[] = { } }; +/** Define an osl table description for a blob table. */ +#define DEFINE_BLOB_TABLE_DESC(table_name) \ + struct osl_table_description table_name ## _table_desc = { \ + .name = #table_name, \ + .num_columns = NUM_BLOB_COLUMNS, \ + .flags = OSL_LARGE_TABLE, \ + .column_descriptions = blob_cols \ + }; + +/** Define a pointer to an osl blob table with a canonical name. */ +#define DEFINE_BLOB_TABLE_PTR(table_name) struct osl_table *table_name ## _table; + + +/** Define a blob table. */ +#define INIT_BLOB_TABLE(table_name) \ + DEFINE_BLOB_TABLE_DESC(table_name); \ + DEFINE_BLOB_TABLE_PTR(table_name); + /** \cond doxygen isn't smart enough to recognize these */ INIT_BLOB_TABLE(lyrics); INIT_BLOB_TABLE(images); @@ -621,7 +640,6 @@ static int blob_open(struct osl_table **table, #define DEFINE_BLOB_INIT(table_name) \ void table_name ## _init(struct afs_table *t) \ { \ - t->name = table_name ## _table_desc.name; \ t->open = table_name ## _open; \ t->close = table_name ## _close; \ t->create = table_name ## _create;\