30 lines
849 B
C
30 lines
849 B
C
|
/* This table has one slot per process. It contains scheduling information
|
||
|
* for each process.
|
||
|
*/
|
||
|
#include <limits.h>
|
||
|
|
||
|
/* EXTERN should be extern except in main.c, where we want to keep the struct */
|
||
|
#ifdef _MAIN
|
||
|
#undef EXTERN
|
||
|
#define EXTERN
|
||
|
#endif
|
||
|
|
||
|
/**
|
||
|
* We might later want to add more information to this table, such as the
|
||
|
* process owner, process group or cpumask.
|
||
|
*/
|
||
|
|
||
|
EXTERN struct schedproc {
|
||
|
endpoint_t endpoint; /* process endpoint id */
|
||
|
endpoint_t parent; /* parent endpoint id */
|
||
|
unsigned flags; /* flag bits */
|
||
|
|
||
|
/* User space scheduling */
|
||
|
unsigned max_priority; /* this process' highest allowed priority */
|
||
|
unsigned priority; /* the process' current priority */
|
||
|
unsigned time_slice; /* this process's time slice */
|
||
|
} schedproc[NR_PROCS];
|
||
|
|
||
|
/* Flag values */
|
||
|
#define IN_USE 0x00001 /* set when 'schedproc' slot in use */
|