Mark3 Realtime Kernel
public Directory Reference

Files

file  atomic.h [code]
 Basic Atomic Operations.
 
file  autoalloc.h [code]
 Automatic memory allocation for kernel objects.
 
file  blocking.h [code]
 Blocking object base class declarations.
 
file  colist.h [code]
 CoRoutine List structure implementation.
 
file  condvar.h [code]
 Condition Variable implementation.
 
file  coroutine.h [code]
 CoRoutine implementation.
 
file  cosched.h [code]
 CoRoutine Scheduler implementation.
 
file  criticalguard.h [code]
 RAII Critical Section Implementation.
 
file  criticalsection.h [code]
 Critical Section Support.
 
file  eventflag.h [code]
 Event Flag Blocking Object/IPC-Object definition.
 
file  ithreadport.h [code]
 Thread porting interface.
 
file  kernel.h [code]
 Kernel initialization and startup class.
 
file  kerneldebug.h [code]
 Macros and functions used for assertions, kernel traces, etc.
 
file  kernelswi.h [code]
 Kernel Software interrupt declarations.
 
file  kerneltimer.h [code]
 Kernel Timer Class declaration.
 
file  kerneltypes.h [code]
 Basic data type primatives used throughout the OS.
 
file  ksemaphore.h [code]
 Semaphore Blocking Object class declarations.
 
file  ll.h [code]
 Core linked-list declarations, used by all kernel list types At the heart of RTOS data structures are linked lists. Having a robust and efficient set of linked-list types that we can use as a foundation for building the rest of our kernel types allows u16 to keep our RTOS code efficient and logically-separated.
 
file  lockguard.h [code]
 Mutex RAII helper class.
 
file  mailbox.h [code]
 Mailbox + Envelope IPC Mechanism.
 
file  manual.h [code]
 
file  mark3.h [code]
 Single include file given to users of the Mark3 Kernel API.
 
file  mark3cfg.h [code]
 Mark3 Kernel Configuration This file is used to configure the kernel for your specific application in order to provide the optimal set of features for a given use case.
 
file  message.h [code]
 Inter-thread communication via message-passing Embedded systems guru Jack Ganssle once said that without a robust form of interprocess communications (IPC), an RTOS is just a toy. Mark3 implements a form of IPC to provide safe and flexible messaging between threads.
 
file  mutex.h [code]
 Mutual exclusion class declaration Resource locks are implemented using mutual exclusion semaphores (Mutex_t). Protected blocks can be placed around any resource that may only be accessed by one thread at a time. If additional threads attempt to access the protected resource, they will be placed in a wait queue until the resource becomes available. When the resource becomes available, the thread with the highest original priority claims the resource and is activated. Priority inheritance is included in the implementation to prevent priority inversion. Always ensure that you claim and release your mutex objects consistently, otherwise you may end up with a deadlock scenario that's hard to debug.
 
file  notify.h [code]
 Lightweight thread notification - blocking object.
 
file  paniccodes.h [code]
 Defines the reason codes thrown when a kernel panic occurs.
 
file  priomap.h [code]
 Priority map data structure.
 
file  priomapl1.h [code]
 1-Level bitmap allocator template-class used for scheduler implementation
 
file  priomapl2.h [code]
 2-Level priority allocator template-class used for scheduler implementation
 
file  profile.h [code]
 High-precision profiling timers Enables the profiling and instrumentation of performance-critical code. Multiple timers can be used simultaneously to enable system-wide performance metrics to be computed in a lightweight manner.
 
file  profiling_results.h [code]
 
file  quantum.h [code]
 Thread Quantum declarations for Round-Robin Scheduling.
 
file  readerwriter.h [code]
 Reader-Writer lock implementation.
 
file  scheduler.h [code]
 Thread scheduler function declarations This scheduler implements a very flexible type of scheduling, which has become the defacto industry standard when it comes to real-time operating systems. This scheduling mechanism is referred to as priority round- robin.
 
file  schedulerguard.h [code]
 RAII Scheduler Locking.
 
file  sizeprofile.h [code]
 
file  thread.h [code]
 Platform independent thread class declarations Threads are an atomic unit of execution, and each instance of the thread class represents an instance of a program running of the processor. The Thread is the fundmanetal user-facing object in the kernel - it is what makes multiprocessing possible from application code.
 
file  threadlist.h [code]
 Thread linked-list declarations.
 
file  threadlistlist.h [code]
 Class implementing a doubly-linked list of thread lists.
 
file  timer.h [code]
 Timer object declarations.
 
file  timerlist.h [code]
 Timer list declarations.
 
file  timerscheduler.h [code]
 Timer scheduler declarations.