Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
69709af
Add MemoryCore Class Skeleton
jamon-bailey Apr 1, 2026
fea5049
Chevron Research Resources
jamon-bailey Apr 15, 2026
5d41561
Chevron Diagrams Update
jamon-bailey Apr 15, 2026
73efbeb
Process Memory Stubs
jamon-bailey Apr 15, 2026
ad2da2e
Update memory_core.hpp
jamon-bailey Apr 15, 2026
e95188b
Add debug bad-address notes to dev_exe test
jamon-bailey Apr 15, 2026
63e0af4
Chevron Diagrams Update
jamon-bailey Apr 16, 2026
1d6add8
Export MemoryPoolConfig with CHEVRON_API
jamon-bailey Apr 16, 2026
3dc7e65
Chevron Diagrams Update
jamon-bailey Apr 16, 2026
984cf2c
Digital Size Quantity Stubs
jamon-bailey Apr 17, 2026
8c4bd94
Implement DigitalSize template and traits
jamon-bailey Apr 18, 2026
45d0bd3
Added Utility for Digital Unit Conversions
jamon-bailey Apr 18, 2026
0b1617c
Digital Unit Type Traits Header
jamon-bailey Apr 18, 2026
3223a95
General Unit Measurement Include Header
jamon-bailey Apr 18, 2026
692b304
Update mem_pool_config.hpp
jamon-bailey Apr 18, 2026
8a8ea7e
Update dev_exe.cpp
jamon-bailey Apr 18, 2026
fabfa42
Chevron Diagrams Update
jamon-bailey Apr 18, 2026
9104eb1
Math Utilities Directory
jamon-bailey Apr 19, 2026
1c16b9b
Further Digital Units Development
jamon-bailey Apr 19, 2026
ee1a6a5
Bits Utilities Directory
jamon-bailey Apr 19, 2026
867c0d7
Update dev_exe.cpp
jamon-bailey Apr 19, 2026
a60abfd
Misc. Header Fixes
jamon-bailey Apr 19, 2026
7c1efb9
Added Arithmetic Operations to DigitalSize
jamon-bailey Apr 19, 2026
e7aa60f
Use DigitalSize Types for Process Memory Config
jamon-bailey Apr 19, 2026
ae11428
Update dev_exe.cpp
jamon-bailey Apr 19, 2026
4593ec4
Bit Power-of-Two Utilities
jamon-bailey Apr 19, 2026
2dd8191
Process Memory Pool Config Validation Stubs
jamon-bailey Apr 19, 2026
6ab4f61
Update dev_exe.cpp
jamon-bailey Apr 19, 2026
ec0c8e7
Update power_of_two.hpp
jamon-bailey Apr 20, 2026
e52b5e4
Digital Size Units Relocation
jamon-bailey Apr 20, 2026
c5e6fb7
Additional Digital Size Template Operators
jamon-bailey Apr 20, 2026
c0ec722
Unit Cast Utility Noexcept Qualifier
jamon-bailey Apr 20, 2026
841a087
Rename power_of_two.hpp to powers.hpp
jamon-bailey Apr 21, 2026
c6cb083
Update dev_exe.cpp
jamon-bailey Apr 21, 2026
4212300
Moved Bloating Digital Size Type Traits
jamon-bailey Apr 21, 2026
5ea4f6c
Function Utilities Namespace Change
jamon-bailey Apr 22, 2026
0ce1250
Additional Predefined Function Types
jamon-bailey Apr 22, 2026
307e634
Digital Unit Concepts
jamon-bailey Apr 22, 2026
c608e7d
Update unit_cast.hpp
jamon-bailey Apr 22, 2026
80205bc
Digital Size Template Fixes
jamon-bailey Apr 22, 2026
4b8a8f9
Update dev_exe.cpp
jamon-bailey Apr 22, 2026
a4399fb
Update digital_size.hpp
jamon-bailey Apr 23, 2026
8b61525
Update unit_cast.hpp
jamon-bailey Apr 23, 2026
3b76834
Update size_units.hpp
jamon-bailey Apr 23, 2026
9dab5bd
Rename digital unit magnitude constants
jamon-bailey Apr 23, 2026
0bd4cf8
Library-Wide Macro Definitions
jamon-bailey Apr 23, 2026
5ed2f8a
Update powers.hpp
jamon-bailey Apr 23, 2026
23547d1
Update dev_exe.cpp
jamon-bailey Apr 23, 2026
a5900f9
Update alignment.hpp
jamon-bailey Apr 25, 2026
ab0064e
Power Utilities Rename
jamon-bailey Apr 25, 2026
8795a2e
Exponent Function and Compile-Time Alias
jamon-bailey Apr 26, 2026
1067533
Documentation Update
jamon-bailey Apr 26, 2026
915109c
Update size_units.hpp
jamon-bailey Apr 26, 2026
5ba7717
Updated Digital Size Concepts and Documentation
jamon-bailey Apr 26, 2026
893b4a8
Document and add DigitalSize operations
jamon-bailey Apr 26, 2026
60febc6
Demo and Notes Update
jamon-bailey Apr 26, 2026
4547b16
Update dev_exe.cpp
jamon-bailey Apr 26, 2026
f531807
Chevron Diagrams Update
jamon-bailey Apr 27, 2026
f477feb
Update digital_size.hpp
jamon-bailey Apr 27, 2026
9031849
Process Memory Pool Config Update
jamon-bailey Apr 27, 2026
05bdfdd
Update dev_exe.cpp
jamon-bailey Apr 27, 2026
c01c6c2
Memory Chunk Descriptor Stub
jamon-bailey Apr 27, 2026
0b864d9
Memory Region Class Stub
jamon-bailey Apr 27, 2026
a8675ba
Update dev_exe.cpp
jamon-bailey Apr 27, 2026
7e90ec0
Process Memory Allocator Class Stub
jamon-bailey Apr 28, 2026
2223d75
Memory Description Interface
jamon-bailey Apr 28, 2026
70d9e99
Memory Chunk Description Update
jamon-bailey Apr 28, 2026
30f0fbe
Memory Region Class
jamon-bailey Apr 28, 2026
14ad414
File-Level Documentation Stubs
jamon-bailey Apr 28, 2026
677489c
Update dev_exe.cpp
jamon-bailey Apr 28, 2026
d88899d
Chunk Descriptor Default Constructor
jamon-bailey Apr 29, 2026
c0c0abd
Process Allocator Ctor and Dtor
jamon-bailey Apr 29, 2026
27777cb
Update dev_exe.cpp
jamon-bailey Apr 29, 2026
4f11bb3
Update proc_allocator.hpp
jamon-bailey Apr 29, 2026
45be62f
Chevron Diagrams Update
jamon-bailey Apr 29, 2026
55c8317
Incomplete Process Allocator Update
jamon-bailey Apr 30, 2026
b709a94
Misc. Fixes
jamon-bailey Apr 30, 2026
2accd1e
Process Memory Allocator Update
jamon-bailey Apr 30, 2026
396caab
Process Memory Allocator Docs Update
jamon-bailey Apr 30, 2026
bdcd3c4
Update dev_exe.cpp
jamon-bailey Apr 30, 2026
97d7db8
Update proc_allocator.cpp
jamon-bailey Apr 30, 2026
9936db0
Create tagged_ptr.hpp
jamon-bailey May 1, 2026
994d808
Scope-Bound RAII Utility
jamon-bailey May 1, 2026
7692cf6
Chevron Diagrams Update
jamon-bailey May 1, 2026
c3f55da
General Memory Hierarchy Definitions Header
jamon-bailey May 1, 2026
25da277
Process Memory Allocator Update
jamon-bailey May 1, 2026
769a33c
Process Memory Pool Update
jamon-bailey May 1, 2026
a720b69
Thread Local Memory Cache Update
jamon-bailey May 2, 2026
9ff2229
Align TaggedPointer to 16 Bytes
jamon-bailey May 3, 2026
d9e1142
Process Memory Pool Update
jamon-bailey May 3, 2026
fa9d196
Thread Local Memory Cache Implementation
jamon-bailey May 3, 2026
ac179a2
Add MSVC Lock-Free Support
jamon-bailey May 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
767 changes: 740 additions & 27 deletions docs/prj/Chevron_diagrams.drawio

Large diffs are not rendered by default.

Binary file not shown.
Binary file not shown.
Binary file not shown.
98 changes: 98 additions & 0 deletions include/chevron/common/macro_defs.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@

// Copyright (C) 2026 by Jamon T. Bailey and InfinSys, LLC. All rights reserved.
// Released under the terms of the GNU Affero General Public License version 3

// [ISJTB-CXX-XL20260108-000003]

/*!
* @file macro_defs.h
*
* @brief
* Defines library-wide macro definitions.
*
* @author
* Jamon T. Bailey
*
* @date 04-22-2026
*/

#ifndef CHEVRON_LIB_HDR_COMMON_MACRO_DEFINITIONS_H_
#define CHEVRON_LIB_HDR_COMMON_MACRO_DEFINITIONS_H_

// ===================================================================================== //
// [ ARCHITECTURE DETECTION ]
//
// Identifies the CPU architecture of the target platform. Each supported architecture
// is probed with both its GCC/Clang spelling and its MSVC spelling, since the two
// compiler families do not share a common macro for this.
// ===================================================================================== //

#if defined(__x86_64__) || defined(_M_X64)
#define CHEVRON_ARCH_X86_64 1
#elif defined(__i386__) || defined(_M_IX86)
#define CHEVRON_ARCH_X86 1
#elif defined(__aarch64__) || defined(_M_ARM64)
#define CHEVRON_ARCH_ARM64 1
#elif defined(__arm__) || defined(_M_ARM)
#define CHEVRON_ARCH_ARM 1
#endif

// ===================================================================================== //
// [ COMPILER DETECTION ]
//
// Identifies the compiler building Chevron. Clang is checked before GCC because Clang
// defines `__GNUC__` for GCC compatibility, and MSVC is identified through `_MSC_VER`.
// ===================================================================================== //

#if defined(__clang__)
#define CHEVRON_CLANG 1
#elif defined(__GNUC__)
#define CHEVRON_GCC 1
#elif defined(_MSC_VER)
#define CHEVRON_MSVC 1
#else
#error "Chevron does not support this compiler."
#endif

// ===================================================================================== //
// [ OPERATING SYSTEM DETECTION ]
//
// Identifies the operating system of the target platform. `_WIN32` is defined on both
// 32 and 64-bit Windows and is the canonical Windows marker; `_WIN64` is checked
// alongside it defensively. Cygwin is treated as a distinct branch because it targets
// a POSIX layer on top of Windows rather than the native Win32 API.
// ===================================================================================== //

#if defined(_WIN32) || defined(_WIN64)
#define CHEVRON_WINDOWS 1
#elif defined(__CYGWIN__)
#define CHEVRON_CYGWIN 1
#elif defined(__APPLE__)
#define CHEVRON_MACOS 1
#elif defined(__linux__)
#define CHEVRON_LINUX 1
#else
#error "Chevron does not support this operating system."
#endif

// ===================================================================================== //
// [ POINTER-WIDTH DETECTION ]
//
// Identifies the target platforms pointer/address width using `UINTPTR_MAX` defined in
// `<stdint.h>`, which represents the maximum value of `uintptr_t`. This approach evades
// the complexities of vendor-specific macros.
// ===================================================================================== //

#include <stdint.h>

#if UINTPTR_MAX == 0xFFFFFFFFFFFFFFFFu
#define CHEVRON_64BIT 1
#define CHEVRON_PTR_WIDTH 64
#elif UINTPTR_MAX == 0xFFFFFFFFu
#define CHEVRON_32BIT 1
#define CHEVRON_PTR_WIDTH 32
#else
#error "Chevron only supports 32/64-bit platforms."
#endif

#endif // CHEVRON_LIB_HDR_COMMON_MACRO_DEFINITIONS_H_
Loading