sgx.h (d6d261bded8a57aed4faa12d08a5b193418d3aa4) sgx.h (992801ae92431761b3d8ec88abd5793d154d34ac)
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _X86_SGX_H
3#define _X86_SGX_H
4
5#include <linux/bitops.h>
6#include <linux/err.h>
7#include <linux/io.h>
8#include <linux/rwsem.h>

--- 17 unchanged lines hidden (view full) ---

26/* Pages, which are being tracked by the page reclaimer. */
27#define SGX_EPC_PAGE_RECLAIMER_TRACKED BIT(0)
28
29/* Pages on free list */
30#define SGX_EPC_PAGE_IS_FREE BIT(1)
31
32struct sgx_epc_page {
33 unsigned int section;
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _X86_SGX_H
3#define _X86_SGX_H
4
5#include <linux/bitops.h>
6#include <linux/err.h>
7#include <linux/io.h>
8#include <linux/rwsem.h>

--- 17 unchanged lines hidden (view full) ---

26/* Pages, which are being tracked by the page reclaimer. */
27#define SGX_EPC_PAGE_RECLAIMER_TRACKED BIT(0)
28
29/* Pages on free list */
30#define SGX_EPC_PAGE_IS_FREE BIT(1)
31
32struct sgx_epc_page {
33 unsigned int section;
34 unsigned int flags;
34 u16 flags;
35 u16 poison;
35 struct sgx_encl_page *owner;
36 struct list_head list;
37};
38
39/*
40 * Contains the tracking data for NUMA nodes having EPC pages. Most importantly,
41 * the free page list local to the node is stored here.
42 */
43struct sgx_numa_node {
44 struct list_head free_page_list;
36 struct sgx_encl_page *owner;
37 struct list_head list;
38};
39
40/*
41 * Contains the tracking data for NUMA nodes having EPC pages. Most importantly,
42 * the free page list local to the node is stored here.
43 */
44struct sgx_numa_node {
45 struct list_head free_page_list;
46 struct list_head sgx_poison_page_list;
45 spinlock_t lock;
46};
47
48/*
49 * The firmware can define multiple chunks of EPC to the different areas of the
50 * physical memory e.g. for memory areas of the each node. This structure is
51 * used to store EPC pages for one EPC section and virtual memory area where
52 * the pages have been mapped.

--- 49 unchanged lines hidden ---
47 spinlock_t lock;
48};
49
50/*
51 * The firmware can define multiple chunks of EPC to the different areas of the
52 * physical memory e.g. for memory areas of the each node. This structure is
53 * used to store EPC pages for one EPC section and virtual memory area where
54 * the pages have been mapped.

--- 49 unchanged lines hidden ---