linux/arch/x86/include/asm/smap.h

/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Supervisor Mode Access Prevention support
 *
 * Copyright (C) 2012 Intel Corporation
 * Author: H. Peter Anvin <[email protected]>
 */

#ifndef _ASM_X86_SMAP_H
#define _ASM_X86_SMAP_H

#include <asm/nops.h>
#include <asm/cpufeatures.h>
#include <asm/alternative.h>

/* "Raw" instruction opcodes */
#define __ASM_CLAC
#define __ASM_STAC

#ifdef __ASSEMBLY__

#define ASM_CLAC

#define ASM_STAC

#else /* __ASSEMBLY__ */

static __always_inline void clac(void)
{}

static __always_inline void stac(void)
{}

static __always_inline unsigned long smap_save(void)
{}

static __always_inline void smap_restore(unsigned long flags)
{}

/* These macros can be used in asm() statements */
#define ASM_CLAC
#define ASM_STAC

#endif /* __ASSEMBLY__ */

#endif /* _ASM_X86_SMAP_H */