+/* Creates a pool, allocates an instance of the given STRUCT
+ within it, sets the struct's MEMBER to the pool's address, and
+ returns the allocated structure. */
+#define pool_create_container(STRUCT, MEMBER) \
+ ((STRUCT *) pool_create_at_offset (sizeof (STRUCT), \
+ offsetof (STRUCT, MEMBER)))
+void *pool_create_at_offset (size_t struct_size, size_t pool_member_offset);
+