Lines Matching defs:pds

68 	struct pdr_service *pds;
77 struct pdr_service *pds;
90 list_for_each_entry(pds, &pdr->lookups, node) {
91 if (pds->need_locator_lookup)
119 struct pdr_service *pds,
134 strscpy(req.service_path, pds->service_path, sizeof(req.service_path));
136 ret = qmi_send_request(&pdr->notifier_hdl, &pds->addr,
149 pds->service_path, ret);
155 pds->service_path, resp.resp.error);
159 pds->state = resp.curr_state;
168 struct pdr_service *pds;
172 list_for_each_entry(pds, &pdr->lookups, node) {
173 if (pds->service_connected) {
174 if (!pds->need_notifier_register)
177 pds->need_notifier_register = false;
178 ret = pdr_register_listener(pdr, pds, true);
180 pds->state = SERVREG_SERVICE_STATE_DOWN;
182 if (!pds->need_notifier_remove)
185 pds->need_notifier_remove = false;
186 pds->state = SERVREG_SERVICE_STATE_DOWN;
190 pdr->status(pds->state, pds->service_path, pdr->priv);
201 struct pdr_service *pds;
204 list_for_each_entry(pds, &pdr->lookups, node) {
205 if (pds->service == svc->service &&
206 pds->instance == svc->instance) {
207 pds->service_connected = true;
208 pds->need_notifier_register = true;
209 pds->addr.sq_family = AF_QIPCRTR;
210 pds->addr.sq_node = svc->node;
211 pds->addr.sq_port = svc->port;
225 struct pdr_service *pds;
228 list_for_each_entry(pds, &pdr->lookups, node) {
229 if (pds->service == svc->service &&
230 pds->instance == svc->instance) {
231 pds->service_connected = false;
232 pds->need_notifier_remove = true;
233 pds->addr.sq_node = 0;
234 pds->addr.sq_port = 0;
246 static int pdr_send_indack_msg(struct pdr_handle *pdr, struct pdr_service *pds,
260 strscpy(req.service_path, pds->service_path, sizeof(req.service_path));
262 ret = qmi_send_request(&pdr->notifier_hdl, &pds->addr,
278 struct pdr_service *pds;
281 pds = ind->pds;
284 pds->state = ind->curr_state;
285 pdr->status(pds->state, pds->service_path, pdr->priv);
289 pdr_send_indack_msg(pdr, pds, ind->transaction_id);
307 struct pdr_service *pds = NULL, *iter;
318 pds = iter;
323 if (!pds)
336 ind->pds = pds;
395 static int pdr_locate_service(struct pdr_handle *pdr, struct pdr_service *pds)
408 strscpy(req.service_name, pds->service_name, sizeof(req.service_name));
424 if (!strcmp(entry->name, pds->service_path)) {
425 pds->service_data_valid = entry->service_data_valid;
426 pds->service_data = entry->service_data;
427 pds->instance = entry->instance;
447 struct pdr_service *pds,
451 pds->service_name, err);
456 list_del(&pds->node);
457 pds->state = SERVREG_LOCATOR_ERR;
459 pdr->status(pds->state, pds->service_path, pdr->priv);
461 kfree(pds);
468 struct pdr_service *pds, *tmp;
481 list_for_each_entry_safe(pds, tmp, &pdr->lookups, node) {
482 if (!pds->need_locator_lookup)
485 ret = pdr_locate_service(pdr, pds);
487 pdr_notify_lookup_failure(pdr, pds, ret);
491 ret = qmi_add_lookup(&pdr->notifier_hdl, pds->service, 1,
492 pds->instance);
494 pdr_notify_lookup_failure(pdr, pds, ret);
498 pds->need_locator_lookup = false;
518 struct pdr_service *pds, *tmp;
528 pds = kzalloc(sizeof(*pds), GFP_KERNEL);
529 if (!pds)
532 pds->service = SERVREG_NOTIFIER_SERVICE;
533 strscpy(pds->service_name, service_name, sizeof(pds->service_name));
534 strscpy(pds->service_path, service_path, sizeof(pds->service_path));
535 pds->need_locator_lookup = true;
547 list_add(&pds->node, &pdr->lookups);
552 return pds;
554 kfree(pds);
562 * @pds: PD service handle
568 int pdr_restart_pd(struct pdr_handle *pdr, struct pdr_service *pds)
577 if (IS_ERR_OR_NULL(pdr) || IS_ERR_OR_NULL(pds))
582 if (tmp != pds)
585 if (!pds->service_connected)
589 strscpy(req.service_path, pds->service_path, sizeof(req.service_path));
590 addr = pds->addr;
728 struct pdr_service *pds, *tmp;
734 list_for_each_entry_safe(pds, tmp, &pdr->lookups, node) {
735 list_del(&pds->node);
736 kfree(pds);