Skip to content

Commit 77f9221

Browse files
committed
Add UMF_MEM_MAP_SYNC for MAP_SYNC on Linux only
Signed-off-by: Lukasz Dorau <[email protected]>
1 parent cea17c7 commit 77f9221

File tree

4 files changed

+9
-1
lines changed

4 files changed

+9
-1
lines changed

include/umf/memory_provider.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ extern "C" {
2020
/// @brief Memory visibility mode
2121
typedef enum umf_memory_visibility_t {
2222
UMF_MEM_MAP_PRIVATE = 1, ///< private memory mapping
23-
UMF_MEM_MAP_SHARED, ///< shared memory mapping (supported on Linux only)
23+
UMF_MEM_MAP_SHARED, ///< shared memory mapping (Linux only)
24+
UMF_MEM_MAP_SYNC, ///< direct mapping of persistent memory (supported only for files supporting DAX, Linux only)
2425
} umf_memory_visibility_t;
2526

2627
/// @brief Protection of the memory allocations

src/utils/utils_linux_common.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ utils_translate_mem_visibility_flag(umf_memory_visibility_t in_flag,
3131
case UMF_MEM_MAP_SHARED:
3232
*out_flag = MAP_SHARED;
3333
return UMF_RESULT_SUCCESS;
34+
case UMF_MEM_MAP_SYNC:
35+
*out_flag = MAP_SYNC;
36+
return UMF_RESULT_SUCCESS;
3437
}
3538
return UMF_RESULT_ERROR_INVALID_ARGUMENT;
3639
}

src/utils/utils_macosx_common.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ utils_translate_mem_visibility_flag(umf_memory_visibility_t in_flag,
2323
return UMF_RESULT_SUCCESS;
2424
case UMF_MEM_MAP_SHARED:
2525
return UMF_RESULT_ERROR_NOT_SUPPORTED; // not supported on MacOSX
26+
case UMF_MEM_MAP_SYNC:
27+
return UMF_RESULT_ERROR_NOT_SUPPORTED; // not supported on MacOSX
2628
}
2729
return UMF_RESULT_ERROR_INVALID_ARGUMENT;
2830
}

src/utils/utils_windows_common.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ utils_translate_mem_visibility_flag(umf_memory_visibility_t in_flag,
9696
return UMF_RESULT_SUCCESS;
9797
case UMF_MEM_MAP_SHARED:
9898
return UMF_RESULT_ERROR_NOT_SUPPORTED; // not supported on Windows yet
99+
case UMF_MEM_MAP_SYNC:
100+
return UMF_RESULT_ERROR_NOT_SUPPORTED; // not supported on Windows yet
99101
}
100102
return UMF_RESULT_ERROR_INVALID_ARGUMENT;
101103
}

0 commit comments

Comments
 (0)