More tasking stub

This commit is contained in:
Alex
2022-10-20 05:32:15 +03:00
parent 51c096c743
commit 2f7b871aa0
5 changed files with 93 additions and 1 deletions

View File

@ -3,6 +3,60 @@
#include <types.h>
namespace Tasking
{
typedef unsigned long IP;
typedef unsigned long UPID;
typedef unsigned long UTID;
enum ExecutionElevation
{
UnknownElevation,
Kernel,
System,
Idle,
User
};
enum ExecutionStatus
{
UnknownStatus,
Running,
Sleeping,
Waiting,
Stopped,
Terminated
};
struct ExecutionSecurity
{
ExecutionElevation Elevation;
};
struct PCB
{
UPID PID;
char Name[256];
ExecutionSecurity Security;
ExecutionStatus Status;
};
struct TCB
{
UTID TID;
PCB *Parent;
IP EntryPoint;
};
class Task
{
public:
PCB *CreateProcess(char *Name, ExecutionElevation Elevation);
TCB *CreateThread(PCB *Parent, IP EntryPoint);
Task(const IP EntryPoint);
~Task();
};
}
#endif // !__FENNIX_KERNEL_TASKING_H__