X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fovsdb-types.h;h=0eca931f2c3f3a640fea82b632111c2367f239a8;hb=abaad8cf1b5089e17a4af0ab1ff644bfcf63cad9;hp=633b50f6616cce354a8bb4133ebd432edccdf8dd;hpb=bd76d25d8b3b7d11c5a326e91d784ad2cdeecd45;p=openvswitch diff --git a/lib/ovsdb-types.h b/lib/ovsdb-types.h index 633b50f6..0eca931f 100644 --- a/lib/ovsdb-types.h +++ b/lib/ovsdb-types.h @@ -17,12 +17,15 @@ #define OVSDB_TYPES_H 1 #include -#include #include #include #include "compiler.h" #include "uuid.h" +#ifdef HAVE_PCRE +#include +#endif + struct json; /* An atomic type: one that OVSDB regards as a single unit of data. */ @@ -61,12 +64,19 @@ struct ovsdb_base_type { /* No constraints for Boolean types. */ struct ovsdb_string_constraints { +#ifdef HAVE_PCRE pcre *re; /* Compiled regular expression. */ +#endif char *reMatch; /* reMatch or NULL. */ char *reComment; /* reComment or NULL. */ unsigned int minLen; /* minLength or 0. */ unsigned int maxLen; /* maxLength or UINT_MAX. */ } string; + + struct ovsdb_uuid_constraints { + char *refTableName; /* Name of referenced table, or NULL. */ + struct ovsdb_table *refTable; /* Referenced table, if available. */ + } uuid; } u; }; @@ -76,10 +86,17 @@ struct ovsdb_base_type { #define OVSDB_BASE_REAL_INIT { .type = OVSDB_TYPE_REAL, \ .u.real = { -DBL_MAX, DBL_MAX } } #define OVSDB_BASE_BOOLEAN_INIT { .type = OVSDB_TYPE_BOOLEAN } +#ifdef HAVE_PCRE #define OVSDB_BASE_STRING_INIT { .type = OVSDB_TYPE_STRING, \ .u.string = { NULL, NULL, NULL, \ 0, UINT_MAX } } -#define OVSDB_BASE_UUID_INIT { .type = OVSDB_TYPE_UUID } +#else +#define OVSDB_BASE_STRING_INIT { .type = OVSDB_TYPE_STRING, \ + .u.string = { NULL, NULL, \ + 0, UINT_MAX } } +#endif +#define OVSDB_BASE_UUID_INIT { .type = OVSDB_TYPE_UUID, \ + .u.uuid = { NULL, NULL } } void ovsdb_base_type_init(struct ovsdb_base_type *, enum ovsdb_atomic_type); void ovsdb_base_type_clone(struct ovsdb_base_type *,