Lines Matching refs:part
190 int nvram_write_os_partition(struct nvram_os_partition *part, in nvram_write_os_partition() argument
199 if (part->index == -1) in nvram_write_os_partition()
202 if (length > part->size) in nvram_write_os_partition()
203 length = part->size; in nvram_write_os_partition()
208 tmp_index = part->index; in nvram_write_os_partition()
229 int nvram_read_partition(struct nvram_os_partition *part, char *buff, in nvram_read_partition() argument
237 if (part->index == -1) in nvram_read_partition()
240 if (length > part->size) in nvram_read_partition()
241 length = part->size; in nvram_read_partition()
243 tmp_index = part->index; in nvram_read_partition()
245 if (part->os_partition) { in nvram_read_partition()
259 if (part->os_partition) { in nvram_read_partition()
284 int __init nvram_init_os_partition(struct nvram_os_partition *part) in nvram_init_os_partition() argument
290 p = nvram_find_partition(part->name, NVRAM_SIG_OS, &size); in nvram_init_os_partition()
293 if (p && size < part->min_size) { in nvram_init_os_partition()
295 " removing it...\n", part->name); in nvram_init_os_partition()
296 nvram_remove_partition(part->name, NVRAM_SIG_OS, NULL); in nvram_init_os_partition()
302 p = nvram_create_partition(part->name, NVRAM_SIG_OS, in nvram_init_os_partition()
303 part->req_size, part->min_size); in nvram_init_os_partition()
307 part->name); in nvram_init_os_partition()
310 p = nvram_create_partition(part->name, NVRAM_SIG_OS, in nvram_init_os_partition()
311 part->req_size, part->min_size); in nvram_init_os_partition()
317 " partition, err %d\n", part->name, (int)p); in nvram_init_os_partition()
321 part->index = p; in nvram_init_os_partition()
322 part->size = nvram_get_partition_size(p) - sizeof(struct err_log_info); in nvram_init_os_partition()
402 if (record->part > 1 || (record->type != PSTORE_TYPE_DMESG)) in nvram_pstore_write()
422 record->id = record->part; in nvram_pstore_write()
435 struct nvram_os_partition *part = NULL; in nvram_pstore_read() local
444 part = &oops_log_partition; in nvram_pstore_read()
449 part = &common_partition; in nvram_pstore_read()
457 part = &rtas_log_partition; in nvram_pstore_read()
464 part = &of_config_partition; in nvram_pstore_read()
474 part = &skiboot_partition; in nvram_pstore_read()
485 if (!part->os_partition) { in nvram_pstore_read()
486 p = nvram_find_partition(part->name, sig, &size); in nvram_pstore_read()
489 "err %d\n", part->name, (int)p); in nvram_pstore_read()
492 part->index = p; in nvram_pstore_read()
493 part->size = size; in nvram_pstore_read()
496 buff = kmalloc(part->size, GFP_KERNEL); in nvram_pstore_read()
501 if (nvram_read_partition(part, buff, part->size, &err_type, &id_no)) { in nvram_pstore_read()
508 if (part->os_partition) in nvram_pstore_read()
541 return part->size; in nvram_pstore_read()
813 int part, offset; in dev_nvram_ioctl() local
817 if (copy_from_user(&part, (void __user*)arg, sizeof(part)) != 0) in dev_nvram_ioctl()
819 if (part < pmac_nvram_OF || part > pmac_nvram_NR) in dev_nvram_ioctl()
821 offset = pmac_get_partition(part); in dev_nvram_ioctl()
866 static int __init nvram_write_header(struct nvram_partition * part) in nvram_write_header() argument
872 memcpy(&phead, &part->header, NVRAM_HEADER_LEN); in nvram_write_header()
875 tmp_index = part->index; in nvram_write_header()
900 static int nvram_can_remove_partition(struct nvram_partition *part, in nvram_can_remove_partition() argument
903 if (part->header.signature != sig) in nvram_can_remove_partition()
906 if (strncmp(name, part->header.name, 12)) in nvram_can_remove_partition()
911 if (!strncmp(*except, part->header.name, 12)) in nvram_can_remove_partition()
930 struct nvram_partition *part, *prev, *tmp; in nvram_remove_partition() local
933 list_for_each_entry(part, &nvram_partitions, partition) { in nvram_remove_partition()
934 if (!nvram_can_remove_partition(part, name, sig, exceptions)) in nvram_remove_partition()
938 part->header.signature = NVRAM_SIG_FREE; in nvram_remove_partition()
939 memset(part->header.name, 'w', 12); in nvram_remove_partition()
940 part->header.checksum = nvram_checksum(&part->header); in nvram_remove_partition()
941 rc = nvram_write_header(part); in nvram_remove_partition()
950 list_for_each_entry_safe(part, tmp, &nvram_partitions, partition) { in nvram_remove_partition()
951 if (part->header.signature != NVRAM_SIG_FREE) { in nvram_remove_partition()
956 prev->header.length += part->header.length; in nvram_remove_partition()
963 list_del(&part->partition); in nvram_remove_partition()
964 kfree(part); in nvram_remove_partition()
966 prev = part; in nvram_remove_partition()
988 struct nvram_partition *part; in nvram_create_partition() local
1014 list_for_each_entry(part, &nvram_partitions, partition) { in nvram_create_partition()
1015 if (part->header.signature != NVRAM_SIG_FREE) in nvram_create_partition()
1018 if (part->header.length >= req_size) { in nvram_create_partition()
1020 free_part = part; in nvram_create_partition()
1023 if (part->header.length > size && in nvram_create_partition()
1024 part->header.length >= min_size) { in nvram_create_partition()
1025 size = part->header.length; in nvram_create_partition()
1026 free_part = part; in nvram_create_partition()
1092 struct nvram_partition *part; in nvram_get_partition_size() local
1094 list_for_each_entry(part, &nvram_partitions, partition) { in nvram_get_partition_size()
1095 if (part->index + NVRAM_HEADER_LEN == data_index) in nvram_get_partition_size()
1096 return (part->header.length - 1) * NVRAM_BLOCK_LEN; in nvram_get_partition_size()