-VLC_EXPORT( void, services_discovery_AddItem, ( services_discovery_t * p_this, input_item_t * p_item, const char * psz_category ) );
-VLC_EXPORT( void, services_discovery_RemoveItem, ( services_discovery_t * p_this, input_item_t * p_item ) );
+VLC_API void services_discovery_AddItem( services_discovery_t * p_this, input_item_t * p_item, const char * psz_category );
+VLC_API void services_discovery_RemoveItem( services_discovery_t * p_this, input_item_t * p_item );
+VLC_API void services_discovery_RemoveAll( services_discovery_t * p_sd );
+
+
+/* SD probing */
+
+VLC_API int vlc_sd_probe_Add(vlc_probe_t *, const char *, const char *, int category);
+
+#define VLC_SD_PROBE_SUBMODULE \
+ add_submodule() \
+ set_capability( "services probe", 100 ) \
+ set_callbacks( vlc_sd_probe_Open, NULL )
+
+#define VLC_SD_PROBE_HELPER(name, longname, cat) \
+static int vlc_sd_probe_Open (vlc_object_t *obj) \
+{ \
+ return vlc_sd_probe_Add ((struct vlc_probe_t *)obj, \
+ name "{longname=\"" longname "\"}", \
+ longname, cat); \
+}