108 if (
desc->reschedule ) {
116 desc->step (
object );
size_t offset
Offset of process within containing object.
static void init_processes(void)
Initialise processes.
uint64_t desc
Microcode descriptor list physical address.
struct list_head list
List of processes.
#define PERMANENT_PROCESSES
Permanent process table.
void process_del(struct process *process)
Remove process from process list.
#define list_first_entry(list, type, member)
Get the container of the first entry in a list.
#define list_del(list)
Delete an entry from a list.
#define INIT_NORMAL
Normal initialisation.
An initialisation function.
void * process_object(struct process *process)
Get pointer to object containing process.
#define list_add_tail(new, head)
Add a new entry to the tail of a list.
void process_add(struct process *process)
Add process to process list.
#define ref_get(refcnt)
Get additional reference to object.
#define for_each_table_entry(pointer, table)
Iterate through all entries within a linker table.
static int process_running(struct process *process)
Check if process is running.
#define INIT_LIST_HEAD(list)
Initialise a list head.
#define PROC_DBG(process)
printf() arguments for representing a process
void step(void)
Single-step a single process.
static LIST_HEAD(run_queue)
Process run queue.
struct process_descriptor * desc
Process descriptor.
#define PROC_COL(process)
Find debugging colourisation for a process.
#define PROC_FMT
printf() format string for PROC_DBG()
struct refcnt * refcnt
Reference counter.
#define ref_put(refcnt)
Drop reference to object.
struct init_fn process_init_fn __init_fn(INIT_NORMAL)
Process initialiser.
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)