summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Durbin <adurbin@chromium.org>2013-12-10 17:09:40 -0800
committerKyösti Mälkki <kyosti.malkki@gmail.com>2014-05-10 06:30:43 +0200
commitd86f0b743fba5d02cfc1500997f6c6f5e4250eb5 (patch)
treea1c416b6d551045fe4b640e1d124068bb44c7f58
parent430bf0d8a96bf9bb3c343c5cf63c6ae8482c532c (diff)
downloadcoreboot-d86f0b743fba5d02cfc1500997f6c6f5e4250eb5.tar.xz
reg_script: add reg_script_run_on_dev()
The reg_script library has proven to be useful. It's also shown that many scripts operate on devices. However, certain code paths run the same script on multiple, but different, devices. In order to make that easier introduce reg_script_run_on_dev() which takes a device as a parameter. That way, chained reg_scripts are not scrictly needed to run the same script on multiple devices. BUG=None BRANCH=None TEST=Built. Change-Id: I273499af4d303ebd7dc19e9b635ca23cf9bb2225 Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/179540 Reviewed-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-on: http://review.coreboot.org/5005 Tested-by: build bot (Jenkins) Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
-rw-r--r--src/include/reg_script.h1
-rw-r--r--src/lib/reg_script.c9
2 files changed, 8 insertions, 2 deletions
diff --git a/src/include/reg_script.h b/src/include/reg_script.h
index 81a4648473..72e1e96b0c 100644
--- a/src/include/reg_script.h
+++ b/src/include/reg_script.h
@@ -334,5 +334,6 @@ struct reg_script {
_REG_SCRIPT_ENCODE_RAW(REG_SCRIPT_COMMAND_END, 0, 0, 0, 0, 0, 0, 0)
void reg_script_run(const struct reg_script *script);
+void reg_script_run_on_dev(device_t dev, const struct reg_script *step);
#endif /* REG_SCRIPT_H */
diff --git a/src/lib/reg_script.c b/src/lib/reg_script.c
index d7c4577e0c..065552043b 100644
--- a/src/lib/reg_script.c
+++ b/src/lib/reg_script.c
@@ -468,11 +468,16 @@ static void reg_script_run_next(struct reg_script_context *prev_ctx,
reg_script_run_with_context(&ctx);
}
-void reg_script_run(const struct reg_script *step)
+void reg_script_run_on_dev(device_t dev, const struct reg_script *step)
{
struct reg_script_context ctx;
- reg_script_set_dev(&ctx, EMPTY_DEV);
+ reg_script_set_dev(&ctx, dev);
reg_script_set_step(&ctx, step);
reg_script_run_with_context(&ctx);
}
+
+void reg_script_run(const struct reg_script *step)
+{
+ reg_script_run_on_dev(EMPTY_DEV, step);
+}