+void trie_insert(trie_t *trie, const char *key);
+
+/** Compile the trie.
+ * A trie must be compiled before lookup is possible. Compiling the trie
+ * consists in building the tree.
+ *
+ * \param memlock if true, the trie is locked into the RAM (mlock).
+ *
+ * Usage of a trie:
+ * trie_insert(trie, ...);
+ * trie_insert(trie, ...);
+ * ...
+ * trie_insert(trie, ...);
+ *
+ * trie_compile(trie, lock);
+ *
+ * trie_lookup(trie, ...);
+ * trie_lookup(trie, ...);
+ */
+__attribute__((nonnull(1)))
+void trie_compile(trie_t *trie, bool memlock);
+
+/** Lock the trie into memory.
+ * \ref trie_unlock
+ */
+__attribute__((nonnull(1)))
+void trie_lock(trie_t *trie);
+
+/** Unlock the trie.
+ * \ref trie_lock
+ */
+__attribute__((nonnull(1)))
+void trie_unlock(trie_t *trie);