about summary refs log tree commit diff
path: root/elf
diff options
context:
space:
mode:
authorMark Wielaard <mjw@redhat.com>2015-05-01 16:21:55 +0200
committerMark Wielaard <mjw@redhat.com>2015-05-01 22:48:19 +0200
commitb4336ba4f583e853fff4620243ae027cbab2b541 (patch)
tree2b3ac795238a751e921cbfe13a9a95deabfa714e /elf
parente1483b365da03e4bab3882e30872ed331f48cd21 (diff)
downloadglibc-b4336ba4f583e853fff4620243ae027cbab2b541.tar.gz
glibc-b4336ba4f583e853fff4620243ae027cbab2b541.tar.xz
glibc-b4336ba4f583e853fff4620243ae027cbab2b541.zip
elf.h: Add section compression constants and structures.
Add SHF_COMPRESSED section flag, Elf32_Chdr and Elf64_Chdr structs and
ELFCOMPRESS constants to elf/elf.h.
Diffstat (limited to 'elf')
-rw-r--r--elf/elf.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/elf/elf.h b/elf/elf.h
index 39bafc225c..12feb915bf 100644
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -367,6 +367,7 @@ typedef struct
 					   required */
 #define SHF_GROUP	     (1 << 9)	/* Section is member of a group.  */
 #define SHF_TLS		     (1 << 10)	/* Section hold thread-local data.  */
+#define SHF_COMPRESSED	     (1 << 11)	/* Section with compressed data. */
 #define SHF_MASKOS	     0x0ff00000	/* OS-specific.  */
 #define SHF_MASKPROC	     0xf0000000	/* Processor-specific */
 #define SHF_ORDERED	     (1 << 30)	/* Special ordering requirement
@@ -374,6 +375,30 @@ typedef struct
 #define SHF_EXCLUDE	     (1U << 31)	/* Section is excluded unless
 					   referenced or allocated (Solaris).*/
 
+/* Section compression header.  Used when SHF_COMPRESSED is set.  */
+
+typedef struct
+{
+  Elf32_Word	ch_type;	/* Compression format.  */
+  Elf32_Word	ch_size;	/* Uncompressed data size.  */
+  Elf32_Word	ch_addralign;	/* Uncompressed data alignment.  */
+} Elf32_Chdr;
+
+typedef struct
+{
+  Elf64_Word	ch_type;	/* Compression format.  */
+  Elf64_Word	ch_reserved;
+  Elf64_Xword	ch_size;	/* Uncompressed data size.  */
+  Elf64_Xword	ch_addralign;	/* Uncompressed data alignment.  */
+} Elf64_Chdr;
+
+/* Legal values for ch_type (compression algorithm).  */
+#define ELFCOMPRESS_ZLIB	1	   /* ZLIB/DEFLATE algorithm.  */
+#define ELFCOMPRESS_LOOS	0x60000000 /* Start of OS-specific.  */
+#define ELFCOMPRESS_HIOS	0x6fffffff /* End of OS-specific.  */
+#define ELFCOMPRESS_LOPROC	0x70000000 /* Start of processor-specific.  */
+#define ELFCOMPRESS_HIPROC	0x7fffffff /* End of processor-specific.  */
+
 /* Section group handling.  */
 #define GRP_COMDAT	0x1		/* Mark group as COMDAT.  */