Skip to content

Repository files navigation

THIS IMPLEMENTATION IN C IS NO LONGER DEVELOPED OR MAINTAINED AND IS BEING SUPERSEDED BY AN UPCOMING ZIG PORT.

Standards

Famex rests upon a number of different standards, all of which are listed below

Libraries

Famex relies on these software libraries.

AI Usage

  • AI was not used for code generation.
  • No AI output was copied verbatim.
  • AI chatbots were used to explain concepts and generate some build scripts.
  • AI chatbots were used as code logic checkers, an additional check above the linter.

Debug Flags

DEBUG_SPINLOCK - Used to check spinlocks are held DEBUG_SPINLOCK_RECURSE - Used to check if held spinlocks are trying to be locked again DEBUG_IRQ - Used to check IRQ is off and on where needed DEBUG_PRINT_LOC - Print panic messages with function, line, and file appended DEBUG_CHECKS - Conditions that should be true in execution

Design

We do not use inline or static functions in headers, period. All functions must have their bodies in c source files. The reasons are as follows.

  1. Inline/static functions cannot be accessed by default by ASM code.
  2. The bodies of these inline functions may require additional resources from other headers. Forward declarations and additional struct definitions may be required, increasing the possibility of recursive include loops. Also, the increased resources each header requires increases compilation/parsing times.
  3. It is easier to read the function bodies in one place than having them split between headers and source.
  4. LTO solves the problem that inline/static header functions were originally designed to solve.

About

Outdated Implementation of the Famex kernel

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages