• Home
  • Raw
  • Download

Lines Matching +full:attr +full:- +full:max +full:- +full:name

1 // SPDX-License-Identifier: GPL-2.0+
6 * through the sysfs file system. The ESRT provides a read-only catalog of
76 struct attribute attr; member
87 static struct esre_attribute *to_attr(struct attribute *attr) in to_attr() argument
89 return container_of(attr, struct esre_attribute, attr); in to_attr()
96 struct esre_attribute *attr = to_attr(_attr); in esre_attr_show() local
100 return -EACCES; in esre_attr_show()
102 return attr->show(entry, buf); in esre_attr_show()
114 efi_guid_to_str(&entry->esre.esre1->fw_class, str); in fw_class_show()
118 return str - buf; in fw_class_show()
123 #define esre_attr_decl(name, size, fmt) \ argument
124 static ssize_t name##_show(struct esre_entry *entry, char *buf) \
127 le##size##_to_cpu(entry->esre.esre1->name)); \
130 static struct esre_attribute esre_##name = __ATTR_RO_MODE(name, 0400)
140 &esre_fw_class.attr,
141 &esre_fw_type.attr,
142 &esre_fw_version.attr,
143 &esre_lowest_supported_fw_version.attr,
144 &esre_capsule_flags.attr,
145 &esre_last_attempt_version.attr,
146 &esre_last_attempt_status.attr,
153 list_del(&entry->list); in esre_release()
173 return -ENOMEM; in esre_create_sysfs_entry()
175 entry->kobj.kset = esrt_kset; in esre_create_sysfs_entry()
177 if (esrt->fw_resource_version == 1) { in esre_create_sysfs_entry()
180 entry->esre.esre1 = esre; in esre_create_sysfs_entry()
181 rc = kobject_init_and_add(&entry->kobj, &esre1_ktype, NULL, in esre_create_sysfs_entry()
184 kobject_put(&entry->kobj); in esre_create_sysfs_entry()
189 list_add_tail(&entry->list, &entry_list); in esre_create_sysfs_entry()
194 #define esrt_attr_decl(name, size, fmt) \ argument
195 static ssize_t name##_show(struct kobject *kobj, \
196 struct kobj_attribute *attr, char *buf)\
198 return sprintf(buf, fmt "\n", le##size##_to_cpu(esrt->name)); \
201 static struct kobj_attribute esrt_##name = __ATTR_RO_MODE(name, 0400)
208 &esrt_fw_resource_count.attr,
209 &esrt_fw_resource_count_max.attr,
210 &esrt_fw_resource_version.attr,
224 struct attribute *attr, int n) in esrt_attr_is_visible() argument
228 return attr->mode; in esrt_attr_is_visible()
243 size_t size, max, entry_size, entries_size; in efi_esrt_init() local
251 pr_debug("esrt-init: loading.\n"); in efi_esrt_init()
264 max = efi_mem_desc_end(&md); in efi_esrt_init()
265 if (max < efi.esrt) { in efi_esrt_init()
266 pr_err("EFI memory descriptor is invalid. (esrt: %p max: %p)\n", in efi_esrt_init()
267 (void *)efi.esrt, (void *)max); in efi_esrt_init()
272 max -= efi.esrt; in efi_esrt_init()
274 if (max < size) { in efi_esrt_init()
275 pr_err("ESRT header doesn't fit on single memory map entry. (size: %zu max: %zu)\n", in efi_esrt_init()
276 size, max); in efi_esrt_init()
297 if (tmpesrt.fw_resource_count > 0 && max - size < entry_size) { in efi_esrt_init()
298 pr_err("ESRT memory map entry can only hold the header. (max: %zu size: %zu)\n", in efi_esrt_init()
299 max - size, entry_size); in efi_esrt_init()
305 * so I'm making up 128 as the max number of individually updatable in efi_esrt_init()
321 if (max < size + entries_size) { in efi_esrt_init()
322 pr_err("ESRT does not fit on single memory map entry (size: %zu max: %zu)\n", in efi_esrt_init()
323 size, max); in efi_esrt_init()
337 pr_debug("esrt-init: loaded.\n"); in efi_esrt_init()
342 struct efi_system_resource_entry_v1 *v1_entries = (void *)esrt->entries; in register_entries()
348 for (i = 0; i < le32_to_cpu(esrt->fw_resource_count); i++) { in register_entries()
350 if (esrt->fw_resource_version == 1) { in register_entries()
354 esrt->fw_resource_version); in register_entries()
355 return -EINVAL; in register_entries()
373 kobject_put(&entry->kobj); in cleanup_entry_list()
381 pr_debug("esrt-sysfs: loading.\n"); in esrt_sysfs_init()
383 return -ENOSYS; in esrt_sysfs_init()
389 return -ENOMEM; in esrt_sysfs_init()
395 error = -ENOMEM; in esrt_sysfs_init()
409 error = -ENOMEM; in esrt_sysfs_init()
417 pr_debug("esrt-sysfs: loaded.\n"); in esrt_sysfs_init()