/* Copyright (C) 2021,2022 fef . All rights reserved. */ /** * @file include/gay/config.h * @brief Kernel configuration header. * This header file contains all architecture independent configuration options * for GayBSD, as defined in `cmake/config.cmake`. */ #pragma once #cmakedefine DEBUG #define GAY_VERSION_MAJOR @gaybsd_VERSION_MAJOR@ #define GAY_VERSION_MINOR @gaybsd_VERSION_MINOR@ #define GAY_VERSION_PATCH @gaybsd_VERSION_PATCH@ #define GAY_VERSION ( \ (unsigned long)GAY_VERSION_MAJOR << 24 | \ (unsigned long)GAY_VERSION_MINOR << 16 | \ (unsigned long)GAY_VERSION_PATCH \ ) #define GAY_VERSION_STR \ "@gaybsd_VERSION_MAJOR@.@gaybsd_VERSION_MINOR@.@gaybsd_VERSION_PATCH@@gaybsd_VERSION_SUFFIX@" /** @brief Physical address where the kernel is loaded */ #define CFG_KERN_ORIGIN @CFG_KERN_ORIGIN@ /** @brief Poison dynamic pages when allocating and freeing them */ #cmakedefine01 CFG_POISON_PAGES /** @brief Poison slab allocations (`kmalloc()` and friends) */ #cmakedefine01 CFG_POISON_SLABS /** @brief Denominator for the fraction of pages kept in emergency reserves */ #define CFG_PAGE_EMERG_DENOM @CFG_PAGE_EMERG_DENOM@ /** @brief Absolute maximum number of pages kept in emergency reserves */ #define CFG_PAGE_EMERG_MAX @CFG_PAGE_EMERG_MAX@ /** @brief Enable Symmetric Multiprocessing */ #cmakedefine01 CFG_SMP /** @brief Maximum number of logical processors */ #define CFG_MAX_CPU @CFG_MAX_CPU@ /** @brief Debug IRQs */ #cmakedefine01 CFG_DEBUG_IRQ /** @brief Debug mutexes */ #cmakedefine01 CFG_DEBUG_MTX /** @brief Sanitize clist operations */ #cmakedefine01 CFG_DEBUG_CLIST /** @brief Debug page frame allocations */ #cmakedefine01 CFG_DEBUG_PAGE_ALLOCS /** @brief Spit out the full details of page allocations */ #cmakedefine01 CFG_DEBUG_PAGE_ALLOCS_NOISY /** @brief Sanitize page frame addresses */ #cmakedefine01 CFG_DEBUG_PGADDRS /** @brief Debug slab allocations */ #cmakedefine01 CFG_DEBUG_SLAB_ALLOCS /** @brief Spit out the full details of slab allocations */ #cmakedefine01 CFG_DEBUG_SLAB_ALLOCS_NOISY