From 3671c32532fbda1bb83427d45b55782e43aeeb15 Mon Sep 17 00:00:00 2001 From: "Chloe M." Date: Tue, 23 Jun 2026 18:59:57 +0000 Subject: [PATCH] stos/amd64: Add kernel fence helper Signed-off-by: Chloe M. --- paw/stos/head/arch/amd64/kfence.h | 34 +++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 paw/stos/head/arch/amd64/kfence.h diff --git a/paw/stos/head/arch/amd64/kfence.h b/paw/stos/head/arch/amd64/kfence.h new file mode 100644 index 0000000..0dd5405 --- /dev/null +++ b/paw/stos/head/arch/amd64/kfence.h @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2026, Chloe M. + * Provided under the BSD-3 clause. + * + * Description: Kernel entry fence + * Author: Chloe M. + */ + +#ifndef _MACHINE_KFENCE_H_ +#define _MACHINE_KFENCE_H_ 1 + +/* + * Kernel fence for interrupt entries that do + * not have an error code + */ +#define KFENCE \ + testq $0x3, 8(%rsp) ; \ + jz 1f ; \ + lfence ; \ + swapgs ; \ +1: nop + +/* + * Kernel fence for interrupt entries that + * have an error code + */ +#define KFENCE_EC \ + testq $0x3, 16(%rsp) ; \ + jz 1f ; \ + lfence ; \ + swapgs ; \ +1: nop + +#endif /* !_MACHINE_KFENCE_H_ */