aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Berger <stefanb@linux.ibm.com>2020-01-21 15:01:40 -0500
committerAlexey Kardashevskiy <aik@ozlabs.ru>2020-02-21 14:03:07 +1100
commitb4a8dea2737b43f2b94787fe5fd65a606dbca9c0 (patch)
tree18b8c8bcc213908c5a45fc3f60c6681638b9a611
parentefa56b851fabe3372d55613be5195ee339441fa0 (diff)
downloadSLOF-b4a8dea2737b43f2b94787fe5fd65a606dbca9c0.zip
SLOF-b4a8dea2737b43f2b94787fe5fd65a606dbca9c0.tar.gz
SLOF-b4a8dea2737b43f2b94787fe5fd65a606dbca9c0.tar.bz2
slof: Implement SLOF_get_keystroke() and SLOF_reset()
Implement SLOF_get_keystroke() and SLOF_reset() helper functions. Signed-off-by: Stefan Berger <stefanb@linux.ibm.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
-rw-r--r--include/helpers.h2
-rw-r--r--slof/helpers.c11
2 files changed, 13 insertions, 0 deletions
diff --git a/include/helpers.h b/include/helpers.h
index 5834bce..9a06a5c 100644
--- a/include/helpers.h
+++ b/include/helpers.h
@@ -42,6 +42,8 @@ extern void SLOF_encode_bootp_response(void *addr, size_t size);
extern void SLOF_encode_dhcp_response(void *addr, size_t size);
extern int SLOF_get_property(const char *node, const char *propname,
char **addr, int *len);
+extern int SLOF_get_keystroke(void);
+extern void SLOF_reset(void);
#define offset_of(type, member) ((long) &((type *)0)->member)
#define container_of(ptr, type, member) ({ \
diff --git a/slof/helpers.c b/slof/helpers.c
index dfb0c13..9d37bc3 100644
--- a/slof/helpers.c
+++ b/slof/helpers.c
@@ -224,3 +224,14 @@ int SLOF_get_property(const char *node, const char *propname,
*addr = (char *)forth_pop();
return 0;
}
+
+int SLOF_get_keystroke(void)
+{
+ forth_eval("key");
+ return forth_pop();
+}
+
+void SLOF_reset(void)
+{
+ forth_eval("reset-all");
+}