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 strcpy(req.service_path, pds->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 strcpy(req.service_path, pds->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;
315 list_for_each_entry(pds, &pdr->lookups, node) {
316 if (strcmp(pds->service_path, ind_msg->service_path))
337 ind->pds = pds;
396 static int pdr_locate_service(struct pdr_handle *pdr, struct pdr_service *pds)
409 strcpy(req.service_name, pds->service_name);
425 if (!strcmp(entry->name, pds->service_path)) {
426 pds->service_data_valid = entry->service_data_valid;
427 pds->service_data = entry->service_data;
428 pds->instance = entry->instance;
448 struct pdr_service *pds,
452 pds->service_name, err);
457 list_del(&pds->node);
458 pds->state = SERVREG_LOCATOR_ERR;
460 pdr->status(pds->state, pds->service_path, pdr->priv);
462 kfree(pds);
469 struct pdr_service *pds, *tmp;
482 list_for_each_entry_safe(pds, tmp, &pdr->lookups, node) {
483 if (!pds->need_locator_lookup)
486 ret = pdr_locate_service(pdr, pds);
488 pdr_notify_lookup_failure(pdr, pds, ret);
492 ret = qmi_add_lookup(&pdr->notifier_hdl, pds->service, 1,
493 pds->instance);
495 pdr_notify_lookup_failure(pdr, pds, ret);
499 pds->need_locator_lookup = false;
519 struct pdr_service *pds, *tmp;
529 pds = kzalloc(sizeof(*pds), GFP_KERNEL);
530 if (!pds)
533 pds->service = SERVREG_NOTIFIER_SERVICE;
534 strcpy(pds->service_name, service_name);
535 strcpy(pds->service_path, service_path);
536 pds->need_locator_lookup = true;
548 list_add(&pds->node, &pdr->lookups);
553 return pds;
555 kfree(pds);
563 * @pds: PD service handle
569 int pdr_restart_pd(struct pdr_handle *pdr, struct pdr_service *pds)
578 if (IS_ERR_OR_NULL(pdr) || IS_ERR_OR_NULL(pds))
583 if (tmp != pds)
586 if (!pds->service_connected)
590 strcpy(req.service_path, pds->service_path);
591 addr = pds->addr;
729 struct pdr_service *pds, *tmp;
735 list_for_each_entry_safe(pds, tmp, &pdr->lookups, node) {
736 list_del(&pds->node);
737 kfree(pds);