Lines Matching +full:num +full:- +full:ss +full:- +full:bits

1 // SPDX-License-Identifier: GPL-2.0
45 /* Simplified build-specific string for starting entropy. */
56 /* Rotate by odd number of bits and XOR. */ in rotate_xor()
57 hash = (hash << ((sizeof(hash) * 8) - 7)) | (hash >> 7); in rotate_xor()
86 * Store memory limit: MAXMEM on 64-bit and KERNEL_IMAGE_SIZE on 32-bit.
100 MEM_AVOID_MEMMAP_END = MEM_AVOID_MEMMAP_BEGIN + MAX_MEMMAP_REGIONS - 1,
109 if (one->start + one->size <= two->start) in mem_overlaps()
112 if (one->start >= two->start + two->size) in mem_overlaps()
137 return -EINVAL; in parse_memmap()
141 return -EINVAL; in parse_memmap()
146 return -EINVAL; in parse_memmap()
157 * memmap=nn@ss specifies usable region, should in parse_memmap()
165 * efi_fake_mem=nn@ss:attr the attr specifies in parse_memmap()
166 * flags that might imply a soft-reservation. in parse_memmap()
189 return -EINVAL; in parse_memmap()
269 len = strnlen(args, COMMAND_LINE_SIZE-1); in handle_mem_options()
283 /* Stop at -- */ in handle_mem_options()
284 if (!val && strcmp(param, "--") == 0) in handle_mem_options()
313 * on 64-bit, and [16M, KERNEL_IMAGE_SIZE) on 32-bit.
340 * - input + input_size >= output + output_size
341 * - kernel_total_size <= init_size
342 * - kernel_total_size <= output_size (see Note below)
343 * - output + init_size >= output + output_size
356 * |-----|--------|--------|--------------|-----------|--|-------------|
359 * output+init_size-ZO_INIT_SIZE output+output_size output+kernel_total_size
371 * [output+init_size-ZO_INIT_SIZE, output+init_size) is the worst-case
390 unsigned long init_size = boot_params->hdr.init_size; in mem_avoid_init()
399 mem_avoid[MEM_AVOID_ZO_RANGE].size = (output + init_size) - input; in mem_avoid_init()
402 initrd_start = (u64)boot_params->ext_ramdisk_image << 32; in mem_avoid_init()
403 initrd_start |= boot_params->hdr.ramdisk_image; in mem_avoid_init()
404 initrd_size = (u64)boot_params->ext_ramdisk_size << 32; in mem_avoid_init()
405 initrd_size |= boot_params->hdr.ramdisk_size; in mem_avoid_init()
414 cmd_line_size = strnlen((char *)cmd_line, COMMAND_LINE_SIZE-1) + 1; in mem_avoid_init()
441 u64 earliest = img->start + img->size; in mem_avoid_overlap()
448 earliest = overlap->start; in mem_avoid_overlap()
454 ptr = (struct setup_data *)(unsigned long)boot_params->hdr.setup_data; in mem_avoid_overlap()
459 avoid.size = sizeof(*ptr) + ptr->len; in mem_avoid_overlap()
463 earliest = overlap->start; in mem_avoid_overlap()
467 if (ptr->type == SETUP_INDIRECT && in mem_avoid_overlap()
468 ((struct setup_indirect *)ptr->data)->type != SETUP_INDIRECT) { in mem_avoid_overlap()
469 avoid.start = ((struct setup_indirect *)ptr->data)->addr; in mem_avoid_overlap()
470 avoid.size = ((struct setup_indirect *)ptr->data)->len; in mem_avoid_overlap()
474 earliest = overlap->start; in mem_avoid_overlap()
479 ptr = (struct setup_data *)(unsigned long)ptr->next; in mem_avoid_overlap()
487 unsigned long num; member
503 slot_area.addr = region->start; in store_slot_info()
504 slot_area.num = 1 + (region->size - image_size) / CONFIG_PHYSICAL_ALIGN; in store_slot_info()
507 slot_max += slot_area.num; in store_slot_info()
527 pud_start = ALIGN(region->start, PUD_SIZE); in process_gb_huge_pages()
528 pud_end = ALIGN_DOWN(region->start + region->size, PUD_SIZE); in process_gb_huge_pages()
537 if (pud_start >= region->start + image_size) { in process_gb_huge_pages()
538 tmp.start = region->start; in process_gb_huge_pages()
539 tmp.size = pud_start - region->start; in process_gb_huge_pages()
544 gb_huge_pages = (pud_end - pud_start) >> PUD_SHIFT; in process_gb_huge_pages()
549 max_gb_huge_pages -= gb_huge_pages; in process_gb_huge_pages()
553 if (region->start + region->size >= pud_end + image_size) { in process_gb_huge_pages()
555 tmp.size = region->start + region->size - pud_end; in process_gb_huge_pages()
572 if (slot >= slot_areas[i].num) { in slots_fetch_random()
573 slot -= slot_areas[i].num; in slots_fetch_random()
592 region.start = max_t(u64, entry->start, minimum); in __process_mem_region()
593 region_end = min(entry->start + entry->size, mem_limit); in __process_mem_region()
605 region.size = region_end - region.start; in __process_mem_region()
619 region.size = overlap.start - region.start; in __process_mem_region()
661 region_end = region->start + region->size; in process_mem_region()
663 entry.start = clamp(region->start, start, end); in process_mem_region()
665 entry.size = entry_end - entry.start; in process_mem_region()
686 struct efi_info *e = &boot_params->efi_info; in process_efi_entries()
695 signature = (char *)&e->efi_loader_signature; in process_efi_entries()
702 if (e->efi_memmap_hi) { in process_efi_entries()
706 pmap = e->efi_memmap; in process_efi_entries()
708 pmap = (e->efi_memmap | ((__u64)e->efi_memmap_hi << 32)); in process_efi_entries()
711 nr_desc = e->efi_memmap_size / e->efi_memdesc_size; in process_efi_entries()
713 md = efi_early_memdesc_ptr(pmap, e->efi_memdesc_size, i); in process_efi_entries()
714 if (md->attribute & EFI_MEMORY_MORE_RELIABLE) { in process_efi_entries()
721 md = efi_early_memdesc_ptr(pmap, e->efi_memdesc_size, i); in process_efi_entries()
734 if (md->type != EFI_CONVENTIONAL_MEMORY) in process_efi_entries()
738 (md->attribute & EFI_MEMORY_SP)) in process_efi_entries()
742 !(md->attribute & EFI_MEMORY_MORE_RELIABLE)) in process_efi_entries()
745 region.start = md->phys_addr; in process_efi_entries()
746 region.size = md->num_pages << EFI_PAGE_SHIFT; in process_efi_entries()
768 for (i = 0; i < boot_params->e820_entries; i++) { in process_e820_entries()
769 entry = &boot_params->e820_table[i]; in process_e820_entries()
770 /* Skip non-RAM entries. */ in process_e820_entries()
771 if (entry->type != E820_TYPE_RAM) in process_e820_entries()
773 region.start = entry->addr; in process_e820_entries()
774 region.size = entry->size; in process_e820_entries()
815 * There are how many CONFIG_PHYSICAL_ALIGN-sized slots in find_random_virt_addr()
819 slots = 1 + (KERNEL_IMAGE_SIZE - minimum - image_size) / CONFIG_PHYSICAL_ALIGN; in find_random_virt_addr()
843 boot_params->hdr.loadflags |= KASLR_FLAG; in choose_random_location()