Nugget
Loading...
Searching...
No Matches
Namespaces | Enumerations | Functions
kernel.hh File Reference
#include <EASTL/functional.h>
#include <stdint.h>
#include <source_location>
Include dependency graph for kernel.hh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  psyqo
 
namespace  psyqo::Kernel
 The Kernel namespace for internal use.
 
namespace  psyqo::Kernel::Internal
 

Enumerations

enum class  psyqo::Kernel::DMA : unsigned {
  psyqo::Kernel::MDECin , psyqo::Kernel::MDECout , psyqo::Kernel::GPU , psyqo::Kernel::CDRom ,
  psyqo::Kernel::SPU , psyqo::Kernel::EXP1 , psyqo::Kernel::OTC , psyqo::Kernel::Max
}
 
enum class  psyqo::Kernel::IRQ : unsigned {
  psyqo::Kernel::VBlank , psyqo::Kernel::GPU , psyqo::Kernel::CDRom , psyqo::Kernel::DMA ,
  psyqo::Kernel::Timer0 , psyqo::Kernel::Timer1 , psyqo::Kernel::Timer2 , psyqo::Kernel::Controller ,
  psyqo::Kernel::SIO , psyqo::Kernel::SPU , psyqo::Kernel::PIO , psyqo::Kernel::Max
}
 

Functions

void psyqo::Kernel::Internal::abort (const char *msg, std::source_location location=std::source_location::current())
 
void psyqo::Kernel::Internal::abort ()
 
void psyqo::Kernel::takeOverKernel ()
 Takes over the kernel. Can only be called once inside the main function.
 
bool psyqo::Kernel::isKernelTakenOver ()
 Returns whether the kernel has been taken over.
 
void psyqo::Kernel::queueIRQHandler (IRQ irq, eastl::function< void()> &&lambda)
 Queues an IRQ handler to be called from the exception handler.
 
uint32_t psyqo::Kernel::openEvent (uint32_t classId, uint32_t spec, uint32_t mode, eastl::function< void()> &&lambda)
 A C++ wrapper around the openEvent syscall.
 
unsigned psyqo::Kernel::registerDmaEvent (DMA channel, eastl::function< void()> &&lambda)
 Sets an ISR callback for a given DMA channel.
 
void psyqo::Kernel::flushCache ()
 Flushes the i-cache.
 
void psyqo::Kernel::enableDma (DMA channel, unsigned priority=7)
 Enables the given DMA channel.
 
void psyqo::Kernel::disableDma (DMA channel)
 Disables the given DMA channel.
 
void psyqo::Kernel::unregisterDmaEvent (unsigned slot)
 Frees the given DMA callback slot.
 
void psyqo::Kernel::queueCallback (eastl::function< void()> &&lambda)
 Queues a callback to be called from the main thead.
 
void psyqo::Kernel::queueCallbackFromISR (eastl::function< void()> &&lambda)
 Queues a callback to be called from the main thead.
 
void psyqo::Kernel::setBreakHandler (unsigned category, eastl::function< bool(uint32_t)> &&handler)
 Sets a break handler for a given category.
 
void psyqo::Kernel::queuePsyqoBreakHandler (eastl::function< bool(uint32_t)> &&handler)
 Queues a break handler for psyqo's reserved category.
 
void psyqo::Kernel::Internal::pumpCallbacks ()
 
void psyqo::Kernel::Internal::prepare (Application &)
 
void psyqo::Kernel::Internal::addInitializer (eastl::function< void(Application &)> &&lambda)
 
void psyqo::Kernel::Internal::addOnFrame (eastl::function< void()> &&lambda)
 
void psyqo::Kernel::Internal::beginFrame ()
 
void psyqo::Kernel::assert (bool condition, const char *message, std::source_location location=std::source_location::current())
 A simple assert macro.