/*
* Sherlock Library -- Memory Pools
*
- * (c) 1997--2001 Martin Mares <mj@ucw.cz>
+ * (c) 1997--2004 Martin Mares <mj@ucw.cz>
+ *
+ * This software may be freely distributed and used according to the terms
+ * of the GNU Lesser General Public License.
*/
+#ifndef _SHERLOCK_POOLS_H
+#define _SHERLOCK_POOLS_H
+
#ifndef POOL_ALIGN
#define POOL_ALIGN CPU_STRUCT_ALIGN
#endif
p->free = ee;
return f;
}
+
+static inline void *
+mp_start_string(struct mempool *p, uns l)
+{
+ ASSERT(l <= p->chunk_size);
+ return mp_alloc(p, l);
+}
+
+static inline void
+mp_end_string(struct mempool *p, void *stop)
+{
+ p->free = stop;
+}
+
+/* pool-str.c */
+
+char *mp_strdup(struct mempool *, char *);
+char *mp_multicat(struct mempool *, ...);
+static inline char *
+mp_strcat(struct mempool *mp, char *x, char *y)
+{
+ return mp_multicat(mp, x, y, NULL);
+}
+
+#endif