summaryrefslogtreecommitdiff
path: root/src/arch
diff options
context:
space:
mode:
authorDuncan Laurie <dlaurie@chromium.org>2016-07-02 19:53:54 -0700
committerMartin Roth <martinroth@google.com>2016-07-07 17:15:17 +0200
commit85d80276281e179b4e6a896e731090e9580ce8b9 (patch)
treead9c9ae69882d18088c692f0bd7ab086335a01ca /src/arch
parent3727776a8b423c55d40cf7627e27b8b03175d74d (diff)
acpigen_write_package: Return pointer to package element counter
Have acpigen_write_package() return a pointer to the package element counter so it can be used for dynamic package generation where needed. Change-Id: Id7f6dd03511069211ba3ee3eb29a6ca1742de847 Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-on: https://review.coreboot.org/15536 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/x86/acpigen.c5
-rw-r--r--src/arch/x86/include/arch/acpigen.h2
2 files changed, 5 insertions, 2 deletions
diff --git a/src/arch/x86/acpigen.c b/src/arch/x86/acpigen.c
index c370321835..d37568c92f 100644
--- a/src/arch/x86/acpigen.c
+++ b/src/arch/x86/acpigen.c
@@ -87,12 +87,15 @@ void acpigen_emit_dword(unsigned int data)
acpigen_emit_byte((data >> 24) & 0xff);
}
-void acpigen_write_package(int nr_el)
+char *acpigen_write_package(int nr_el)
{
+ char *p;
/* package op */
acpigen_emit_byte(0x12);
acpigen_write_len_f();
+ p = acpigen_get_current();
acpigen_emit_byte(nr_el);
+ return p;
}
void acpigen_write_byte(unsigned int data)
diff --git a/src/arch/x86/include/arch/acpigen.h b/src/arch/x86/include/arch/acpigen.h
index 9e6ef2958f..9035f27b86 100644
--- a/src/arch/x86/include/arch/acpigen.h
+++ b/src/arch/x86/include/arch/acpigen.h
@@ -38,7 +38,7 @@ void acpigen_write_len_f(void);
void acpigen_pop_len(void);
void acpigen_set_current(char *curr);
char *acpigen_get_current(void);
-void acpigen_write_package(int nr_el);
+char *acpigen_write_package(int nr_el);
void acpigen_write_zero(void);
void acpigen_write_one(void);
void acpigen_write_ones(void);