[ 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
};