1 /*------------------------------------------------------------------------- 2 * 3 * uuid.h 4 * Header file for the "uuid" ADT. In C, we use the name pg_uuid_t, 5 * to avoid conflicts with any uuid_t type that might be defined by 6 * the system headers. 7 * 8 * Copyright (c) 2007-2016, PostgreSQL Global Development Group 9 * 10 * src/include/utils/uuid.h 11 * 12 *------------------------------------------------------------------------- 13 */ 14 #ifndef UUID_H 15 #define UUID_H 16 17 /* guid size in bytes */ 18 #define UUID_LEN 16 19 20 /* opaque struct; defined in uuid.c */ 21 typedef struct pg_uuid_t pg_uuid_t; 22 23 /* fmgr interface macros */ 24 #define UUIDPGetDatum(X) PointerGetDatum(X) 25 #define PG_RETURN_UUID_P(X) return UUIDPGetDatum(X) 26 #define DatumGetUUIDP(X) ((pg_uuid_t *) DatumGetPointer(X)) 27 #define PG_GETARG_UUID_P(X) DatumGetUUIDP(PG_GETARG_DATUM(X)) 28 29 #endif /* UUID_H */ 30