Implement process and thread object type getters
All checks were successful
Builds / ExectOS (amd64, release) (push) Successful in 32s
Builds / ExectOS (amd64, debug) (push) Successful in 34s
Builds / ExectOS (i686, debug) (push) Successful in 41s
Builds / ExectOS (i686, release) (push) Successful in 40s

This commit is contained in:
2026-07-09 20:33:57 +02:00
parent 17f23fff41
commit b98d94b4f3
5 changed files with 78 additions and 0 deletions

View File

@@ -100,6 +100,7 @@ list(APPEND XTOSKRNL_SOURCE
${XTOSKRNL_SOURCE_DIR}/po/idle.cc
${XTOSKRNL_SOURCE_DIR}/ps/data.cc
${XTOSKRNL_SOURCE_DIR}/ps/process.cc
${XTOSKRNL_SOURCE_DIR}/ps/psmgr.cc
${XTOSKRNL_SOURCE_DIR}/ps/quota.cc
${XTOSKRNL_SOURCE_DIR}/ps/thread.cc
${XTOSKRNL_SOURCE_DIR}/rtl/${ARCH}/atomic.cc

View File

@@ -12,6 +12,7 @@
#include <xtos.hh>
#include <ps/process.hh>
#include <ps/psmgr.hh>
#include <ps/quota.hh>
#include <ps/thread.hh>

View File

@@ -0,0 +1,30 @@
/**
* PROJECT: ExectOS
* COPYRIGHT: See COPYING.md in the top level directory
* FILE: xtoskrnl/includes/ps/process.hh
* DESCRIPTION: Process Management
* DEVELOPERS: Aiken Harris <harraiken91@gmail.com>
*/
#ifndef __XTOSKRNL_PS_PSMGR_HH
#define __XTOSKRNL_PS_PSMGR_HH
#include <xtos.hh>
/* Process and thread management */
namespace PS
{
class ProcessManager
{
private:
STATIC POBJECT_TYPE ProcessType;
STATIC POBJECT_TYPE ThreadType;
public:
STATIC XTFASTCALL POBJECT_TYPE GetProcessType(VOID);
STATIC XTFASTCALL POBJECT_TYPE GetThreadType(VOID);
};
}
#endif /* __XTOSKRNL_PS_PSMGR_HH */

View File

@@ -12,5 +12,11 @@
/* Pointer to the system process object */
PEPROCESS PS::Process::SystemProcess;
/* Global object type descriptor for Process objects */
POBJECT_TYPE PS::ProcessManager::ProcessType;
/* Global object type descriptor for Thread objects */
POBJECT_TYPE PS::ProcessManager::ThreadType;
/* Default system-wide quota block assigned to processes */
EPROCESS_QUOTA_BLOCK PS::Quota::DefaultQuotaBlock;

40
xtoskrnl/ps/psmgr.cc Normal file
View File

@@ -0,0 +1,40 @@
/**
* PROJECT: ExectOS
* COPYRIGHT: See COPYING.md in the top level directory
* FILE: xtoskrnl/po/psmgr.cc
* DESCRIPTION: Process Manager
* DEVELOPERS: Aiken Harris <harraiken91@gmail.com>
*/
#include <xtos.hh>
/**
* Retrieves the global object type descriptor for Process objects.
*
* @return This routine returns a pointer to the process object type structure.
*
* @since XT 1.0
*/
XTFASTCALL
POBJECT_TYPE
PS::ProcessManager::GetProcessType(VOID)
{
/* Return the process object type descriptor */
return ProcessType;
}
/**
* Retrieves the global object type descriptor for Thread objects.
*
* @return This routine returns a pointer to the thread object type structure.
*
* @since XT 1.0
*/
XTFASTCALL
POBJECT_TYPE
PS::ProcessManager::GetThreadType(VOID)
{
/* Return the thread object type descriptor */
return ThreadType;
}