Lines Matching refs:provider
2 * provider.c
28 * $Id: provider.c,v 1.5 2004/01/13 01:54:39 max Exp $
37 #include "provider.h"
39 static TAILQ_HEAD(, provider) providers = TAILQ_HEAD_INITIALIZER(providers);
44 * Register Service Discovery provider.
83 * Register new provider for a given profile, bdaddr and session.
90 provider_p provider = calloc(1, sizeof(*provider));
92 if (provider != NULL) {
93 provider->data = malloc(datalen);
94 if (provider->data != NULL) {
95 provider->profile = profile;
96 memcpy(provider->data, data, datalen);
106 provider->handle = handle;
108 memcpy(&provider->bdaddr, bdaddr,
109 sizeof(provider->bdaddr));
110 provider->fd = fd;
112 TAILQ_INSERT_TAIL(&providers, provider, provider_next);
115 free(provider);
116 provider = NULL;
120 return (provider);
124 * Unregister provider
128 provider_unregister(provider_p provider)
130 TAILQ_REMOVE(&providers, provider, provider_next);
131 if (provider->data != NULL)
132 free(provider->data);
133 free(provider);
138 * Update provider data
142 provider_update(provider_p provider, uint8_t const *data, uint32_t datalen)
144 uint8_t *new_data = (uint8_t *) realloc(provider->data, datalen);
150 provider->data = new_data;
156 * Get a provider for given record handle
162 provider_p provider = NULL;
164 TAILQ_FOREACH(provider, &providers, provider_next)
165 if (provider->handle == handle)
168 return (provider);
182 provider_get_next(provider_p provider)
184 return (TAILQ_NEXT(provider, provider_next));