3671c32532
Signed-off-by: Chloe M. <chloe@mensia.org>
35 lines
699 B
C
35 lines
699 B
C
/*
|
|
* 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_ */
|