diff --git a/CMakeLists.txt b/CMakeLists.txt index 0d49236..85670b5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,7 +61,7 @@ set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT set(CMAKE_C_STANDARD 17) set(CMAKE_C_STANDARD_REQUIRED ON) set(CMAKE_C_EXTENSIONS ON) # GNU extensions and POSIX standard -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS ON) diff --git a/include/collect-c/common.h b/include/collect-c/common.h index 4b86096..797261f 100644 --- a/include/collect-c/common.h +++ b/include/collect-c/common.h @@ -4,7 +4,7 @@ * Purpose: Common elements. * * Created: 5th February 2025 - * Updated: 14th February 2025 + * Updated: 15th February 2025 * * ////////////////////////////////////////////////////////////////////// */ @@ -14,6 +14,7 @@ */ #include +#include #ifndef __cplusplus # include #endif diff --git a/include/collect-c/common/mem_api.h b/include/collect-c/common/mem_api.h new file mode 100644 index 0000000..9ade3ae --- /dev/null +++ b/include/collect-c/common/mem_api.h @@ -0,0 +1,87 @@ +/* ///////////////////////////////////////////////////////////////////////// + * File: collect-c/common/mem_api.h + * + * Purpose: Memory API. + * + * Created: 14th February 2025 + * Updated: 15th February 2025 + * + * ////////////////////////////////////////////////////////////////////// */ + + +/* ///////////////////////////////////////////////////////////////////////// + * includes + */ + +#include + + +/* ///////////////////////////////////////////////////////////////////////// + * compatibility + */ + + +/* ///////////////////////////////////////////////////////////////////////// + * API types + */ + +typedef void* (*collect_c_mem_pfn_alloc)(void* param, size_t cb_new); +typedef void* (*collect_c_mem_pfn_realloc)(void* param, void* pv_curr, size_t cb_curr, size_t cb_new); +typedef void (*collect_c_mem_pfn_free)(void* param, void* pv_curr, size_t cb_curr); + +struct collect_c_mem_api_t +{ + collect_c_mem_pfn_alloc pfn_alloc; + collect_c_mem_pfn_realloc pfn_realloc; + collect_c_mem_pfn_free pfn_free; + void* param; +}; +#ifndef __cplusplus +typedef struct collect_c_mem_api_t collect_c_mem_api_t; +#endif + + +/* ///////////////////////////////////////////////////////////////////////// + * API functions + */ + +#ifdef __cplusplus +extern "C" { +#endif + +void* +collect_c_mem_std_alloc( + void* param +, size_t cb_new +); + +void* +collect_c_mem_std_realloc( + void* param +, void* pv_curr +, size_t cb_curr +, size_t cb_new +); + +void +collect_c_mem_std_free( + void* param +, void* pv_curr +, size_t cb_curr +); + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + + +/* ///////////////////////////////////////////////////////////////////////// + * inclusion control + */ + +#pragma once + + +/* ///////////////////////////// end of file //////////////////////////// */ + diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ad711ce..deb49a2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -5,7 +5,7 @@ # Purpose: CMake lists file for collect-c library # # Created: 4th February 2025 -# Updated: 11th February 2025 +# Updated: 14th February 2025 # # ######################################################################## # @@ -42,6 +42,7 @@ endif() set(CORE_SRCS circq.c dlist.c + mem_api.c vec.c version.c ) diff --git a/src/dlist.c b/src/dlist.c index ffc11de..fedc714 100644 --- a/src/dlist.c +++ b/src/dlist.c @@ -17,10 +17,7 @@ #include #include -#include #include -#include -#include /* ///////////////////////////////////////////////////////////////////////// diff --git a/src/mem_api.c b/src/mem_api.c new file mode 100644 index 0000000..cb50745 --- /dev/null +++ b/src/mem_api.c @@ -0,0 +1,72 @@ +/* ///////////////////////////////////////////////////////////////////////// + * File: src/mem_api.c + * + * Purpose: Memory API. + * + * Created: 14th February 2025 + * Updated: 15th February 2025 + * + * ////////////////////////////////////////////////////////////////////// */ + + +/* ///////////////////////////////////////////////////////////////////////// + * includes + */ + +#include + +#include + + +/* ///////////////////////////////////////////////////////////////////////// + * API functions + */ + +void* +collect_c_mem_std_alloc( + void* param +, size_t cb_new +) +{ + ((void)¶m); + +/* + if (0 != cb_new) + { + return NULL; + } +*/ + + return malloc(cb_new); +} + +void* +collect_c_mem_std_realloc( + void* param +, void* pv_curr +, size_t cb_curr +, size_t cb_new +) +{ + ((void)¶m); + ((void)&cb_curr); + + return realloc(pv_curr, cb_new); +} + +void +collect_c_mem_std_free( + void* param +, void* pv_curr +, size_t cb_curr +) +{ + ((void)¶m); + ((void)&cb_curr); + + free(pv_curr); +} + + +/* ///////////////////////////// end of file //////////////////////////// */ + diff --git a/src/vec.c b/src/vec.c index 4f5de96..ae30bc3 100644 --- a/src/vec.c +++ b/src/vec.c @@ -4,7 +4,7 @@ * Purpose: Vector container. * * Created: 5th February 2025 - * Updated: 10th February 2025 + * Updated: 14th February 2025 * * ////////////////////////////////////////////////////////////////////// */ @@ -412,8 +412,6 @@ collect_c_v_push_front_by_ref( return 0; } } - - return -1; }