Lines Matching refs:descriptor

34  * the interface descriptor).  As each is processed we remove it from
45 static void release_manifest_descriptor(struct manifest_desc *descriptor)
47 list_del(&descriptor->links);
48 kfree(descriptor);
53 struct manifest_desc *descriptor;
56 list_for_each_entry_safe(descriptor, next, &intf->manifest_descs, links)
57 release_manifest_descriptor(descriptor);
78 struct manifest_desc *descriptor;
81 list_for_each_entry_safe(descriptor, next, &intf->manifest_descs, links)
82 if (descriptor->type == GREYBUS_TYPE_BUNDLE)
83 return descriptor;
89 * Validate the given descriptor. Its reported size must fit within
95 * Returns the (non-zero) number of bytes consumed by the descriptor,
102 struct manifest_desc *descriptor;
114 dev_err(&intf->dev, "descriptor too big (%zu > %zu)\n",
141 dev_err(&intf->dev, "invalid descriptor type (%u)\n",
147 dev_err(&intf->dev, "%s descriptor too small (%zu < %zu)\n",
155 dev_warn(&intf->dev, "%s descriptor size mismatch (want %zu got %zu)\n",
160 descriptor = kzalloc(sizeof(*descriptor), GFP_KERNEL);
161 if (!descriptor)
164 descriptor->size = desc_size;
165 descriptor->data = (char *)desc + sizeof(*desc_header);
166 descriptor->type = desc_header->type;
167 list_add_tail(&descriptor->links, &intf->manifest_descs);
175 * Find the string descriptor having the given id, validate it, and
183 * descriptor string, or an error-coded pointer on failure.
188 struct manifest_desc *descriptor;
196 list_for_each_entry(descriptor, &intf->manifest_descs, links) {
197 if (descriptor->type != GREYBUS_TYPE_STRING)
200 desc_string = descriptor->data;
217 release_manifest_descriptor(descriptor);
291 /* Release the cport descriptor */
329 /* Done with this bundle descriptor */
409 /* Release the interface descriptor, now that we're done with it */
412 /* An interface must have at least one bundle descriptor */
442 * Next we scan the descriptors, looking for an interface descriptor;
444 * information it contains, and then remove that descriptor (and any
457 struct manifest_desc *descriptor;
463 /* Manifest descriptor list should be empty here */
507 /* There must be a single interface descriptor */
508 list_for_each_entry(descriptor, &intf->manifest_descs, links) {
509 if (descriptor->type == GREYBUS_TYPE_INTERFACE)
511 interface_desc = descriptor;
514 dev_err(&intf->dev, "manifest must have 1 interface descriptor (%u found)\n",
520 /* Parse the manifest, starting with the interface descriptor */