Lines Matching defs:svc
684 struct tb_service *svc = container_of(dev, struct tb_service, dev);
690 return sprintf(buf, "%*pE\n", (int)strlen(svc->key), svc->key);
694 static int get_modalias(struct tb_service *svc, char *buf, size_t size)
696 return snprintf(buf, size, "tbsvc:k%sp%08Xv%08Xr%08X", svc->key,
697 svc->prtcid, svc->prtcvers, svc->prtcrevs);
703 struct tb_service *svc = container_of(dev, struct tb_service, dev);
706 get_modalias(svc, buf, PAGE_SIZE - 2);
714 struct tb_service *svc = container_of(dev, struct tb_service, dev);
716 return sprintf(buf, "%u\n", svc->prtcid);
723 struct tb_service *svc = container_of(dev, struct tb_service, dev);
725 return sprintf(buf, "%u\n", svc->prtcvers);
732 struct tb_service *svc = container_of(dev, struct tb_service, dev);
734 return sprintf(buf, "%u\n", svc->prtcrevs);
741 struct tb_service *svc = container_of(dev, struct tb_service, dev);
743 return sprintf(buf, "0x%08x\n", svc->prtcstns);
768 struct tb_service *svc = container_of(dev, struct tb_service, dev);
771 get_modalias(svc, modalias, sizeof(modalias));
777 struct tb_service *svc = container_of(dev, struct tb_service, dev);
778 struct tb_xdomain *xd = tb_service_parent(svc);
780 ida_simple_remove(&xd->service_ids, svc->id);
781 kfree(svc->key);
782 kfree(svc);
796 struct tb_service *svc;
798 svc = tb_to_service(dev);
799 if (!svc)
802 if (!tb_property_find(xd->properties, svc->key,
812 struct tb_service *svc;
814 svc = tb_to_service(dev);
815 if (!svc)
818 return !strcmp(svc->key, p->key);
821 static int populate_service(struct tb_service *svc,
830 svc->prtcid = p->value.immediate;
833 svc->prtcvers = p->value.immediate;
836 svc->prtcrevs = p->value.immediate;
839 svc->prtcstns = p->value.immediate;
841 svc->key = kstrdup(property->key, GFP_KERNEL);
842 if (!svc->key)
850 struct tb_service *svc;
873 svc = kzalloc(sizeof(*svc), GFP_KERNEL);
874 if (!svc)
877 if (populate_service(svc, p)) {
878 kfree(svc);
884 kfree(svc->key);
885 kfree(svc);
888 svc->id = id;
889 svc->dev.bus = &tb_bus_type;
890 svc->dev.type = &tb_service_type;
891 svc->dev.parent = &xd->dev;
892 dev_set_name(&svc->dev, "%s.%d", dev_name(&xd->dev), svc->id);
894 if (device_register(&svc->dev)) {
895 put_device(&svc->dev);