2022-06-03 19:15:11 +00:00
|
|
|
/* SPDX-License-Identifier: BSD-3-Clause
|
2022-11-01 20:26:26 +00:00
|
|
|
* Copyright (C) 2019 Intel Corporation.
|
2019-01-07 10:38:39 +00:00
|
|
|
* All rights reserved.
|
|
|
|
*/
|
|
|
|
|
2020-02-27 13:38:02 +00:00
|
|
|
#ifndef SPDK_MEMORY_H
|
|
|
|
#define SPDK_MEMORY_H
|
2019-01-07 10:38:39 +00:00
|
|
|
|
|
|
|
#include "spdk/stdinc.h"
|
|
|
|
|
2022-08-03 20:28:23 +00:00
|
|
|
#ifndef __linux__
|
|
|
|
#define VFIO_ENABLED 0
|
|
|
|
#else
|
|
|
|
#include <linux/version.h>
|
|
|
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)
|
|
|
|
#define VFIO_ENABLED 1
|
|
|
|
#else
|
|
|
|
#define VFIO_ENABLED 0
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
2019-01-07 10:38:39 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define SHIFT_2MB 21 /* (1 << 21) == 2MB */
|
2020-02-27 13:12:31 +00:00
|
|
|
#define VALUE_2MB (1ULL << SHIFT_2MB)
|
|
|
|
#define MASK_2MB (VALUE_2MB - 1)
|
2019-01-07 10:38:39 +00:00
|
|
|
|
|
|
|
#define SHIFT_4KB 12 /* (1 << 12) == 4KB */
|
2020-02-27 13:12:31 +00:00
|
|
|
#define VALUE_4KB (1ULL << SHIFT_4KB)
|
|
|
|
#define MASK_4KB (VALUE_4KB - 1)
|
2019-01-07 10:38:39 +00:00
|
|
|
|
2020-02-27 13:12:31 +00:00
|
|
|
#define _2MB_OFFSET(ptr) (((uintptr_t)(ptr)) & MASK_2MB)
|
|
|
|
#define _2MB_PAGE(ptr) FLOOR_2MB((uintptr_t)(ptr))
|
|
|
|
#define FLOOR_2MB(x) (((uintptr_t)(x)) & ~MASK_2MB)
|
|
|
|
#define CEIL_2MB(x) FLOOR_2MB(((uintptr_t)(x)) + VALUE_2MB - 1)
|
2019-01-07 10:38:39 +00:00
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2020-02-27 13:38:02 +00:00
|
|
|
#endif /* SPDK_MEMORY_H */
|