Настройка IDE
This commit is contained in:
@@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"CurrentProjectSetting": "x64-Debug"
|
|
||||||
}
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"OutputFoldersPerTargetSystem": {
|
|
||||||
"Local Machine": [
|
|
||||||
"out\\build\\x64-Debug",
|
|
||||||
"out\\install\\x64-Debug"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"ExpandedNodes": [
|
|
||||||
"",
|
|
||||||
"\\includes",
|
|
||||||
"\\src"
|
|
||||||
],
|
|
||||||
"SelectedNode": "\\src\\FXAlloc.c",
|
|
||||||
"PreviewInSolutionExplorer": false
|
|
||||||
}
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
"Version": 1,
|
|
||||||
"WorkspaceRootPath": "C:\\projects\\fullstack\\neurox\\ccpp\\fxalloc\\",
|
|
||||||
"Documents": [],
|
|
||||||
"DocumentGroupContainers": [
|
|
||||||
{
|
|
||||||
"Orientation": 0,
|
|
||||||
"VerticalTabListWidth": 256,
|
|
||||||
"DocumentGroups": []
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
Binary file not shown.
Vendored
+3
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools"
|
||||||
|
}
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
# ccpp/fxalloc/PROGRESS.md
|
# FXAlloc PROGRESS.md
|
||||||
|
|
||||||
## Формат
|
## Формат
|
||||||
* Даты следуют в обратном хронологическом порядке
|
* Даты следуют в обратном хронологическом порядке
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# ccpp/fxalloc/README.md
|
# FXAlloc README.md
|
||||||
|
|
||||||
# Описание
|
# Описание
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# ccpp/fxalloc/TODO.md
|
# FXAlloc TODO.md
|
||||||
|
|
||||||
## Информация
|
## Информация
|
||||||
* Файл для отслеживания текущих задач модуля **FXAlloc**
|
* Файл для отслеживания текущих задач модуля **FXAlloc**
|
||||||
|
|||||||
+32
-9
@@ -9,6 +9,29 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 201112L)
|
||||||
|
#error "C11 standard is required for _Atomic support"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(__clang__)
|
||||||
|
// Clang: _Atomic поддерживается в C11 во всех актуальных версиях
|
||||||
|
|
||||||
|
#elif defined(__GNUC__)
|
||||||
|
#if (__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 9)
|
||||||
|
#error "GCC < 4.9 does not support _Atomic (C11)"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#elif defined(_MSC_VER)
|
||||||
|
#if _MSC_VER < 1930 // VS 2022+ (_MSC_VER >= 1930)
|
||||||
|
#error "MSVC < VS 2022 (_MSC_VER < 1930) does not support _Atomic (C11)"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#else
|
||||||
|
#error "Unsupported compiler. Only Clang, GCC >=4.9, and MSVC VS 2022+ support _Atomic in C11"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct FXMemoryBlock FXMemoryBlock;
|
typedef struct FXMemoryBlock FXMemoryBlock;
|
||||||
@@ -30,17 +53,17 @@ typedef struct FXMemoryBlock FXMemoryBlock;
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Пул выделяемый для отдельно взятого потока
|
* @brief Грейдовый пул выделяемый для градации
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
typedef struct FXGradePool {
|
typedef struct FXGradePool {
|
||||||
FXMemoryBlock* prealloced;
|
FXMemoryBlock* prealloced; ///< Преаллоцированные блоки
|
||||||
FXMemoryBlock* lifo;
|
FXMemoryBlock* lifo; ///< Стэк свободных блоков
|
||||||
FXMemoryBlock* list_first;
|
FXMemoryBlock* list; ///< Список аллоцированных блоков
|
||||||
FXMemoryBlock* list_last;
|
uint32_t ntotal; ///< Блоков всего
|
||||||
uint32_t ntotal;
|
uint32_t nbusy; ///< Блоков занято
|
||||||
uint32_t nbusy;
|
uint32_t nalloc; ///< Блоков алоцировано через `malloc`
|
||||||
uint32_t nalloc;
|
uint32_t nprealloc; ///< Блоков преаллоцировано
|
||||||
uint32_t nprealloc;
|
|
||||||
} FXGradePool;
|
} FXGradePool;
|
||||||
|
|
||||||
#pragma pack(push, 8)
|
#pragma pack(push, 8)
|
||||||
|
|||||||
Reference in New Issue
Block a user