aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJan Matyas <matyas@codasip.com>2022-04-12 13:33:51 +0200
committerAntonio Borneo <borneo.antonio@gmail.com>2022-04-23 09:26:15 +0000
commita213397323585188ad2622de7eb9d5fcddee7a02 (patch)
tree4951eaf597214ae22df09a37b2348de13e49fccb /src
parent5ebb1bdea1dfff9cce430bd17d08e340eea38e03 (diff)
downloadriscv-openocd-a213397323585188ad2622de7eb9d5fcddee7a02.zip
riscv-openocd-a213397323585188ad2622de7eb9d5fcddee7a02.tar.gz
riscv-openocd-a213397323585188ad2622de7eb9d5fcddee7a02.tar.bz2
target/image: fix - p_flags field in ELF64 segment headers is 64 bits wide
Fixed the reading of p_flags in ELF64 segment headers - that field is 64 bits wide. Change-Id: I053ca57d36efb54b7c638484acd6c7a2fbcbd05a Signed-off-by: Jan Matyas <matyas@codasip.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6927 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/target/image.c4
-rw-r--r--src/target/image.h4
2 files changed, 4 insertions, 4 deletions
diff --git a/src/target/image.c b/src/target/image.c
index eafa73e..130ea6c 100644
--- a/src/target/image.c
+++ b/src/target/image.c
@@ -596,7 +596,7 @@ static int image_elf64_read_headers(struct image *image)
image->sections[j].base_address = field64(elf,
elf->segments64[i].p_paddr);
image->sections[j].private = &elf->segments64[i];
- image->sections[j].flags = field32(elf, elf->segments64[i].p_flags);
+ image->sections[j].flags = field64(elf, elf->segments64[i].p_flags);
j++;
}
}
@@ -1168,7 +1168,7 @@ int image_read_section(struct image *image,
return ERROR_OK;
}
-int image_add_section(struct image *image, target_addr_t base, uint32_t size, int flags, uint8_t const *data)
+int image_add_section(struct image *image, target_addr_t base, uint32_t size, uint64_t flags, uint8_t const *data)
{
struct imagesection *section;
diff --git a/src/target/image.h b/src/target/image.h
index 5b5d11f..bf06064 100644
--- a/src/target/image.h
+++ b/src/target/image.h
@@ -52,7 +52,7 @@ enum image_type {
struct imagesection {
target_addr_t base_address;
uint32_t size;
- int flags;
+ uint64_t flags;
void *private; /* private data */
};
@@ -108,7 +108,7 @@ int image_read_section(struct image *image, int section, target_addr_t offset,
void image_close(struct image *image);
int image_add_section(struct image *image, target_addr_t base, uint32_t size,
- int flags, uint8_t const *data);
+ uint64_t flags, uint8_t const *data);
int image_calculate_checksum(const uint8_t *buffer, uint32_t nbytes,
uint32_t *checksum);