sched.h
来自「xen虚拟机源代码安装包」· C头文件 代码 · 共 59 行
H
59 行
#ifndef __SCHED_H__#define __SCHED_H__#include <mini-os/list.h>#include <mini-os/time.h>#include <mini-os/arch_sched.h>#ifdef HAVE_LIBC#include <sys/reent.h>#endifstruct thread{ char *name; char *stack;#if !defined(__ia64__) /* keep in that order */ unsigned long sp; /* Stack pointer */ unsigned long ip; /* Instruction pointer */#else /* !defined(__ia64__) */ thread_regs_t regs;#endif /* !defined(__ia64__) */ struct minios_list_head thread_list; u32 flags; s_time_t wakeup_time;#ifdef HAVE_LIBC struct _reent reent;#endif};extern struct thread *idle_thread;void idle_thread_fn(void *unused);#define RUNNABLE_FLAG 0x00000001#define is_runnable(_thread) (_thread->flags & RUNNABLE_FLAG)#define set_runnable(_thread) (_thread->flags |= RUNNABLE_FLAG)#define clear_runnable(_thread) (_thread->flags &= ~RUNNABLE_FLAG)#define switch_threads(prev, next) arch_switch_threads(prev, next) /* Architecture specific setup of thread creation. */struct thread* arch_create_thread(char *name, void (*function)(void *), void *data);void init_sched(void);void run_idle_thread(void);struct thread* create_thread(char *name, void (*function)(void *), void *data);void exit_thread(void) __attribute__((noreturn));void schedule(void);#define current get_current()void wake(struct thread *thread);void block(struct thread *thread);void msleep(u32 millisecs);#endif /* __SCHED_H__ */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?