1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-18 10:35:55 +00:00

Document Elf{32,64}_Lword. Keep the list of ELF types sorted.

Describe the contents of the 'e_shnum' and 'e_shstrndx' fields when
using extended section numbering.
This commit is contained in:
Joseph Koshy 2006-11-02 09:21:57 +00:00
parent 41517ab2e9
commit fb59cdf687
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=163907

View File

@ -90,6 +90,7 @@ The following types are being used for 32-bit architectures:
.Bd -literal -offset indent .Bd -literal -offset indent
Elf32_Addr Unsigned 32-bit program address Elf32_Addr Unsigned 32-bit program address
Elf32_Half Unsigned 16-bit field Elf32_Half Unsigned 16-bit field
Elf32_Lword Unsigned 64-bit field
Elf32_Off Unsigned 32-bit file offset Elf32_Off Unsigned 32-bit file offset
Elf32_Sword Signed 32-bit field or integer Elf32_Sword Signed 32-bit field or integer
Elf32_Word Unsigned 32-bit field or integer Elf32_Word Unsigned 32-bit field or integer
@ -99,10 +100,11 @@ For 64-bit architectures we have the following types:
.Bd -literal -offset indent .Bd -literal -offset indent
Elf64_Addr Unsigned 64-bit program address Elf64_Addr Unsigned 64-bit program address
Elf64_Half Unsigned 16-bit field Elf64_Half Unsigned 16-bit field
Elf64_Lword Unsigned 64-bit field
Elf64_Off Unsigned 64-bit file offset Elf64_Off Unsigned 64-bit file offset
Elf64_Sword Signed 32-bit field Elf64_Sword Signed 32-bit field
Elf64_Word Unsigned 32-bit field
Elf64_Sxword Signed 64-bit field or integer Elf64_Sxword Signed 64-bit field or integer
Elf64_Word Unsigned 32-bit field
Elf64_Xword Unsigned 64-bit field or integer Elf64_Xword Unsigned 64-bit field or integer
.Ed .Ed
.Pp .Pp
@ -375,19 +377,31 @@ A section header is one
entry in the section header table; all entries are the same size. entry in the section header table; all entries are the same size.
.It Dv e_shnum .It Dv e_shnum
This member holds the number of entries in the section header table. This member holds the number of entries in the section header table.
Thus If the file is using extended section numbering, then the
the product of .Sy e_shnum
field will be zero and the actual section number will be stored in the
.Sy sh_size
member of the section header at index
.Dv SHN_UNDEF .
If a file has no section header table, both the
.Sy e_shnum
and the
.Sy e_shoff
fields of the ELF header will be zero.
The product of
.Sy e_shentsize .Sy e_shentsize
and and the number of sections in the file gives the section header
.Sy e_shnum table's size in bytes.
gives the section header table's size in bytes.
If a file has no section
header table,
.Sy e_shnum
holds the value of zero.
.It Dv e_shstrndx .It Dv e_shstrndx
This member holds the section header table index of the entry associated This member holds the section header table index of the entry associated
with the section name string table. with the section name string table.
If extended section numbering is being used, this field will hold the
value
.Sy SHN_XINDEX ,
and the actual section header table index will be present in the
.Sy sh_link
field of the section header entry at index
.Dv SHN_UNDEF .
If the file has no section name string If the file has no section name string
table, this member holds the value table, this member holds the value
.Sy SHN_UNDEF . .Sy SHN_UNDEF .