Add executive work item stubs
All checks were successful
Builds / ExectOS (amd64, release) (push) Successful in 37s
Builds / ExectOS (i686, debug) (push) Successful in 35s
Builds / ExectOS (i686, release) (push) Successful in 49s
Builds / ExectOS (amd64, debug) (push) Successful in 53s

This commit is contained in:
2026-07-09 07:18:45 +02:00
parent 279aba9742
commit 96502d5db6
4 changed files with 93 additions and 0 deletions

View File

@@ -19,6 +19,7 @@ list(APPEND XTOSKRNL_SOURCE
${XTOSKRNL_SOURCE_DIR}/ex/laslist.cc ${XTOSKRNL_SOURCE_DIR}/ex/laslist.cc
${XTOSKRNL_SOURCE_DIR}/ex/resource.cc ${XTOSKRNL_SOURCE_DIR}/ex/resource.cc
${XTOSKRNL_SOURCE_DIR}/ex/rundown.cc ${XTOSKRNL_SOURCE_DIR}/ex/rundown.cc
${XTOSKRNL_SOURCE_DIR}/ex/workitem.cc
${XTOSKRNL_SOURCE_DIR}/hl/${ARCH}/cpu.cc ${XTOSKRNL_SOURCE_DIR}/hl/${ARCH}/cpu.cc
${XTOSKRNL_SOURCE_DIR}/hl/${ARCH}/firmware.cc ${XTOSKRNL_SOURCE_DIR}/hl/${ARCH}/firmware.cc
${XTOSKRNL_SOURCE_DIR}/hl/${ARCH}/ioport.cc ${XTOSKRNL_SOURCE_DIR}/hl/${ARCH}/ioport.cc

62
xtoskrnl/ex/workitem.cc Normal file
View File

@@ -0,0 +1,62 @@
/**
* PROJECT: ExectOS
* COPYRIGHT: See COPYING.md in the top level directory
* FILE: xtoskrnl/ex/workitem.cc
* DESCRIPTION: Asynchronous Work Queue Items and System Worker Thread Management
* DEVELOPERS: Aiken Harris <harraiken91@gmail.com>
*/
#include <xtos.hh>
/**
* Initializes a work queue item.
*
* @param Item
* Supplies a pointer to the work queue item to be initialized.
*
* @param Routine
* Supplies the worker routine to be executed.
*
* @param Context
* Supplies the context parameter to pass to the worker routine.
*
* @return This routine does not return any value.
*
* @since XT 1.0
*/
XTAPI
VOID
EX::WorkItem::InitializeWorkItem(IN PWORK_QUEUE_ITEM Item,
IN PWORKER_THREAD_ROUTINE Routine,
IN PVOID Context)
{
/* Initialize the work item fields */
Item->WorkerRoutine = Routine;
Item->Parameter = Context;
/* Initialize the list entry links */
Item->List.Flink = NULLPTR;
}
/**
* Queues a work item to be executed by a system worker thread.
*
* @param WorkItem
* Supplies a pointer to the initialized work queue item.
*
* @param QueueType
* Supplies the type of work queue to insert the item into.
*
* @return This routine does not return any value.
*
* @since XT 1.0
*/
XTAPI
VOID
EX::WorkItem::QueueWorkItem(IN PWORK_QUEUE_ITEM WorkItem,
IN WORK_QUEUE_TYPE QueueType)
{
/* Not implemented */
UNIMPLEMENTED;
}

View File

@@ -14,5 +14,6 @@
#include <ex/laslist.hh> #include <ex/laslist.hh>
#include <ex/resource.hh> #include <ex/resource.hh>
#include <ex/rundown.hh> #include <ex/rundown.hh>
#include <ex/workitem.hh>
#endif /* __XTOSKRNL_EX_HH */ #endif /* __XTOSKRNL_EX_HH */

View File

@@ -0,0 +1,29 @@
/**
* PROJECT: ExectOS
* COPYRIGHT: See COPYING.md in the top level directory
* FILE: xtoskrnl/includes/ex/workitem.hh
* DESCRIPTION: Asynchronous Work Queue Items and System Worker Thread Management
* DEVELOPERS: Aiken Harris <harraiken91@gmail.com>
*/
#ifndef __XTOSKRNL_EX_WORKITEM_HH
#define __XTOSKRNL_EX_WORKITEM_HH
#include <xtos.hh>
/* Kernel Executive */
namespace EX
{
class WorkItem
{
public:
STATIC XTAPI VOID InitializeWorkItem(IN PWORK_QUEUE_ITEM Item,
IN PWORKER_THREAD_ROUTINE Routine,
IN PVOID Context);
STATIC XTAPI VOID QueueWorkItem(IN PWORK_QUEUE_ITEM WorkItem,
IN WORK_QUEUE_TYPE QueueType);
};
}
#endif /* __XTOSKRNL_EX_WORKITEM_HH */