a7d0570e67
state into global and per-CPU scheduler state: - Global state: sched_qs (run queues), sched_whichqs (bitmap of non-empty run queues), sched_slpque (sleep queues). NOTE: These may collectively move into a struct schedstate at some point in the future. - Per-CPU state, struct schedstate_percpu: spc_runtime (time process on this CPU started running), spc_flags (replaces struct proc's p_schedflags), and spc_curpriority (usrpri of processes on this CPU). - Every platform must now supply a struct cpu_info and a curcpu() macro. Simplify existing cpu_info declarations where appropriate. - All references to per-CPU scheduler state now made through curcpu(). NOTE: this will likely be adjusted in the future after further changes to struct proc are made. Tested on i386 and Alpha. Changes are mostly mechanical, but apologies in advance if it doesn't compile on a particular platform.
32 lines
686 B
C
32 lines
686 B
C
/* $NetBSD: cpu.h,v 1.24 2000/05/26 21:20:11 thorpej Exp $ */
|
|
|
|
#ifndef _PMAX_CPU_H_
|
|
#define _PMAX_CPU_H_
|
|
|
|
#include <mips/cpu.h>
|
|
#include <mips/cpuregs.h>
|
|
|
|
#ifndef _LOCORE
|
|
#if defined(_KERNEL) && !defined(_LKM)
|
|
#include "opt_lockdebug.h"
|
|
#endif
|
|
|
|
#include <sys/sched.h>
|
|
struct cpu_info {
|
|
struct schedstate_percpu ci_schedstate; /* scheduler state */
|
|
#if defined(DIAGNOSTIC) || defined(LOCKDEBUG)
|
|
u_long ci_spin_locks; /* # of spin locks held */
|
|
u_long ci_simple_locks; /* # of simple locks held */
|
|
#endif
|
|
};
|
|
|
|
#ifdef _KERNEL
|
|
extern struct cpu_info cpu_info_store;
|
|
|
|
#define curcpu() (&cpu_info_store)
|
|
#define cpu_number() (0)
|
|
#endif
|
|
#endif /* !_LOCORE */
|
|
|
|
#endif /* !_PMAX_CPU_H_ */
|