X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=ovsdb%2Fovsdb-idlc.in;h=6c8aa435cf59280f1c833d245c451fa43b0e64aa;hb=8d25251929c8f325bed0fff24192d5a87034b32e;hp=1f2195078a5dd1d7acc6b75f85ca5877ef933ce0;hpb=780325b5b8d4c0552b4b7719e0a38200d99f6b08;p=sliver-openvswitch.git diff --git a/ovsdb/ovsdb-idlc.in b/ovsdb/ovsdb-idlc.in index 1f2195078..6c8aa435c 100755 --- a/ovsdb/ovsdb-idlc.in +++ b/ovsdb/ovsdb-idlc.in @@ -18,6 +18,7 @@ def annotateSchema(schemaFile, annotationFile): schemaJson = ovs.json.from_file(schemaFile) execfile(annotationFile, globals(), {"s": schemaJson}) ovs.json.to_stream(schemaJson, sys.stdout) + sys.stdout.write('\n') def constify(cType, const): if (const and cType.endswith('*') and not cType.endswith('**')): @@ -109,6 +110,7 @@ def printCIDLHeader(schemaFile): print "\nextern struct ovsdb_idl_column %s_columns[%s_N_COLUMNS];" % (structName, structName.upper()) print ''' +const struct %(s)s *%(s)s_get_for_uuid(const struct ovsdb_idl *, const struct uuid *); const struct %(s)s *%(s)s_first(const struct ovsdb_idl *); const struct %(s)s *%(s)s_next(const struct %(s)s *); #define %(S)s_FOR_EACH(ROW, IDL) \\ @@ -165,6 +167,8 @@ struct %(s)s *%(s)s_insert(struct ovsdb_idl_txn *); print "\nextern struct ovsdb_idl_class %sidl_class;" % prefix print "\nvoid %sinit(void);" % prefix + + print "\nconst char * %sget_db_version(void);" % prefix print "\n#endif /* %(prefix)sIDL_HEADER */" % {'prefix': prefix.upper()} def printEnum(members): @@ -186,6 +190,7 @@ def printCIDLSource(schemaFile): #include #include %s #include +#include "ovs-thread.h" #include "ovsdb-data.h" #include "ovsdb-error.h" #include "util.h" @@ -377,6 +382,12 @@ void # First, next functions. print ''' +const struct %(s)s * +%(s)s_get_for_uuid(const struct ovsdb_idl *idl, const struct uuid *uuid) +{ + return %(s)s_cast(ovsdb_idl_get_row_for_uuid(idl, &%(p)stable_classes[%(P)sTABLE_%(T)s], uuid)); +} + const struct %(s)s * %(s)s_first(const struct ovsdb_idl *idl) { @@ -642,6 +653,7 @@ void if (inited) { return; } + assert_single_threaded(); inited = true; """ % prefix for tableName, table in sorted(schema.tables.iteritems()): @@ -649,6 +661,16 @@ void print " %s_columns_init();" % structName print "}" + print """ +/* Return the schema version. The caller must not free the returned value. */ +const char * +%sget_db_version(void) +{ + return "%s"; +} +""" % (prefix, schema.version) + + def ovsdb_escape(string): def escape(match):