⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sched_runqueue.h

📁 unxi下共享内存的使用
💻 H
字号:
#ifndef _LINUX_SCHED_RUNQUEUE_H#define _LINUX_SCHED_RUNQUEUE_H#include <linux/config.h>/* * Priority of a process goes from 0..MAX_PRIO-1, valid RT * priority is 0..MAX_RT_PRIO-1, and SCHED_OTHER tasks are * in the range MAX_RT_PRIO..MAX_PRIO-1. Priority values * are inverted: lower p->prio value means higher priority. * * The MAX_RT_USER_PRIO value allows the actual maximum * RT priority to be separate from the value exported to * user-space.  This allows kernel threads to set their * priority to a value higher than any user task. Note: * MAX_RT_PRIO must not be smaller than MAX_USER_RT_PRIO. * * Both values are configurable at compile-time. */#if CONFIG_MAX_USER_RT_PRIO < 100#define MAX_USER_RT_PRIO	100#elif CONFIG_MAX_USER_RT_PRIO > 1000#define MAX_USER_RT_PRIO	1000#else#define MAX_USER_RT_PRIO	CONFIG_MAX_USER_RT_PRIO#endif#if CONFIG_MAX_RT_PRIO < 0#define MAX_RT_PRIO		MAX_USER_RT_PRIO#elif CONFIG_MAX_RT_PRIO > 200#define MAX_RT_PRIO		(MAX_USER_RT_PRIO + 200)#else#define MAX_RT_PRIO		(MAX_USER_RT_PRIO + CONFIG_MAX_RT_PRIO)#endif#define MAX_PRIO		(MAX_RT_PRIO + 40)/* * These are the runqueue data structures: */#define BITMAP_SIZE ((((MAX_PRIO+1+7)/8)+sizeof(long)-1)/sizeof(long))struct prio_array {	int nr_active;	unsigned long bitmap[BITMAP_SIZE];	list_t queue[MAX_PRIO];};/* * This is the main, per-CPU runqueue data structure. * * Locking rule: those places that want to lock multiple runqueues * (such as the load balancing or the process migration code), lock * acquire operations must be ordered by ascending &runqueue. */struct runqueue {	spinlock_t lock;	spinlock_t frozen;	unsigned long nr_running, nr_switches, expired_timestamp;	long quiescent; /* RCU */	task_t *curr, *idle;	prio_array_t *active, *expired, arrays[2];	int prev_nr_running[NR_CPUS];	task_t *migration_thread;	list_t migration_queue;} ____cacheline_aligned;typedef struct runqueue runqueue_t;extern runqueue_t runqueues[];#define cpu_rq(cpu)		(runqueues + (cpu))#define this_rq()		cpu_rq(smp_processor_id())#define task_rq(p)		cpu_rq((p)->cpu)#define cpu_curr(cpu)		(cpu_rq(cpu)->curr)#define rt_task(p)		((p)->prio < MAX_RT_PRIO)#define RCU_quiescent(cpu)	(cpu_rq(cpu)->quiescent)#endif /* _LINUX_SCHED_RUNQUEUE_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -