#include <OS.h>

	class OS

        	static const int                   MAX_IRQS = 16;

        	static const KernelConstants     * constants;

        	static volatile const bool       * irqs_pending;
        	static volatile const ulong      * ticks;
        	static volatile const PageFrame  * core_map;
        	static volatile const ArenaData  * arenas;
        	static volatile const TimeSlice  * slices;
        	static volatile const int        * current_slice;
        	static volatile const int        * current_arena;


This class is used to provide a high level interface to the get_kernel_data() system call and the kerneldatatable user library.


The maximum number of irqs on the system.

The kernelconstants data structure containing various kernel constants defined in <kernelconstants.h>.

An array of MAX_IRQS booleans which indicate if an interrupt is pending on the corresponding irq.

The number of ticks that have occured since system boot.

An array of instances of class PageFrame indicating the state of physical memory. The PageFrame data structure is described in <PageFrame.h>.

An array of instances of class ArenaData indicating the state of the extant arenas in the system. The ArenaData class is defined in <ArenaData.h>.

An array of instances of class TimeSlice indicating the ownership of time-slices in the system. The TimeSlice structure is defined in <TimeSlice.h>.

The current slice in the TimeSlice array.

A pointer an instance of class ArenaData which represents the running arena. The ArenaData class is defined in <ArenaData.h>.


See the system call get_kernel_data() and the class kerneldatatable.