Add executive work item stubs
This commit is contained in:
@@ -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
62
xtoskrnl/ex/workitem.cc
Normal 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;
|
||||||
|
}
|
||||||
@@ -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 */
|
||||||
|
|||||||
29
xtoskrnl/includes/ex/workitem.hh
Normal file
29
xtoskrnl/includes/ex/workitem.hh
Normal 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 */
|
||||||
Reference in New Issue
Block a user