Lines Matching defs:sec

100 	struct vpd_section *sec = arg;
131 ret = sysfs_create_bin_file(sec->kobj, &info->bin_attr);
135 list_add_tail(&info->list, &sec->attribs);
146 static void vpd_section_attrib_destroy(struct vpd_section *sec)
151 list_for_each_entry_safe(info, temp, &sec->attribs, list) {
152 sysfs_remove_bin_file(sec->kobj, &info->bin_attr);
162 struct vpd_section *sec = bin_attr->private;
164 return memory_read_from_buffer(buf, count, &pos, sec->baseaddr,
165 sec->bin_attr.size);
168 static int vpd_section_create_attribs(struct vpd_section *sec)
175 ret = vpd_decode_string(sec->bin_attr.size, sec->baseaddr,
176 &consumed, vpd_section_attrib_add, sec);
182 static int vpd_section_init(const char *name, struct vpd_section *sec,
187 sec->baseaddr = memremap(physaddr, size, MEMREMAP_WB);
188 if (!sec->baseaddr)
191 sec->name = name;
194 sec->raw_name = kasprintf(GFP_KERNEL, "%s_raw", name);
195 if (!sec->raw_name) {
200 sysfs_bin_attr_init(&sec->bin_attr);
201 sec->bin_attr.attr.name = sec->raw_name;
202 sec->bin_attr.attr.mode = 0444;
203 sec->bin_attr.size = size;
204 sec->bin_attr.read = vpd_section_read;
205 sec->bin_attr.private = sec;
207 err = sysfs_create_bin_file(vpd_kobj, &sec->bin_attr);
211 sec->kobj = kobject_create_and_add(name, vpd_kobj);
212 if (!sec->kobj) {
217 INIT_LIST_HEAD(&sec->attribs);
218 vpd_section_create_attribs(sec);
220 sec->enabled = true;
225 sysfs_remove_bin_file(vpd_kobj, &sec->bin_attr);
227 kfree(sec->raw_name);
229 memunmap(sec->baseaddr);
233 static int vpd_section_destroy(struct vpd_section *sec)
235 if (sec->enabled) {
236 vpd_section_attrib_destroy(sec);
237 kobject_put(sec->kobj);
238 sysfs_remove_bin_file(vpd_kobj, &sec->bin_attr);
239 kfree(sec->raw_name);
240 memunmap(sec->baseaddr);
241 sec->enabled = false;