mirror of
https://gitlab.os-k.eu/os-k-team/os-k.git
synced 2023-08-25 14:03:10 +02:00
54 lines
1.6 KiB
C
54 lines
1.6 KiB
C
//----------------------------------------------------------------------------//
|
|
// GNU GPL OS/K //
|
|
// //
|
|
// Authors: spectral` //
|
|
// NeoX //
|
|
// //
|
|
// Desc: Scheduler header //
|
|
//----------------------------------------------------------------------------//
|
|
|
|
#ifndef _KALKERN_BASE_H
|
|
#include <kernel/base.h>
|
|
#endif
|
|
|
|
//------------------------------------------//
|
|
|
|
#ifndef _KALKERN_SCHED_H
|
|
#define _KALKERN_SCHED_H
|
|
|
|
//------------------------------------------//
|
|
|
|
// Debug stuff
|
|
#define printdbg printf
|
|
|
|
// States for a process
|
|
#define STATE_RUNNING 0
|
|
#define STATE_RUNNABLE 1
|
|
#define STATE_BLOCKED 2
|
|
|
|
// Time in ticks a process should be run
|
|
#define DEF_PROC_TSLICE 5 // 20 ticks
|
|
#define TCR_PROC_TSLICE 20000 // 20000 ticks (time critical)
|
|
|
|
//------------------------------------------//
|
|
|
|
DECLARE_PER_CPU(IdlePrioProcs, ListHead_t *);
|
|
DECLARE_PER_CPU(ReglPrioProcs, ListHead_t *);
|
|
DECLARE_PER_CPU(ServPrioProcs, ListHead_t *);
|
|
DECLARE_PER_CPU(TimeCritProcs, ListHead_t *);
|
|
|
|
extern const char *PrioClassesNames[];
|
|
|
|
//------------------------------------------//
|
|
|
|
void SchedInit(void);
|
|
void SchedFini(void);
|
|
|
|
void SchedThisProc(Process_t *);
|
|
void SchedOnTick(void);
|
|
|
|
//------------------------------------------//
|
|
|
|
#endif
|
|
|