From cfe4e38ed5804f5b74d657f9a086309ab59121d5 Mon Sep 17 00:00:00 2001 From: Rizwan Qureshi Date: Mon, 6 Mar 2017 21:50:26 +0530 Subject: [PATCH] UPSTREAM: arch/x86/acpigen: Allow writing buffers larger than 256 bytes Currently only 256 bytes can be written at a time using the acpigen_write_return_byte_buffer or acpigen_write_byte_buffer API's and there can be cases where the buffer size can exceed this, hence increase the number of bytes that can be written. BUG=none BRANCH=none TEST=none Change-Id: I1e7db59aca3bde85eb1f171a7e95854c1f438bcb Signed-off-by: Patrick Georgi Original-Commit-Id: aca4c94057850762ddd3c78e6e8cf9023e22a66a Original-Change-Id: Ifaf508ae1d5c0eb2629ca112224bfeae1c644e58 Original-Signed-off-by: Rizwan Qureshi Original-Signed-off-by: Sowmya V Original-Reviewed-on: https://review.coreboot.org/18966 Original-Tested-by: build bot (Jenkins) Original-Reviewed-by: Duncan Laurie Original-Reviewed-by: Aaron Durbin Reviewed-on: https://chromium-review.googlesource.com/466049 --- src/arch/x86/acpigen.c | 8 ++++---- src/arch/x86/include/arch/acpigen.h | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/arch/x86/acpigen.c b/src/arch/x86/acpigen.c index 81a69ce8cb..d3aaa3d644 100644 --- a/src/arch/x86/acpigen.c +++ b/src/arch/x86/acpigen.c @@ -1146,13 +1146,13 @@ void acpigen_write_to_integer(uint8_t src, uint8_t dst) acpigen_emit_byte(dst); } -void acpigen_write_byte_buffer(uint8_t *arr, uint8_t size) +void acpigen_write_byte_buffer(uint8_t *arr, size_t size) { - uint8_t i; + size_t i; acpigen_emit_byte(BUFFER_OP); acpigen_write_len_f(); - acpigen_write_byte(size); + acpigen_write_integer(size); for (i = 0; i < size; i++) acpigen_emit_byte(arr[i]); @@ -1160,7 +1160,7 @@ void acpigen_write_byte_buffer(uint8_t *arr, uint8_t size) acpigen_pop_len(); } -void acpigen_write_return_byte_buffer(uint8_t *arr, uint8_t size) +void acpigen_write_return_byte_buffer(uint8_t *arr, size_t size) { acpigen_emit_byte(RETURN_OP); acpigen_write_byte_buffer(arr, size); diff --git a/src/arch/x86/include/arch/acpigen.h b/src/arch/x86/include/arch/acpigen.h index b08ce93536..f76fce8ffb 100644 --- a/src/arch/x86/include/arch/acpigen.h +++ b/src/arch/x86/include/arch/acpigen.h @@ -242,8 +242,8 @@ void acpigen_write_if_lequal_op_int(uint8_t op, uint64_t val); void acpigen_write_else(void); void acpigen_write_to_buffer(uint8_t src, uint8_t dst); void acpigen_write_to_integer(uint8_t src, uint8_t dst); -void acpigen_write_byte_buffer(uint8_t *arr, uint8_t size); -void acpigen_write_return_byte_buffer(uint8_t *arr, uint8_t size); +void acpigen_write_byte_buffer(uint8_t *arr, size_t size); +void acpigen_write_return_byte_buffer(uint8_t *arr, size_t size); void acpigen_write_return_singleton_buffer(uint8_t arg); void acpigen_write_return_byte(uint8_t arg); /*