aboutsummaryrefslogtreecommitdiff
path: root/sys/amd64/include
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2018-09-02 21:37:05 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2018-09-02 21:37:05 +0000
commit50cd0be78f3e7fc069f5a06a4dc9aac35a4c0af0 (patch)
treeb4dd97e402be82e6732923105fd8cf33ff6d286e /sys/amd64/include
parent1565fb29a78f0e70bd1dd4287ee7b87854131c1e (diff)
downloadsrc-50cd0be78f3e7fc069f5a06a4dc9aac35a4c0af0.tar.gz
src-50cd0be78f3e7fc069f5a06a4dc9aac35a4c0af0.zip
Catch exceptions during EFI RT calls on amd64.
This appeared to be required to have EFI RT support and EFI RTC enabled by default, because there are too many reports of faulting calls on many different machines. The knob is added to leave the exceptions unhandled to allow to debug the actual bugs. Reviewed by: kevans Sponsored by: The FreeBSD Foundation MFC after: 1 week Approved by: re (rgrimes) Differential revision: https://reviews.freebsd.org/D16972
Notes
Notes: svn path=/head/; revision=338437
Diffstat (limited to 'sys/amd64/include')
-rw-r--r--sys/amd64/include/efi.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/sys/amd64/include/efi.h b/sys/amd64/include/efi.h
index 9fa54ee023fb..082223792ac0 100644
--- a/sys/amd64/include/efi.h
+++ b/sys/amd64/include/efi.h
@@ -51,6 +51,27 @@
#define EFI_TIME_LOCK() mtx_lock(&atrtc_time_lock)
#define EFI_TIME_UNLOCK() mtx_unlock(&atrtc_time_lock)
#define EFI_TIME_OWNED() mtx_assert(&atrtc_time_lock, MA_OWNED)
+
+#define EFI_RT_HANDLE_FAULTS_DEFAULT 1
#endif
+struct efirt_callinfo {
+ const char *ec_name;
+ register_t ec_efi_status;
+ register_t ec_fptr;
+ register_t ec_argcnt;
+ register_t ec_arg1;
+ register_t ec_arg2;
+ register_t ec_arg3;
+ register_t ec_arg4;
+ register_t ec_arg5;
+ register_t ec_rbx;
+ register_t ec_rsp;
+ register_t ec_rbp;
+ register_t ec_r12;
+ register_t ec_r13;
+ register_t ec_r14;
+ register_t ec_r15;
+};
+
#endif /* __AMD64_INCLUDE_EFI_H_ */