diff --git a/obexd/src/phonebook.c b/obexd/src/phonebook.c
index 6d8bddc..b81e774 100644
--- a/obexd/src/phonebook.c
+++ b/obexd/src/phonebook.c
#include <config.h>
#endif
+#include <glib.h>
+
#include "phonebook.h"
+
+static GSList *driver_list = NULL;
+
+int phonebook_driver_register(struct phonebook_driver *driver)
+{
+ driver_list = g_slist_append(driver_list, driver);
+
+ return 0;
+}
+
+void phonebook_driver_unregister(struct phonebook_driver *driver)
+{
+ driver_list = g_slist_remove(driver_list, driver);
+}
+
+void phonebook_return(struct phonebook_context *context,
+ unsigned char *buf, size_t size)
+{
+}
diff --git a/obexd/src/phonebook.h b/obexd/src/phonebook.h
index 417e231..b786234 100644
--- a/obexd/src/phonebook.h
+++ b/obexd/src/phonebook.h
*
*/
+struct phonebook_context {
+};
+
+struct phonebook_driver {
+ const char *name;
+ int (*create) (struct phonebook_context *context);
+ void (*destroy) (struct phonebook_context *context);
+ int (*pullphonebook) (struct phonebook_context *context, ...);
+ int (*pullvcardlisting) (struct phonebook_context *context, ...);
+ int (*pullvcardentry) (struct phonebook_context *context, ...);
+};
+
+extern int phonebook_driver_register(struct phonebook_driver *driver);
+extern void phonebook_driver_unregister(struct phonebook_driver *driver);
+
+extern void phonebook_return(struct phonebook_context *context,
+ unsigned char *buf, size_t size);