Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 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
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
756 changes: 730 additions & 26 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