Skip to content

Commit bbc17ea

Browse files
committed
Move common functions to utils_common
Move common functions to utils_common and rename them to utils_* Signed-off-by: Lukasz Dorau <[email protected]>
1 parent 692ac7f commit bbc17ea

19 files changed

+546
-504
lines changed

include/umf/memory_provider.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,23 @@
1717
extern "C" {
1818
#endif
1919

20+
/// @brief Memory visibility mode
21+
typedef enum umf_memory_visibility_t {
22+
UMF_MEM_MAP_PRIVATE = 1, ///< private memory mapping
23+
UMF_MEM_MAP_SHARED, ///< shared memory mapping (supported on Linux only)
24+
} umf_memory_visibility_t;
25+
26+
/// @brief Protection of the memory allocations
27+
typedef enum umf_mem_protection_flags_t {
28+
UMF_PROTECTION_NONE = (1 << 0), ///< Memory allocations can not be accessed
29+
UMF_PROTECTION_READ = (1 << 1), ///< Memory allocations can be read.
30+
UMF_PROTECTION_WRITE = (1 << 2), ///< Memory allocations can be written.
31+
UMF_PROTECTION_EXEC = (1 << 3), ///< Memory allocations can be executed.
32+
/// @cond
33+
UMF_PROTECTION_MAX // must be the last one
34+
/// @endcond
35+
} umf_mem_protection_flags_t;
36+
2037
/// @brief A struct containing memory provider specific set of functions
2138
typedef struct umf_memory_provider_t *umf_memory_provider_handle_t;
2239

include/umf/providers/provider_os_memory.h

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,6 @@ extern "C" {
1818
#define UMF_OS_RESULTS_START_FROM 1000
1919
/// @endcond
2020

21-
/// @brief Protection of the memory allocations
22-
typedef enum umf_mem_protection_flags_t {
23-
UMF_PROTECTION_NONE = (1 << 0), ///< Memory allocations can not be accessed
24-
UMF_PROTECTION_READ = (1 << 1), ///< Memory allocations can be read.
25-
UMF_PROTECTION_WRITE = (1 << 2), ///< Memory allocations can be written.
26-
UMF_PROTECTION_EXEC = (1 << 3), ///< Memory allocations can be executed.
27-
/// @cond
28-
UMF_PROTECTION_MAX // must be the last one
29-
/// @endcond
30-
} umf_mem_protection_flags_t;
31-
32-
/// @brief Memory visibility mode
33-
typedef enum umf_memory_visibility_t {
34-
UMF_MEM_MAP_PRIVATE = 1, ///< private memory mapping
35-
UMF_MEM_MAP_SHARED, ///< shared memory mapping (supported on Linux only)
36-
} umf_memory_visibility_t;
37-
3821
/// @brief Memory binding mode
3922
/// Specifies how memory is bound to NUMA nodes on systems that support NUMA.
4023
/// Not every mode is supported on every system.

src/provider/provider_devdax_memory.c

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515

1616
#include "base_alloc_global.h"
1717
#include "provider_devdax_memory_internal.h"
18-
#include "provider_os_memory_internal.h"
1918
#include "utils_common.h"
2019
#include "utils_concurrency.h"
2120
#include "utils_log.h"
@@ -68,8 +67,8 @@ devdax_translate_params(umf_devdax_memory_provider_params_t *in_params,
6867
devdax_memory_provider_t *provider) {
6968
umf_result_t result;
7069

71-
result = os_translate_mem_protection_flags(in_params->protection,
72-
&provider->protection);
70+
result = utils_translate_mem_protection_flags(in_params->protection,
71+
&provider->protection);
7372
if (result != UMF_RESULT_SUCCESS) {
7473
LOG_ERR("incorrect memory protection flags: %u", in_params->protection);
7574
return result;
@@ -116,15 +115,15 @@ static umf_result_t devdax_initialize(void *params, void **provider) {
116115
goto err_free_devdax_provider;
117116
}
118117

119-
int fd = os_devdax_open(in_params->path);
118+
int fd = utils_devdax_open(in_params->path);
120119
if (fd == -1) {
121120
LOG_ERR("cannot open the device DAX: %s", in_params->path);
122121
ret = UMF_RESULT_ERROR_INVALID_ARGUMENT;
123122
goto err_free_devdax_provider;
124123
}
125124

126-
devdax_provider->base = os_devdax_mmap(NULL, devdax_provider->size,
127-
devdax_provider->protection, fd);
125+
devdax_provider->base = utils_devdax_mmap(NULL, devdax_provider->size,
126+
devdax_provider->protection, fd);
128127
utils_close_fd(fd);
129128
if (devdax_provider->base == NULL) {
130129
LOG_PDEBUG("devdax memory mapping failed (path=%s, size=%zu)",
@@ -147,7 +146,7 @@ static umf_result_t devdax_initialize(void *params, void **provider) {
147146
return UMF_RESULT_SUCCESS;
148147

149148
err_unmap_devdax:
150-
os_munmap(devdax_provider->base, devdax_provider->size);
149+
utils_munmap(devdax_provider->base, devdax_provider->size);
151150
err_free_devdax_provider:
152151
umf_ba_global_free(devdax_provider);
153152
return ret;
@@ -161,7 +160,7 @@ static void devdax_finalize(void *provider) {
161160

162161
devdax_memory_provider_t *devdax_provider = provider;
163162
util_mutex_destroy_not_free(&devdax_provider->lock);
164-
os_munmap(devdax_provider->base, devdax_provider->size);
163+
utils_munmap(devdax_provider->base, devdax_provider->size);
165164
umf_ba_global_free(devdax_provider);
166165
}
167166

@@ -273,8 +272,8 @@ static void devdax_get_last_native_error(void *provider, const char **ppMessage,
273272
memcpy(TLS_last_native_error.msg_buff + pos, msg, len + 1);
274273
pos += len;
275274

276-
os_strerror(TLS_last_native_error.errno_value,
277-
TLS_last_native_error.msg_buff + pos, TLS_MSG_BUF_LEN - pos);
275+
utils_strerror(TLS_last_native_error.errno_value,
276+
TLS_last_native_error.msg_buff + pos, TLS_MSG_BUF_LEN - pos);
278277

279278
*ppMessage = TLS_last_native_error.msg_buff;
280279
}
@@ -288,7 +287,7 @@ static umf_result_t devdax_get_recommended_page_size(void *provider,
288287
return UMF_RESULT_ERROR_INVALID_ARGUMENT;
289288
}
290289

291-
*page_size = os_get_page_size();
290+
*page_size = util_get_page_size();
292291

293292
return UMF_RESULT_SUCCESS;
294293
}
@@ -316,7 +315,7 @@ static umf_result_t devdax_purge_force(void *provider, void *ptr, size_t size) {
316315
}
317316

318317
errno = 0;
319-
if (os_purge(ptr, size, UMF_PURGE_FORCE)) {
318+
if (utils_purge(ptr, size, UMF_PURGE_FORCE)) {
320319
devdax_store_last_native_error(
321320
UMF_DEVDAX_RESULT_ERROR_PURGE_FORCE_FAILED, errno);
322321
LOG_PERR("force purging failed");
@@ -445,14 +444,14 @@ static umf_result_t devdax_open_ipc_handle(void *provider,
445444
}
446445

447446
umf_result_t ret = UMF_RESULT_SUCCESS;
448-
int fd = os_devdax_open(devdax_provider->path);
447+
int fd = utils_devdax_open(devdax_provider->path);
449448
if (fd <= 0) {
450449
LOG_PERR("opening a devdax (%s) failed", devdax_provider->path);
451450
return UMF_RESULT_ERROR_INVALID_ARGUMENT;
452451
}
453452

454-
char *base = os_devdax_mmap(NULL, devdax_provider->size,
455-
devdax_provider->protection, fd);
453+
char *base = utils_devdax_mmap(NULL, devdax_provider->size,
454+
devdax_provider->protection, fd);
456455
if (base == NULL) {
457456
devdax_store_last_native_error(UMF_DEVDAX_RESULT_ERROR_ALLOC_FAILED,
458457
errno);
@@ -485,7 +484,7 @@ static umf_result_t devdax_close_ipc_handle(void *provider, void *ptr,
485484
(devdax_memory_provider_t *)provider;
486485

487486
errno = 0;
488-
int ret = os_munmap(devdax_provider->base, devdax_provider->size);
487+
int ret = utils_munmap(devdax_provider->base, devdax_provider->size);
489488
// ignore error when size == 0
490489
if (ret && (size > 0)) {
491490
devdax_store_last_native_error(UMF_DEVDAX_RESULT_ERROR_FREE_FAILED,

src/provider/provider_devdax_memory_internal.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@
88
#ifndef UMF_DEVDAX_MEMORY_PROVIDER_INTERNAL_H
99
#define UMF_DEVDAX_MEMORY_PROVIDER_INTERNAL_H
1010

11-
#include <umf/providers/provider_os_memory.h>
12-
1311
#include "utils_concurrency.h"
1412

1513
#ifdef __cplusplus

src/provider/provider_file_memory.c

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
#include "base_alloc_global.h"
1717
#include "critnib.h"
1818
#include "provider_file_memory_internal.h"
19-
#include "provider_os_memory_internal.h"
2019
#include "utils_common.h"
2120
#include "utils_concurrency.h"
2221
#include "utils_log.h"
@@ -63,15 +62,15 @@ file_translate_params(umf_file_memory_provider_params_t *in_params,
6362
file_memory_provider_t *provider) {
6463
umf_result_t result;
6564

66-
result = os_translate_mem_protection_flags(in_params->protection,
67-
&provider->protection);
65+
result = utils_translate_mem_protection_flags(in_params->protection,
66+
&provider->protection);
6867
if (result != UMF_RESULT_SUCCESS) {
6968
LOG_ERR("incorrect memory protection flags: %u", in_params->protection);
7069
return result;
7170
}
7271

73-
result = os_translate_mem_visibility_flag(in_params->visibility,
74-
&provider->visibility);
72+
result = utils_translate_mem_visibility_flag(in_params->visibility,
73+
&provider->visibility);
7574
if (result != UMF_RESULT_SUCCESS) {
7675
LOG_ERR("incorrect memory visibility flag: %u", in_params->visibility);
7776
return result;
@@ -124,14 +123,14 @@ static umf_result_t file_initialize(void *params, void **provider) {
124123
goto err_free_file_provider;
125124
}
126125

127-
file_provider->fd = os_file_open_or_create(in_params->path, page_size);
126+
file_provider->fd = utils_file_open_or_create(in_params->path, page_size);
128127
if (file_provider->fd == -1) {
129128
LOG_ERR("cannot open the file: %s", in_params->path);
130129
ret = UMF_RESULT_ERROR_INVALID_ARGUMENT;
131130
goto err_free_file_provider;
132131
}
133132

134-
if (os_get_file_size(file_provider->fd, &file_provider->size_fd)) {
133+
if (utils_get_file_size(file_provider->fd, &file_provider->size_fd)) {
135134
LOG_ERR("cannot get size of the file: %s", in_params->path);
136135
ret = UMF_RESULT_ERROR_UNKNOWN;
137136
goto err_close_fd;
@@ -188,7 +187,7 @@ static void file_finalize(void *provider) {
188187
void *rvalue = NULL;
189188
while (1 ==
190189
critnib_find(file_provider->mmaps, key, FIND_G, &rkey, &rvalue)) {
191-
os_munmap((void *)rkey, (size_t)rvalue);
190+
utils_munmap((void *)rkey, (size_t)rvalue);
192191
critnib_remove(file_provider->mmaps, rkey);
193192
key = rkey;
194193
}
@@ -235,7 +234,7 @@ static umf_result_t file_mmap_aligned(file_memory_provider_t *file_provider,
235234
}
236235

237236
if (offset_fd + extended_size > size_fd) {
238-
if (os_fallocate(fd, offset_fd, extended_size)) {
237+
if (utils_fallocate(fd, offset_fd, extended_size)) {
239238
LOG_ERR("cannot grow the file size from %zu to %zu", size_fd,
240239
offset_fd + extended_size);
241240
return UMF_RESULT_ERROR_UNKNOWN;
@@ -249,7 +248,7 @@ static umf_result_t file_mmap_aligned(file_memory_provider_t *file_provider,
249248
assert_is_aligned(extended_size, page_size);
250249
assert_is_aligned(offset_fd, page_size);
251250

252-
void *ptr = os_mmap(NULL, extended_size, prot, flag, fd, offset_fd);
251+
void *ptr = utils_mmap(NULL, extended_size, prot, flag, fd, offset_fd);
253252
if (ptr == NULL) {
254253
LOG_PERR("memory mapping failed");
255254
return UMF_RESULT_ERROR_MEMORY_PROVIDER_SPECIFIC;
@@ -410,8 +409,8 @@ static void file_get_last_native_error(void *provider, const char **ppMessage,
410409
memcpy(TLS_last_native_error.msg_buff + pos, msg, len + 1);
411410
pos += len;
412411

413-
os_strerror(TLS_last_native_error.errno_value,
414-
TLS_last_native_error.msg_buff + pos, TLS_MSG_BUF_LEN - pos);
412+
utils_strerror(TLS_last_native_error.errno_value,
413+
TLS_last_native_error.msg_buff + pos, TLS_MSG_BUF_LEN - pos);
415414

416415
*ppMessage = TLS_last_native_error.msg_buff;
417416
}
@@ -424,7 +423,7 @@ static umf_result_t file_get_recommended_page_size(void *provider, size_t size,
424423
return UMF_RESULT_ERROR_INVALID_ARGUMENT;
425424
}
426425

427-
*page_size = os_get_page_size();
426+
*page_size = util_get_page_size();
428427

429428
return UMF_RESULT_SUCCESS;
430429
}
@@ -452,7 +451,7 @@ static umf_result_t file_purge_force(void *provider, void *ptr, size_t size) {
452451
}
453452

454453
errno = 0;
455-
if (os_purge(ptr, size, UMF_PURGE_FORCE)) {
454+
if (utils_purge(ptr, size, UMF_PURGE_FORCE)) {
456455
file_store_last_native_error(UMF_FILE_RESULT_ERROR_PURGE_FORCE_FAILED,
457456
errno);
458457
LOG_PERR("force purging failed");
@@ -593,15 +592,15 @@ static umf_result_t file_open_ipc_handle(void *provider, void *providerIpcData,
593592
return UMF_RESULT_ERROR_INVALID_ARGUMENT;
594593
}
595594

596-
fd = os_file_open(file_ipc_data->path);
595+
fd = utils_file_open(file_ipc_data->path);
597596
if (fd <= 0) {
598597
LOG_PERR("opening the file to be mapped (%s) failed",
599598
file_ipc_data->path);
600599
return UMF_RESULT_ERROR_INVALID_ARGUMENT;
601600
}
602601

603-
*ptr = os_mmap(NULL, file_ipc_data->size, file_provider->protection,
604-
file_provider->visibility, fd, file_ipc_data->offset_fd);
602+
*ptr = utils_mmap(NULL, file_ipc_data->size, file_provider->protection,
603+
file_provider->visibility, fd, file_ipc_data->offset_fd);
605604
(void)utils_close_fd(fd);
606605
if (*ptr == NULL) {
607606
file_store_last_native_error(UMF_FILE_RESULT_ERROR_ALLOC_FAILED, errno);
@@ -619,7 +618,7 @@ static umf_result_t file_close_ipc_handle(void *provider, void *ptr,
619618
}
620619

621620
errno = 0;
622-
int ret = os_munmap(ptr, size);
621+
int ret = utils_munmap(ptr, size);
623622
// ignore error when size == 0
624623
if (ret && (size > 0)) {
625624
file_store_last_native_error(UMF_FILE_RESULT_ERROR_FREE_FAILED, errno);

0 commit comments

Comments
 (0)