-/* Start Zebra using file 'configName' (usually zebra.cfg) */
-/* There should be exactly one ZebraService */
-YAZ_EXPORT ZebraService zebra_start (const char *configName);
-YAZ_EXPORT ZebraService zebra_start_res (const char *configName,
- Res def_res, Res over_res);
-
-/* Close the whole Zebra */
-YAZ_EXPORT int zebra_stop (ZebraService zs);
-
-/* Report name of each record class (filter) */
-YAZ_EXPORT void zebra_filter_info(ZebraService zs, void *cd,
- void (*cb)(void *cd, const char *name));
+/** \fn ZebraService zebra_start(const char *configName)
+ * \brief starts a Zebra service.
+ * \param configName name of configuration file
+ *
+ * This function is a simplified version of zebra_start_res.
+ */
+YAZ_EXPORT ZebraService zebra_start(const char *configName);
+
+/** \fn ZebraService zebra_start_res(const char *configName,
+ Res def_res, Res over_res)
+ * \brief starts a Zebra service with resources.
+ * \param configName name of configuration file
+ * \param def_res default resources
+ * \param over_res overriding resources
+ *
+ * This function typically called once in a program. A Zebra Service
+ * acts as a factory for Zebra session handles.
+ */
+YAZ_EXPORT
+ZebraService zebra_start_res(const char *configName,
+ Res def_res, Res over_res);
+
+/** \fn int zebra_stop(ZebraService zs)
+ * \brief stops a Zebra service.
+ * \param zs service handle
+ *
+ * Frees resources used by the service.
+ */
+YAZ_EXPORT
+int zebra_stop(ZebraService zs);
+
+/** \fn void zebra_filter_info(ZebraService zs, void *cd,
+ void(*cb)(void *cd, const char *name))
+ * \brief lists enabled Zebra filters
+ * \param zs service handle
+ * \param cd callback parameter (opaque)
+ * \param cb callback function
+ */
+YAZ_EXPORT
+void zebra_filter_info(ZebraService zs, void *cd,
+ void (*cb)(void *cd, const char *name));