byte_get() 함수에 관한 질문입니다...
안녕하세요... 제가 리눅스 소스중 binutil 에 readelf.c 라는 소스를 보고 있는데요...
elf_header.e_type = BYTE_GET (ehdr32.e_type);
elf_header.e_machine = BYTE_GET (ehdr32.e_machine);
elf_header.e_version = BYTE_GET (ehdr32.e_version);
elf_header.e_entry = BYTE_GET (ehdr32.e_entry);
elf_header.e_phoff = BYTE_GET (ehdr32.e_phoff);
elf_header.e_shoff = BYTE_GET (ehdr32.e_shoff);
elf_header.e_flags = BYTE_GET (ehdr32.e_flags);
elf_header.e_ehsize = BYTE_GET (ehdr32.e_ehsize);
elf_header.e_phentsize = BYTE_GET (ehdr32.e_phentsize);
elf_header.e_phnum = BYTE_GET (ehdr32.e_phnum);
elf_header.e_shentsize = BYTE_GET (ehdr32.e_shentsize);
elf_header.e_shnum = BYTE_GET (ehdr32.e_shnum);
elf_header.e_shstrndx = BYTE_GET (ehdr32.e_shstrndx);
이게 소스 일부분이구요...
여기서 BYTE_GET 함수가 하는 기능이 무엇인지 알고 싶습니다...
찾아봐도 잘 모르겠어요...
BYTE_GET 함수의 정의 를 따라가보면
#define BYTE_GET(field) byte_get (field, sizeof (field))
이렇게 다시 정의 되어 있습니다...
대략 byte_get 이 비트변환 같은 기능을 하는거 같은데 자세히 모르겠습니다...
아시는분 시원하게 답변 좀 부탁드리겠습니다~~
GNU binutils xref 를
GNU binutils xref 를 찾아봤더니 opensolaris 에서 제공하는 2.15 밖에 없네요. oTL
http://src.opensolaris.org/source/search?q=byte_get
보시다시피 함수 포인터 입니다.
http://src.opensolaris.org/source/xref/sfw/usr/src/cmd/binutils/binutils-2.15/binutils/readelf.c#10161
보시다시피 byte_get_little_endian() 또는 byte_get_big_endian() 를 가르키게 됩니다.
답답하시더라도 나머지는 스스로.
댓글 달기