[ C++ RCOS Home | RCOS.java Home | RCOS Home | David's Home ]
Name: |
Knl |
Comment: |
The visible members of the kernel are used by the Device Drivers to communicate with each other, or the Kernel itself, by calling eithe the member which places the message is in a FIFO queqe for future dispatch, or (if the matter is urgent) which causes the Kernel to immediatly call the destination driver. Note the member allows the supervisor to control the kernel and probably should not be used by any drivers as it would result in recursive invocations. |
Collaborators: |
class Knl { Exec *pTask; INT16 inCrit; // count variable on Kernel code DblList Dev; // List of Device Rx ports DblList Msg; // Message Queue void Service (PMSG); // Service messages to kernel PDEVLST GetPort (UINT16); // Get devlist element of ID public: Knl (UINT16); ~Knl (void); BOOL Run (void); // Entry from Supervisor void PostMsg (UINT16, PMSG); // Asynchronous message transfer void SendMsg (UINT16, PMSG); // Synchronous message transfer void PeekMsg (UINT16, PMSG*); // Anything for me? void Startup (void) { pTask->StartCon(); } // Startup process Zero };