Lines Matching refs:src

8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
48 * o adding a new type ELF_T_* to usr/src/head/libelf.h
857 xlate(Elf_Data *dst, const Elf_Data *src, unsigned encode, int tof)
866 if (dst == 0 || src == 0)
873 (sver = src->d_version - 1) >= EV_CURRENT) {
877 if ((type = src->d_type) >= ELF_T_NUM) {
891 cnt = src->d_size / ssz;
905 * these segments, allow for the src destination to be 0.
907 if (src->d_buf && src->d_buf != dst->d_buf)
908 (void) memcpy(dst->d_buf, src->d_buf, src->d_size);
909 dst->d_type = src->d_type;
910 dst->d_size = src->d_size;
914 (*f)(dst->d_buf, src->d_buf, cnt);
916 dst->d_type = src->d_type;
922 elf32_xlatetof(Elf_Data *dst, const Elf_Data *src, unsigned encode)
924 return (xlate(dst, src, encode, 1));
929 elf32_xlatetom(Elf_Data *dst, const Elf_Data *src, unsigned encode)
931 return (xlate(dst, src, encode, 0));
947 $1(unsigned char *dst, Elf32_Addr *src, size_t cnt)
949 Elf32_Addr *end = src + cnt;
952 tofa(dst, *src, A_$2);
954 } while (++src < end);
962 byte_to(unsigned char *dst, unsigned char *src, size_t cnt)
964 if (dst != src)
965 (void) memcpy(dst, src, cnt);
971 $1(unsigned char *dst, Elf32_Dyn *src, size_t cnt)
973 Elf32_Dyn *end = src + cnt;
976 tofw(dst, src->d_tag, D1_tag_$2);
977 tofo(dst, src->d_un.d_val, D1_val_$2);
979 } while (++src < end);
988 $1(unsigned char *dst, Elf32_Ehdr *src, size_t cnt)
990 Elf32_Ehdr *end = src + cnt;
993 if (&dst[E1_ident] != src->e_ident)
994 (void) memcpy(&dst[E1_ident], src->e_ident, E1_Nident);
995 tofh(dst, src->e_type, E1_type_$2);
996 tofh(dst, src->e_machine, E1_machine_$2);
997 tofw(dst, src->e_version, E1_version_$2);
998 tofa(dst, src->e_entry, E1_entry_$2);
999 tofo(dst, src->e_phoff, E1_phoff_$2);
1000 tofo(dst, src->e_shoff, E1_shoff_$2);
1001 tofw(dst, src->e_flags, E1_flags_$2);
1002 tofh(dst, src->e_ehsize, E1_ehsize_$2);
1003 tofh(dst, src->e_phentsize, E1_phentsize_$2);
1004 tofh(dst, src->e_phnum, E1_phnum_$2);
1005 tofh(dst, src->e_shentsize, E1_shentsize_$2);
1006 tofh(dst, src->e_shnum, E1_shnum_$2);
1007 tofh(dst, src->e_shstrndx, E1_shstrndx_$2);
1009 } while (++src < end);
1018 $1(unsigned char *dst, Elf32_Half *src, size_t cnt)
1020 Elf32_Half *end = src + cnt;
1023 tofh(dst, *src, H_$2);
1025 } while (++src < end);
1034 $1(unsigned char *dst, Elf32_Move *src, size_t cnt)
1036 Elf32_Move *end = src + cnt;
1039 tofl(dst, src->m_value, M1_value_$2);
1040 tofw(dst, src->m_info, M1_info_$2);
1041 tofw(dst, src->m_poffset, M1_poffset_$2);
1042 tofh(dst, src->m_repeat, M1_repeat_$2);
1043 tofh(dst, src->m_stride, M1_stride_$2);
1045 } while (++src < end);
1054 $1(unsigned char *dst, Elf32_Move *src, size_t cnt)
1056 Elf32_Move *end = src + cnt;
1059 tofl(dst, src->m_value, MP1_value_$2);
1060 tofw(dst, src->m_info, MP1_info_$2);
1061 tofw(dst, src->m_poffset, MP1_poffset_$2);
1062 tofh(dst, src->m_repeat, MP1_repeat_$2);
1063 tofh(dst, src->m_stride, MP1_stride_$2);
1065 } while (++src < end);
1074 $1(unsigned char *dst, Elf32_Off *src, size_t cnt)
1076 Elf32_Off *end = src + cnt;
1079 tofo(dst, *src, O_$2);
1081 } while (++src < end);
1090 $1(unsigned char *dst, Elf32_Nhdr *src, size_t cnt)
1093 Elf32_Nhdr *end = (Elf32_Nhdr *)((char *)src + cnt);
1107 namesz = S_ROUND(src->n_namesz, sizeof (Elf32_Word));
1108 descsz = src->n_descsz;
1114 (char *) src) >= (char *) end)
1116 tofw(dst, src->n_namesz, N1_namesz_$2);
1119 (char *) src) >= (char *) end)
1121 tofw(dst, src->n_descsz, N1_descsz_$2);
1124 (char *) src) >= (char *) end)
1126 tofw(dst, src->n_type, N1_type_$2);
1132 src++;
1133 if ((namesz + (char *) src) > (char *) end) {
1134 namesz = (char *) end - (char *) src;
1138 (void)memcpy(dst, src, namesz);
1144 src = (Elf32_Nhdr *)((uintptr_t)src + namesz);
1145 if ((descsz + (char *) src) > (char *) end) {
1146 descsz = (char *) end - (char *) src;
1150 (void)memcpy(dst, src, descsz);
1154 src = (Elf32_Nhdr *)((uintptr_t)src + descsz);
1155 } while (src < end);
1164 $1(unsigned char *dst, Elf32_Phdr *src, size_t cnt)
1166 Elf32_Phdr *end = src + cnt;
1169 tofw(dst, src->p_type, P1_type_$2);
1170 tofo(dst, src->p_offset, P1_offset_$2);
1171 tofa(dst, src->p_vaddr, P1_vaddr_$2);
1172 tofa(dst, src->p_paddr, P1_paddr_$2);
1173 tofw(dst, src->p_filesz, P1_filesz_$2);
1174 tofw(dst, src->p_memsz, P1_memsz_$2);
1175 tofw(dst, src->p_flags, P1_flags_$2);
1176 tofw(dst, src->p_align, P1_align_$2);
1178 } while (++src < end);
1187 $1(unsigned char *dst, Elf32_Rel *src, size_t cnt)
1189 Elf32_Rel *end = src + cnt;
1192 tofa(dst, src->r_offset, R1_offset_$2);
1193 tofw(dst, src->r_info, R1_info_$2);
1195 } while (++src < end);
1204 $1(unsigned char *dst, Elf32_Rela *src, size_t cnt)
1206 Elf32_Rela *end = src + cnt;
1209 tofa(dst, src->r_offset, RA1_offset_$2);
1210 tofw(dst, src->r_info, RA1_info_$2);
1213 tofw(dst, src->r_addend, RA1_addend_$2);
1217 if (src->r_addend < 0) {
1218 w = - src->r_addend;
1221 w = src->r_addend;
1225 } while (++src < end);
1234 $1(unsigned char *dst, Elf32_Shdr *src, size_t cnt)
1236 Elf32_Shdr *end = src + cnt;
1239 tofw(dst, src->sh_name, SH1_name_$2);
1240 tofw(dst, src->sh_type, SH1_type_$2);
1241 tofw(dst, src->sh_flags, SH1_flags_$2);
1242 tofa(dst, src->sh_addr, SH1_addr_$2);
1243 tofo(dst, src->sh_offset, SH1_offset_$2);
1244 tofw(dst, src->sh_size, SH1_size_$2);
1245 tofw(dst, src->sh_link, SH1_link_$2);
1246 tofw(dst, src->sh_info, SH1_info_$2);
1247 tofw(dst, src->sh_addralign, SH1_addralign_$2);
1248 tofw(dst, src->sh_entsize, SH1_entsize_$2);
1250 } while (++src < end);
1259 $1(unsigned char *dst, Elf32_Sword *src, size_t cnt)
1261 Elf32_Sword *end = src + cnt;
1266 tofw(dst, *src, W_$2);
1270 if (*src < 0) {
1271 w = - *src;
1274 w = *src;
1278 } while (++src < end);
1287 $1(unsigned char *dst, Elf32_Cap *src, size_t cnt)
1289 Elf32_Cap *end = src + cnt;
1292 tofw(dst, src->c_tag, C1_tag_$2);
1293 tofw(dst, src->c_un.c_val, C1_val_$2);
1295 } while (++src < end);
1304 $1(unsigned char *dst, Elf32_Syminfo *src, size_t cnt)
1306 Elf32_Syminfo *end = src + cnt;
1309 tofh(dst, src->si_boundto, SI1_boundto_$2);
1310 tofh(dst, src->si_flags, SI1_flags_$2);
1312 } while (++src < end);
1321 $1(unsigned char *dst, Elf32_Sym *src, size_t cnt)
1323 Elf32_Sym *end = src + cnt;
1326 tofw(dst, src->st_name, ST1_name_$2);
1327 tofa(dst, src->st_value, ST1_value_$2);
1328 tofw(dst, src->st_size, ST1_size_$2);
1329 tofb(dst, src->st_info, ST1_info_$2);
1330 tofb(dst, src->st_other, ST1_other_$2);
1331 tofh(dst, src->st_shndx, ST1_shndx_$2);
1333 } while (++src < end);
1342 $1(unsigned char *dst, Elf32_Word *src, size_t cnt)
1344 Elf32_Word *end = src + cnt;
1347 tofw(dst, *src, W_$2);
1349 } while (++src < end);
1358 $1(unsigned char *dst, Elf32_Verdef *src, size_t cnt)
1361 Elf32_Verdef *end = (Elf32_Verdef *)((char *)src + cnt);
1371 next_verdef = (Elf32_Verdef *)(src->vd_next ?
1372 (char *)src + src->vd_next : (char *)end);
1373 dst_next = dst + src->vd_next;
1376 vaux = (Elf32_Verdaux *)((char *)src + src->vd_aux);
1377 vaux_dst = dst + src->vd_aux;
1382 for (i = 0; i < src->vd_cnt; i++) {
1405 tofh(dst, src->vd_version, VD1_version_$2);
1406 tofh(dst, src->vd_flags, VD1_flags_$2);
1407 tofh(dst, src->vd_ndx, VD1_ndx_$2);
1408 tofh(dst, src->vd_cnt, VD1_cnt_$2);
1409 tofw(dst, src->vd_hash, VD1_hash_$2);
1410 tofw(dst, src->vd_aux, VD1_aux_$2);
1411 tofw(dst, src->vd_next, VD1_next_$2);
1412 src = next_verdef;
1414 } while (src < end);
1422 $1(unsigned char *dst, Elf32_Verneed *src, size_t cnt)
1425 Elf32_Verneed *end = (Elf32_Verneed *)((char *)src + cnt);
1435 next_verneed = (Elf32_Verneed *)(src->vn_next ?
1436 (char *)src + src->vn_next : (char *)end);
1437 dst_next = dst + src->vn_next;
1440 vaux = (Elf32_Vernaux *)((char *)src + src->vn_aux);
1441 vaux_dst = dst + src->vn_aux;
1446 for (i = 0; i < src->vn_cnt; i++) {
1471 tofh(dst, src->vn_version, VN1_version_$2);
1472 tofh(dst, src->vn_cnt, VN1_cnt_$2);
1473 tofa(dst, src->vn_file, VN1_file_$2);
1474 tofw(dst, src->vn_aux, VN1_aux_$2);
1475 tofw(dst, src->vn_next, VN1_next_$2);
1476 src = next_verneed;
1478 } while (src < end);
1497 $1(Elf32_Addr *dst, unsigned char *src, size_t cnt)
1502 src += cnt * A_sizeof;
1504 src -= A_sizeof;
1505 *dst = toma(src, A_$2);
1515 $1(Elf32_Dyn *dst, unsigned char *src, size_t cnt)
1520 dst->d_tag = tomw(src, D1_tag_$2);
1521 dst->d_un.d_val = tomw(src, D1_val_$2);
1522 src += D1_sizeof;
1532 $1(Elf32_Ehdr *dst, unsigned char *src, size_t cnt)
1537 src += cnt * E1_sizeof;
1539 src -= E1_sizeof;
1540 dst->e_shstrndx = tomh(src, E1_shstrndx_$2);
1541 dst->e_shnum = tomh(src, E1_shnum_$2);
1542 dst->e_shentsize = tomh(src, E1_shentsize_$2);
1543 dst->e_phnum = tomh(src, E1_phnum_$2);
1544 dst->e_phentsize = tomh(src, E1_phentsize_$2);
1545 dst->e_ehsize = tomh(src, E1_ehsize_$2);
1546 dst->e_flags = tomw(src, E1_flags_$2);
1547 dst->e_shoff = tomo(src, E1_shoff_$2);
1548 dst->e_phoff = tomo(src, E1_phoff_$2);
1549 dst->e_entry = toma(src, E1_entry_$2);
1550 dst->e_version = tomw(src, E1_version_$2);
1551 dst->e_machine = tomh(src, E1_machine_$2);
1552 dst->e_type = tomh(src, E1_type_$2);
1553 if (dst->e_ident != &src[E1_ident])
1554 (void) memcpy(dst->e_ident, &src[E1_ident], E1_Nident);
1564 $1(Elf32_Half *dst, unsigned char *src, size_t cnt)
1569 src += cnt * H_sizeof;
1571 src -= H_sizeof;
1572 *dst = tomh(src, H_$2);
1582 $1(Elf32_Move *dst, unsigned char *src, size_t cnt)
1587 dst->m_value = toml(src, M1_value_$2);
1588 dst->m_info = tomw(src, M1_info_$2);
1589 dst->m_poffset = tomw(src, M1_poffset_$2);
1590 dst->m_repeat = tomh(src, M1_repeat_$2);
1591 dst->m_stride = tomh(src, M1_stride_$2);
1592 src += M1_sizeof;
1602 $1(Elf32_Move *dst, unsigned char *src, size_t cnt)
1608 dst->m_value = toml(src, MP1_value_$2);
1609 dst->m_info = tomw(src, MP1_info_$2);
1610 dst->m_poffset = tomw(src, MP1_poffset_$2);
1611 dst->m_repeat = tomh(src, MP1_repeat_$2);
1612 dst->m_stride = tomh(src, MP1_stride_$2);
1613 src += MP1_sizeof;
1623 $1(Elf32_Nhdr *dst, unsigned char *src, size_t cnt)
1642 dst->n_namesz = tomw(src, N1_namesz_$2);
1647 dst->n_descsz = tomw(src, N1_descsz_$2);
1652 dst->n_type = tomw(src, N1_type_$2);
1657 namestr = src + N1_sizeof;
1680 src = (unsigned char *)desc + field_sz;
1690 $1(Elf32_Off *dst, unsigned char *src, size_t cnt)
1695 src += cnt * O_sizeof;
1697 src -= O_sizeof;
1698 *dst = tomo(src, O_$2);
1708 $1(Elf32_Phdr *dst, unsigned char *src, size_t cnt)
1713 src += cnt * P1_sizeof;
1715 src -= P1_sizeof;
1716 dst->p_align = tomw(src, P1_align_$2);
1717 dst->p_flags = tomw(src, P1_flags_$2);
1718 dst->p_memsz = tomw(src, P1_memsz_$2);
1719 dst->p_filesz = tomw(src, P1_filesz_$2);
1720 dst->p_paddr = toma(src, P1_paddr_$2);
1721 dst->p_vaddr = toma(src, P1_vaddr_$2);
1722 dst->p_offset = tomo(src, P1_offset_$2);
1723 dst->p_type = tomw(src, P1_type_$2);
1733 $1(Elf32_Rel *dst, unsigned char *src, size_t cnt)
1738 src += cnt * R1_sizeof;
1740 src -= R1_sizeof;
1741 dst->r_info = tomw(src, R1_info_$2);
1742 dst->r_offset = toma(src, R1_offset_$2);
1752 $1(Elf32_Rela *dst, unsigned char *src, size_t cnt)
1757 src += cnt * RA1_sizeof;
1759 src -= RA1_sizeof;
1763 dst->r_addend = tomw(src, RA1_addend_$2);
1770 if ((u.w = tomw(src, RA1_addend_$2)) & HI32) {
1777 dst->r_info = tomw(src, RA1_info_$2);
1778 dst->r_offset = toma(src, RA1_offset_$2);
1788 $1(Elf32_Shdr *dst, unsigned char *src, size_t cnt)
1793 src += cnt * SH1_sizeof;
1795 src -= SH1_sizeof;
1796 dst->sh_entsize = tomw(src, SH1_entsize_$2);
1797 dst->sh_addralign = tomw(src, SH1_addralign_$2);
1798 dst->sh_info = tomw(src, SH1_info_$2);
1799 dst->sh_link = tomw(src, SH1_link_$2);
1800 dst->sh_size = tomw(src, SH1_size_$2);
1801 dst->sh_offset = tomo(src, SH1_offset_$2);
1802 dst->sh_addr = toma(src, SH1_addr_$2);
1803 dst->sh_flags = tomw(src, SH1_flags_$2);
1804 dst->sh_type = tomw(src, SH1_type_$2);
1805 dst->sh_name = tomw(src, SH1_name_$2);
1816 $1(Elf32_Sword *dst, unsigned char *src, size_t cnt)
1821 src += cnt * W_sizeof;
1823 src -= W_sizeof;
1827 *dst = tomw(src, W_$2);
1834 if ((u.w = tomw(src, W_$2)) & HI32) {
1850 $1(Elf32_Cap *dst, unsigned char *src, size_t cnt)
1855 dst->c_tag = tomw(src, C1_tag_$2);
1856 dst->c_un.c_val = tomw(src, C1_val_$2);
1857 src += C1_sizeof;
1867 $1(Elf32_Syminfo *dst, unsigned char *src, size_t cnt)
1872 src += cnt * SI1_sizeof;
1874 src -= SI1_sizeof;
1875 dst->si_boundto = tomh(src, SI1_boundto_$2);
1876 dst->si_flags = tomh(src, SI1_flags_$2);
1886 $1(Elf32_Sym *dst, unsigned char *src, size_t cnt)
1891 src += cnt * ST1_sizeof;
1893 src -= ST1_sizeof;
1894 dst->st_shndx = tomh(src, ST1_shndx_$2);
1895 dst->st_other = tomb(src, ST1_other_$2);
1896 dst->st_info = tomb(src, ST1_info_$2);
1897 dst->st_size = tomw(src, ST1_size_$2);
1898 dst->st_value = toma(src, ST1_value_$2);
1899 dst->st_name = tomw(src, ST1_name_$2);
1909 $1(Elf32_Word *dst, unsigned char *src, size_t cnt)
1914 src += cnt * W_sizeof;
1916 src -= W_sizeof;
1917 *dst = tomw(src, W_$2);
1927 $1(Elf32_Verdef *dst, unsigned char *src, size_t cnt)
1937 dst->vd_version = tomh(src, VD1_version_$2);
1938 dst->vd_flags = tomh(src, VD1_flags_$2);
1939 dst->vd_ndx = tomh(src, VD1_ndx_$2);
1940 dst->vd_cnt = tomh(src, VD1_cnt_$2);
1941 dst->vd_hash = tomw(src, VD1_hash_$2);
1942 dst->vd_aux = tomw(src, VD1_aux_$2);
1943 dst->vd_next = tomw(src, VD1_next_$2);
1945 src_vaux = src + dst->vd_aux;
1956 src += dst->vd_next;
1969 $1(Elf32_Verneed *dst, unsigned char *src, size_t cnt)
1978 dst->vn_version = tomh(src, VN1_version_$2);
1979 dst->vn_cnt = tomh(src, VN1_cnt_$2);
1980 dst->vn_file = toma(src, VN1_file_$2);
1981 dst->vn_aux = tomw(src, VN1_aux_$2);
1982 dst->vn_next = tomw(src, VN1_next_$2);
1984 src_vaux = src + dst->vn_aux;
1998 src += dst->vn_next;