"""
BloomOS Kernel Handlers
=======================

Syscall handlers for the kernel ABI.

Syscalls:
- cdna.decode.v1: Decode CDNA shards to tensors
- cdna.encode.v1: Encode tensors to CDNA format
- routing.route_tensor.v1: Route tensor to optimal backend (CPU/GPU/QPU)
- chunkvault.get.v1: Get chunk from chunk vault
- chunkvault.store.v1: Store data in chunk vault
- chunkvault.verify.v1: Verify chunk integrity

Wave Scheduler syscalls:
- scheduler.acquire.v1: Acquire a core from the wave engine
- scheduler.release.v1: Release a core back to the wave engine
- scheduler.status.v1: Get wave engine status
- scheduler.pressure_map.v1: Get visual pressure map of cores
"""

from __future__ import annotations

from typing import TYPE_CHECKING

if TYPE_CHECKING:
    from ..syscall_registry import SyscallRegistry


def register_all_handlers(registry: "SyscallRegistry") -> None:
    """Register all default handlers with the registry."""
    from .cdna_handlers import register_cdna_handlers
    from .routing_handlers import register_routing_handlers
    from .chunkvault_handlers import register_chunkvault_handlers
    from .wave_scheduler_handlers import register_wave_scheduler_handlers

    register_cdna_handlers(registry)
    register_routing_handlers(registry)
    register_chunkvault_handlers(registry)
    register_wave_scheduler_handlers(registry)
