summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRizwan Qureshi <rizwan.qureshi@intel.com>2017-03-06 21:50:26 +0530
committerMartin Roth <martinroth@google.com>2017-04-03 04:53:03 +0200
commitaca4c94057850762ddd3c78e6e8cf9023e22a66a (patch)
treeabc778553f890633e393afe14d93d995c20ca6c6
parentee762fa42b2b99627627758c33fa66ebe7255433 (diff)
downloadcoreboot-aca4c94057850762ddd3c78e6e8cf9023e22a66a.tar.xz
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. Change-Id: Ifaf508ae1d5c0eb2629ca112224bfeae1c644e58 Signed-off-by: Rizwan Qureshi <rizwan.qureshi@intel.com> Signed-off-by: Sowmya V <v.sowmya@intel.com> Reviewed-on: https://review.coreboot.org/18966 Tested-by: build bot (Jenkins) Reviewed-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
-rw-r--r--src/arch/x86/acpigen.c8
-rw-r--r--src/arch/x86/include/arch/acpigen.h4
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);
/*