summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeinrich Schuchardt <xypron.glpk@gmx.de>2017-10-05 14:35:52 (GMT)
committerAlexander Graf <agraf@suse.de>2017-10-09 05:00:29 (GMT)
commitfc05a9590689b70fffdb9914e9867ea53fd579fa (patch)
treebb597213405447724eacc8aa0f38cc705732823c
parentf7c78176d6925726d654cd84eb866c7b39da1b13 (diff)
downloadu-boot-fc05a9590689b70fffdb9914e9867ea53fd579fa.tar.xz
efi_loader: parameters of CopyMem and SetMem
The UEFI spec defines the length parameters of CopyMem and SetMem as UINTN. We should size_t here. The source buffer of CopyMem should be marked as const. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Alexander Graf <agraf@suse.de>
-rw-r--r--include/efi_api.h7
-rw-r--r--lib/efi_loader/efi_boottime.c10
2 files changed, 8 insertions, 9 deletions
diff --git a/include/efi_api.h b/include/efi_api.h
index c3b9032..0b1a383 100644
--- a/include/efi_api.h
+++ b/include/efi_api.h
@@ -156,10 +156,9 @@ struct efi_boot_services {
void *handle, ...);
efi_status_t (EFIAPI *calculate_crc32)(void *data,
unsigned long data_size, uint32_t *crc32);
- void (EFIAPI *copy_mem)(void *destination, void *source,
- unsigned long length);
- void (EFIAPI *set_mem)(void *buffer, unsigned long size,
- uint8_t value);
+ void (EFIAPI *copy_mem)(void *destination, const void *source,
+ size_t length);
+ void (EFIAPI *set_mem)(void *buffer, size_t size, uint8_t value);
void *create_event_ex;
};
diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
index b8b98f2..c48ff2c 100644
--- a/lib/efi_loader/efi_boottime.c
+++ b/lib/efi_loader/efi_boottime.c
@@ -1863,10 +1863,10 @@ static efi_status_t EFIAPI efi_calculate_crc32(void *data,
* @source source of the copy operation
* @length number of bytes to copy
*/
-static void EFIAPI efi_copy_mem(void *destination, void *source,
- unsigned long length)
+static void EFIAPI efi_copy_mem(void *destination, const void *source,
+ size_t length)
{
- EFI_ENTRY("%p, %p, %ld", destination, source, length);
+ EFI_ENTRY("%p, %p, %ld", destination, source, (unsigned long)length);
memcpy(destination, source, length);
EFI_EXIT(EFI_SUCCESS);
}
@@ -1882,9 +1882,9 @@ static void EFIAPI efi_copy_mem(void *destination, void *source,
* @size size of buffer in bytes
* @value byte to copy to the buffer
*/
-static void EFIAPI efi_set_mem(void *buffer, unsigned long size, uint8_t value)
+static void EFIAPI efi_set_mem(void *buffer, size_t size, uint8_t value)
{
- EFI_ENTRY("%p, %ld, 0x%x", buffer, size, value);
+ EFI_ENTRY("%p, %ld, 0x%x", buffer, (unsigned long)size, value);
memset(buffer, value, size);
EFI_EXIT(EFI_SUCCESS);
}