8#ifndef KERNEL_MACHINE_MACH_PC_LOCALAPICTIMERHANDLERSLOTS_H
9#define KERNEL_MACHINE_MACH_PC_LOCALAPICTIMERHANDLERSLOTS_H
10#include "pedigree/kernel/machine/SchedulerTimerHandlerSlot.h"
11#include "pedigree/kernel/processor/ProcessorInformation.h"
18 static constexpr size_t Capacity = 256;
24 if (processor >= Capacity || !handler)
27 return m_Handlers[processor].
publish(processor, handler);
35 if (processor >= Capacity || !handler)
38 return m_Handlers[processor].
unpublish(processor, handler);
46 if (processor >= Capacity)
53 return processor < Capacity && m_Handlers[processor].
isPublished(processor, handler);
bool beginDispatch(ProcessorId processor, SchedulerTimerHandlerSlot::DispatchGuard &guard)
bool registerHandler(ProcessorId processor, SchedulerTimerHandler *handler)
bool isPublished(ProcessorId processor, SchedulerTimerHandler *handler) const
bool removeHandler(ProcessorId processor, SchedulerTimerHandler *handler)
bool beginDispatch(size_t owner, DispatchGuard &guard)
bool publish(size_t owner, SchedulerTimerHandler *handler)
bool unpublish(size_t owner, SchedulerTimerHandler *handler)
bool isPublished(size_t owner, SchedulerTimerHandler *handler) const