|
Voxia OS v0.0.1
Hobby Project Operating System Targeting x86-64
|
#include "procc/workqueue.h"#include "hal/acpi/acpi.h"#include "hal/cpu/paging.h"#include "init/init.h"#include "libk/serial.h"#include "procc/thread.h"#include <hal/cpu/core.h>#include <spinlock.h>#include <type.h>#include <vector.h>Go to the source code of this file.
Macros | |
| #define | SLOT_EMPTY 0x00 |
| #define | SLOT_BUSY 0xFF |
Functions | |
| static void | workqueue_process () |
| workqueue_t * | vxAddWorkqueueTask (void(*task)(void *), void *arg, struct vector_workqueue_ptr_t *dependency) |
| INIT (Workqueue) | |
Variables | |
| static spinlock_t | lock |
| #define SLOT_BUSY 0xFF |
Definition at line 15 of file workqueue.c.
Referenced by vxAddWorkqueueTask().
| #define SLOT_EMPTY 0x00 |
Definition at line 14 of file workqueue.c.
| INIT | ( | Workqueue | ) |
Definition at line 142 of file workqueue.c.
References Active, attach_to_scheduler(), create_thread(), kalloc(), paging_get_highest_page_map(), serial2_printf(), stack, vxGetCpuInfo(), vxGetNumberOfCores(), and workqueue_process().
| workqueue_t * vxAddWorkqueueTask | ( | void(* | task )(void *), |
| void * | arg, | ||
| struct vector_workqueue_ptr_t * | dependency ) |
Definition at line 84 of file workqueue.c.
References Active, core, dependency, each_core_data, lock, LOG_ERROR, SLOT_BUSY, SLOT_EMPTY, spin_acquire(), spin_release(), vxGetCoreDataByCoreID(), and vxGetCpuInfo().
Referenced by proccess_elf().
|
static |
Definition at line 17 of file workqueue.c.
References core, vector_workqueue_ptr_t::data, workqueue::data, workqueue::dependency, each_core_data, workqueue::function, get_current_core_data(), workqueue::in_use, LOG2_ERROR, LOG2_INFO, vector_workqueue_ptr_t::size, SLOT_EMPTY, and vxThreadExit().
Referenced by INIT().
|
static |
Definition at line 12 of file workqueue.c.