mirror of
https://github.com/taigrr/gopher-os
synced 2025-01-18 04:43:13 -08:00
ACPI entity definitions form a tree whose roots are a sequence of pre-defined namespace objects. The parser stores all AML entities using a space-optimized structure (Object). These objects are organized into a tree via the ObjectTree structure. Instead of storing pointers to other objects (i.e. siblings, children or parent), objects use uint32 indices to objects managed by the ObjectTree. This has the nice advantage of reducing the memory requirements for our tree in half when running on 64-bits (4-bytes per index vs 8-bytes per pointer) while also allowing us to recycle objects that are explicitly freed by the parser.