linux/include/linux/mem_encrypt.h
<<
>>
Prefs
   1/*
   2 * AMD Memory Encryption Support
   3 *
   4 * Copyright (C) 2016 Advanced Micro Devices, Inc.
   5 *
   6 * Author: Tom Lendacky <thomas.lendacky@amd.com>
   7 *
   8 * This program is free software; you can redistribute it and/or modify
   9 * it under the terms of the GNU General Public License version 2 as
  10 * published by the Free Software Foundation.
  11 */
  12
  13#ifndef __MEM_ENCRYPT_H__
  14#define __MEM_ENCRYPT_H__
  15
  16#ifndef __ASSEMBLY__
  17
  18#ifdef CONFIG_ARCH_HAS_MEM_ENCRYPT
  19
  20#include <asm/mem_encrypt.h>
  21
  22#else   /* !CONFIG_ARCH_HAS_MEM_ENCRYPT */
  23
  24static inline bool mem_encrypt_active(void) { return false; }
  25
  26#endif  /* CONFIG_ARCH_HAS_MEM_ENCRYPT */
  27
  28#ifdef CONFIG_AMD_MEM_ENCRYPT
  29/*
  30 * The __sme_set() and __sme_clr() macros are useful for adding or removing
  31 * the encryption mask from a value (e.g. when dealing with pagetable
  32 * entries).
  33 */
  34#define __sme_set(x)            ((x) | sme_me_mask)
  35#define __sme_clr(x)            ((x) & ~sme_me_mask)
  36#else
  37#define __sme_set(x)            (x)
  38#define __sme_clr(x)            (x)
  39#endif
  40
  41#endif  /* __ASSEMBLY__ */
  42
  43#endif  /* __MEM_ENCRYPT_H__ */
  44