Mark3 Realtime Kernel
mark3.h
Go to the documentation of this file.
1 /*===========================================================================
2  _____ _____ _____ _____
3  ___| _|__ __|_ |__ __|__ |__ __| __ |__ ______
4 | \ / | || \ || | || |/ / ||___ |
5 | \/ | || \ || \ || \ ||___ |
6 |__/\__/|__|_||__|\__\ __||__|\__\ __||__|\__\ __||______|
7  |_____| |_____| |_____| |_____|
8 
9 --[Mark3 Realtime Platform]--------------------------------------------------
10 
11 Copyright (c) 2012 - 2019 m0slevin, all rights reserved.
12 See license.txt for more information
13 ===========================================================================*/
20 #pragma once
21 
22 #include "mark3cfg.h"
23 #include "threadport.h"
24 #include "criticalsection.h"
25 #include "criticalguard.h"
26 
27 #include "kerneltypes.h"
28 #include "kerneldebug.h"
29 
30 #include "ithreadport.h"
31 #include "kernelswi.h"
32 #include "kerneltimer.h"
33 
34 #include "kernel.h"
35 #include "thread.h"
36 #include "timerlist.h"
37 
38 #include "ksemaphore.h"
39 #include "mutex.h"
40 #include "lockguard.h"
41 #include "eventflag.h"
42 #include "message.h"
43 #include "notify.h"
44 #include "mailbox.h"
45 #include "readerwriter.h"
46 #include "condvar.h"
47 
48 #include "atomic.h"
49 
50 #include "profile.h"
51 #include "autoalloc.h"
52 #include "priomap.h"
53 
54 #include "threadlist.h"
55 #include "threadlistlist.h"
56 
57 #include "schedulerguard.h"
58 
59 #include "coroutine.h"
60 #include "colist.h"
61 #include "cosched.h"
62 
Lightweight thread notification - blocking object.
CoRoutine Scheduler implementation.
CoRoutine implementation.
Reader-Writer lock implementation.
Semaphore Blocking Object class declarations.
Timer list declarations.
Basic data type primatives used throughout the OS.
Thread porting interface.
RAII Scheduler Locking.
Kernel initialization and startup class.
Class implementing a doubly-linked list of thread lists.
Inter-thread communication via message-passing Embedded systems guru Jack Ganssle once said that with...
Mark3 Kernel Configuration This file is used to configure the kernel for your specific application in...
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.
Macros and functions used for assertions, kernel traces, etc.
Kernel Software interrupt declarations.
Mutex RAII helper class.
Condition Variable implementation.
ATMega1284p Multithreading support.
Critical Section Support.
Basic Atomic Operations.
Priority map data structure.
Mutual exclusion class declaration Resource locks are implemented using mutual exclusion semaphores (...
RAII Critical Section Implementation.
Event Flag Blocking Object/IPC-Object definition.
Mailbox + Envelope IPC Mechanism.
High-precision profiling timers Enables the profiling and instrumentation of performance-critical cod...
CoRoutine List structure implementation.
Kernel Timer Class declaration.
Automatic memory allocation for kernel objects.
Thread linked-list declarations.