Lines Matching defs:progtab
99 Elf_progent *progtab;
273 if (ef->progtab[i].name != NULL && (
275 strcmp(ef->progtab[i].name, VNET_SETNAME) == 0 ||
277 strcmp(ef->progtab[i].name, DPCPU_SETNAME) == 0))
280 segstart = trunc_page((vm_offset_t)ef->progtab[i].addr);
281 segend = round_page((vm_offset_t)ef->progtab[i].addr +
282 ef->progtab[i].size);
284 if ((ef->progtab[i].flags & SHF_WRITE) != 0)
286 if ((ef->progtab[i].flags & SHF_EXECINSTR) != 0)
446 ef->progtab = malloc(ef->nprogtab * sizeof(*ef->progtab),
454 if ((ef->nprogtab != 0 && ef->progtab == NULL) ||
480 /* Now fill out progtab and the relocation tables. */
495 ef->progtab[pb].addr = (void *)shdr[i].sh_addr;
497 ef->progtab[pb].name = "<<PROGBITS>>";
500 ef->progtab[pb].name = "<<UNWIND>>";
503 ef->progtab[pb].name = "<<INIT_ARRAY>>";
505 ef->progtab[pb].name = "<<FINI_ARRAY>>";
507 ef->progtab[pb].name = "<<NOBITS>>";
508 ef->progtab[pb].size = shdr[i].sh_size;
509 ef->progtab[pb].flags = shdr[i].sh_flags;
510 ef->progtab[pb].sec = i;
512 ef->progtab[pb].name =
514 if (ef->progtab[pb].name != NULL &&
515 !strcmp(ef->progtab[pb].name, DPCPU_SETNAME)) {
528 memcpy(dpcpu, ef->progtab[pb].addr,
529 ef->progtab[pb].size);
531 ef->progtab[pb].addr = dpcpu;
533 } else if (ef->progtab[pb].name != NULL &&
534 !strcmp(ef->progtab[pb].name, VNET_SETNAME)) {
547 memcpy(vnet_data, ef->progtab[pb].addr,
548 ef->progtab[pb].size);
549 ef->progtab[pb].addr = vnet_data;
550 vnet_save_init(ef->progtab[pb].addr,
551 ef->progtab[pb].size);
553 } else if ((ef->progtab[pb].name != NULL &&
554 strcmp(ef->progtab[pb].name, ".ctors") == 0) ||
561 lf->ctors_addr = ef->progtab[pb].addr;
564 } else if ((ef->progtab[pb].name != NULL &&
565 strcmp(ef->progtab[pb].name, ".dtors") == 0) ||
572 lf->dtors_addr = ef->progtab[pb].addr;
582 es->st_value += (Elf_Addr)ef->progtab[pb].addr;
893 ef->progtab = malloc(ef->nprogtab * sizeof(*ef->progtab),
1053 ef->progtab[pb].name =
1055 if (!strcmp(ef->progtab[pb].name, ".ctors") ||
1067 } else if (!strcmp(ef->progtab[pb].name,
1082 ef->progtab[pb].name = "<<PROGBITS>>";
1085 ef->progtab[pb].name = "<<UNWIND>>";
1088 ef->progtab[pb].name = "<<NOBITS>>";
1089 if (ef->progtab[pb].name != NULL &&
1090 !strcmp(ef->progtab[pb].name, DPCPU_SETNAME)) {
1091 ef->progtab[pb].addr =
1093 if (ef->progtab[pb].addr == NULL) {
1102 else if (ef->progtab[pb].name != NULL &&
1103 !strcmp(ef->progtab[pb].name, VNET_SETNAME)) {
1104 ef->progtab[pb].addr =
1106 if (ef->progtab[pb].addr == NULL) {
1116 ef->progtab[pb].addr =
1118 if (ef->progtab[pb].addr == NULL) {
1122 ef->progtab[pb].size = shdr[i].sh_size;
1123 ef->progtab[pb].flags = shdr[i].sh_flags;
1124 ef->progtab[pb].sec = i;
1131 ef->progtab[pb].addr,
1142 if (ef->progtab[pb].addr != (void *)mapbase &&
1143 !strcmp(ef->progtab[pb].name, DPCPU_SETNAME))
1144 dpcpu_copy(ef->progtab[pb].addr,
1147 bzero(ef->progtab[pb].addr, shdr[i].sh_size);
1150 if (ef->progtab[pb].addr != (void *)mapbase &&
1151 strcmp(ef->progtab[pb].name, VNET_SETNAME) == 0)
1152 vnet_save_init(ef->progtab[pb].addr,
1153 ef->progtab[pb].size);
1160 es->st_value += (Elf_Addr)ef->progtab[pb].addr;
1288 if (ef->progtab) {
1290 if (ef->progtab[i].size == 0)
1292 if (ef->progtab[i].name == NULL)
1294 if (!strcmp(ef->progtab[i].name, DPCPU_SETNAME))
1295 dpcpu_free(ef->progtab[i].addr,
1296 ef->progtab[i].size);
1298 else if (!strcmp(ef->progtab[i].name, VNET_SETNAME))
1299 vnet_data_free(ef->progtab[i].addr,
1300 ef->progtab[i].size);
1307 free(ef->progtab, M_LINKER);
1322 free(ef->progtab, M_LINKER);
1355 if (sec == ef->progtab[i].sec) {
1356 base = (Elf_Addr)ef->progtab[i].addr;
1602 if ((strncmp(ef->progtab[i].name, "set_", 4) == 0) &&
1603 strcmp(ef->progtab[i].name + 4, name) == 0) {
1604 start = (void **)ef->progtab[i].addr;
1605 stop = (void **)((char *)ef->progtab[i].addr +
1606 ef->progtab[i].size);
1790 if (strcmp(ef->progtab[i].name, linkset_name) == 0) {
1791 startp = (Elf_Addr)ef->progtab[i].addr;
1792 stopp = (Elf_Addr)(startp + ef->progtab[i].size);
1909 if (ef->progtab) {
1911 if (ef->progtab[i].size == 0)
1913 if (ef->progtab[i].name == NULL)
1915 if (strcmp(ef->progtab[i].name, VNET_SETNAME) == 0) {
1916 vnet_data_copy(ef->progtab[i].addr,
1917 ef->progtab[i].size);