Lines Matching defs:srv

94 static int server_match(const struct qrtr_server *srv,
99 if (f->service != 0 && srv->service != f->service)
104 return (srv->instance & ifilter) == f->instance;
108 struct qrtr_server *srv)
114 trace_qrtr_ns_service_announce_new(srv->service, srv->instance,
115 srv->node, srv->port);
122 pkt.server.service = cpu_to_le32(srv->service);
123 pkt.server.instance = cpu_to_le32(srv->instance);
124 pkt.server.node = cpu_to_le32(srv->node);
125 pkt.server.port = cpu_to_le32(srv->port);
134 struct qrtr_server *srv)
141 trace_qrtr_ns_service_announce_del(srv->service, srv->instance,
142 srv->node, srv->port);
149 pkt.server.service = cpu_to_le32(srv->service);
150 pkt.server.instance = cpu_to_le32(srv->instance);
151 pkt.server.node = cpu_to_le32(srv->node);
152 pkt.server.port = cpu_to_le32(srv->port);
164 static void lookup_notify(struct sockaddr_qrtr *to, struct qrtr_server *srv,
178 if (srv) {
179 pkt.server.service = cpu_to_le32(srv->service);
180 pkt.server.instance = cpu_to_le32(srv->instance);
181 pkt.server.node = cpu_to_le32(srv->node);
182 pkt.server.port = cpu_to_le32(srv->port);
196 struct qrtr_server *srv;
208 srv = radix_tree_deref_slot(slot);
209 if (!srv)
211 if (radix_tree_deref_retry(srv)) {
218 ret = service_announce_new(sq, srv);
237 struct qrtr_server *srv;
244 srv = kzalloc(sizeof(*srv), GFP_KERNEL);
245 if (!srv)
248 srv->service = service;
249 srv->instance = instance;
250 srv->node = node_id;
251 srv->port = port;
264 radix_tree_insert(&node->servers, port, srv);
266 trace_qrtr_ns_server_add(srv->service, srv->instance,
267 srv->node, srv->port);
269 return srv;
272 kfree(srv);
279 struct qrtr_server *srv;
282 srv = radix_tree_lookup(&node->servers, port);
283 if (!srv)
289 if (srv->node == qrtr_ns.local_node && bcast)
290 service_announce_del(&qrtr_ns.bcast_sq, srv);
295 if (lookup->service && lookup->service != srv->service)
297 if (lookup->instance && lookup->instance != srv->instance)
300 lookup_notify(&lookup->sq, srv, false);
303 kfree(srv);
348 struct qrtr_server *srv;
366 srv = radix_tree_deref_slot(slot);
367 if (!srv)
369 if (radix_tree_deref_retry(srv)) {
375 server_del(node, srv->port, true);
391 srv = radix_tree_deref_slot(slot);
392 if (!srv)
394 if (radix_tree_deref_retry(srv)) {
402 sq.sq_node = srv->node;
403 sq.sq_port = srv->port;
429 struct qrtr_server *srv;
481 srv = radix_tree_deref_slot(slot);
482 if (!srv)
484 if (radix_tree_deref_retry(srv)) {
492 sq.sq_node = srv->node;
493 sq.sq_port = srv->port;
516 struct qrtr_server *srv;
530 srv = server_add(service, instance, node_id, port);
531 if (!srv)
534 if (srv->node == qrtr_ns.local_node) {
535 ret = service_announce_new(&qrtr_ns.bcast_sq, srv);
550 lookup_notify(&lookup->sq, srv, true);
626 struct qrtr_server *srv;
628 srv = radix_tree_deref_slot(srv_slot);
629 if (!srv)
631 if (radix_tree_deref_retry(srv)) {
636 if (!server_match(srv, &filter))
642 lookup_notify(from, srv, true);