亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rtl_sched.h

?? fsmlabs的real time linux的內核
?? H
字號:
/* * RTLinux scheduler * * Written by Michael Barabanov, Victor Yodaiken * Copyright (C) Finite State Machine Labs Inc., 1998-1999 * Released under the terms of the GPL Version 2 * */#ifndef __RTL__SCHED__#define __RTL__SCHED__#include <asm/ptrace.h>#include <linux/version.h>#if LINUX_VERSION_CODE >= 0x020300#include <linux/spinlock.h>#else#include <asm/spinlock.h>#endif#include <asm/bitops.h>#include <rtl_conf.h>#include <rtl_limits.h>#include <rtl_core.h>#include <rtl_time.h>#include <arch/rtl_fpu.h>#include <rtl_spinlock.h>#include <signal.h>#include <reserve_cpu.h>#ifdef __cplusplusstruct sched_param {	int sched_priority;};#define SCHED_OTHER		0#define SCHED_FIFO		1#define SCHED_RR		2#else#include <linux/sched.h>#endif#define rtl_sched_param sched_param#define TIMER_ABSTIME 1struct rtl_cleanup_struct {	void (*routine)(void*);	void *arg;	struct rtl_cleanup_struct *next;};/* threads have no clocks. Clocks belong to schedulers.  We can add scheduling   policies in which a scheduler juggles multiple clocks, but there is no advantage   that I can see in allowing a thread to specify its  hardware clock   */#define RTL_THREAD_MAGIC 0x79433743   struct rtl_thread_struct;typedef struct rtl_thread_struct *pthread_t;#include <rtl_posix.h>struct rtl_thread_struct {	int *stack;	/* hardcoded */	int fpu_initialized;	RTL_FPU_CONTEXT fpu_regs;	int uses_fp;	int *kmalloc_stack_bottom;	struct rtl_sched_param sched_param;	struct rtl_thread_struct *next;	int cpu;	hrtime_t resume_time;	hrtime_t period;	hrtime_t timeval;	struct module *creator;	void (*abort)(void *);	void *abortdata;	int threadflags;	rtl_sigset_t pending;	rtl_sigset_t blocked;	void *user[4];	int errno_val;	struct rtl_cleanup_struct *cleanup;	int magic;	struct rtl_posix_thread_struct posix_data;	void *tsd [RTL_PTHREAD_KEYS_MAX];};#define RTL_POSIX_DATA(th) (&(th)->posix_data)#define hrt2ts(hrt) ((const struct timespec *) ({ pthread_self()->timeval = hrt; (&pthread_self()->timeval); }))#define RTL_PRIO(th) ((th)->sched_param.sched_priority)enum {RTL_CANCELPENDING, RTL_CANCELTYPE, RTL_THREAD_JOINABLE, RTL_THREAD_FINISHED, RTL_THREAD_TIMERARMED, RTL_THREAD_WAIT_FOR_JOIN, RTL_THREAD_OK_TO_FINISH_JOIN#ifdef CONFIG_OC_PSIGNALS     , RTL_THREAD_SIGNAL_INTERRUMPIBLE#endif};#define RTL_MAX_SIGNAL 31 /* this is max for internal RTLinux signals *//* these are bit positions */#define RTL_SIGNAL_NULL 0 /* posix wants signal=0 to simply check */#define RTL_SIGNAL_WAKEUP 1#define RTL_SIGNAL_CANCEL 2#define RTL_SIGNAL_SUSPEND 3#define RTL_SIGNAL_TIMER 5#define RTL_SIGNAL_READY 6#ifdef CONFIG_OC_PSIGNALS#define RTL_SIGNAL_HANDLER_EXECUTION_INPROGRESS 4#define RTL_SIGUSR1  (RTL_SIGNAL_READY+1)#define RTL_SIGUSR2  (RTL_SIGUSR1+1)#define RTL_SIGRTMIN (RTL_SIGUSR2+1)#define RTL_SIGRTMAX RTL_MAX_SIGNAL#define RTL_SIG_DFL 0#define RTL_SIG_IGN 0#endif/*TODO How will this work on PPC */#define RTL_LINUX_MIN_SIGNAL 256  /* signals to Linux start here. global then local */#define RTL_LINUX_MAX_SIGNAL 1024#define RTL_LINUX_MIN_LOCAL_SIGNAL  512extern int rtl_schedule (void);#define RTL_TIMED_OUT(x) rtl_sigismember((x), RTL_SIGNAL_TIMER)#define RTL_SIGINTR(x) (0)typedef struct rtl_thread_struct RTL_THREAD_STRUCT;#define RTL_MARK_READY(th) rtl_sigaddset(&(th)->pending, RTL_SIGNAL_READY)#define RTL_MARK_SUSPENDED(th) rtl_sigdelset(&(th)->pending, RTL_SIGNAL_READY)struct rtl_sched_cpu_struct {	struct rtl_thread_struct *rtl_current;	struct rtl_thread_struct rtl_linux_task;	struct rtl_thread_struct *rtl_task_fpu_owner;	/* the task whose FP context is currently in the FPU unit */	struct rtl_thread_struct *rtl_tasks; /* the queue of  RT tasks */	struct rtl_thread_struct *rtl_new_tasks;	clockid_t clock;	spinlock_t rtl_tasks_lock;	int sched_flags;	int sched_user[4];	/* on x86 sched_user[0] is the Linux TS flag */}/* __attribute__ ((aligned (64)))*/;typedef struct rtl_sched_cpu_struct  schedule_t;#ifdef CONFIG_SMPextern struct rtl_sched_cpu_struct rtl_sched [NR_CPUS];#define sched_data(cpu) (&rtl_sched [cpu])#define LOCAL_SCHED (&rtl_sched[rtl_getcpuid()])#elseextern struct rtl_sched_cpu_struct rtl_sched [1];#define sched_data(cpu) (&rtl_sched[0])#define LOCAL_SCHED (&rtl_sched[0])#endifstatic inline pthread_t pthread_linux(void){	return &(rtl_sched[rtl_getcpuid()].rtl_linux_task);}#define RTL_CURRENT (LOCAL_SCHED->rtl_current)/* RTL-specific function TODO: write POSIX equivalents for these */extern int pthread_delete_np (pthread_t thread);extern int pthread_setfp_np (pthread_t thread, int flag);extern int pthread_wakeup_np (pthread_t thread);extern int pthread_suspend_np (pthread_t thread);/* end RTL-specific *//* POSIX interface */#define pthread_cleanup_push(p_routine, p_arg) \{ \	rtl_irqstate_t __flags; \	struct rtl_cleanup_struct __cleanup; \	__cleanup.routine = (p_routine); \	__cleanup.arg = (p_arg); \	rtl_no_interrupts (__flags); \	__cleanup.next = pthread_self()->cleanup; \	pthread_self()->cleanup = &__cleanup; \	rtl_restore_interrupts (__flags);#define pthread_cleanup_pop(execute) \	rtl_no_interrupts (__flags); \	pthread_self()->cleanup = pthread_self()->cleanup->next; \	if (execute) \		__cleanup.routine(__cleanup.arg); \	rtl_restore_interrupts (__flags); \}extern inline int sched_get_priority_max(int policy) { return 1000000; }extern inline int sched_get_priority_min(int policy) { return 0; }extern inline pthread_t pthread_self(void) {	return (LOCAL_SCHED)-> rtl_current;}extern inline int pthread_equal(pthread_t thread1, pthread_t thread2){	return thread1 == thread2;}typedef int pthread_key_t;extern inline int pthread_setspecific(pthread_key_t key, const void *value){	pthread_self()->tsd[key] = (void *) value;	return 0;}extern inline void *pthread_getspecific(pthread_key_t key){	return pthread_self()->tsd[key];}#define RTL_PTHREAD_STACK_MIN 8192#define PTHREAD_CANCEL_ENABLE 0#define PTHREAD_CANCEL_DISABLE 1#define PTHREAD_CANCEL_DEFERRED 0#define PTHREAD_CANCEL_ASYNCHRONOUS 1#define PTHREAD_CREATE_JOINABLE 0#define PTHREAD_CREATE_DETACHED 1extern int pthread_setcancelstate(int state, int *oldstate);extern int pthread_setcanceltype(int type, int *oldtype);extern int pthread_cancel (pthread_t thread);extern void pthread_testcancel(void);typedef struct STRUCT_PTHREAD_ATTR {	size_t stack_size;	void *stack_addr;	struct rtl_sched_param sched_param;	int cpu;	int use_fp;	rtl_sigset_t initial_state;	int detachstate;} pthread_attr_t;extern inline int pthread_attr_init(pthread_attr_t *attr){	attr->stack_addr = 0;	attr->stack_size = 20480;	attr->sched_param.sched_priority = sched_get_priority_min(0);	attr->cpu = rtl_getcpuid();        rtl_sigemptyset(&attr->initial_state);        rtl_sigaddset(&attr->initial_state, RTL_SIGNAL_READY);	attr->use_fp = 0;	attr->detachstate = PTHREAD_CREATE_JOINABLE;	return 0;}extern inline int pthread_attr_destroy(pthread_attr_t *attr){	return 0;}extern inline int pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize){	if (stacksize < RTL_PTHREAD_STACK_MIN) {		return EINVAL;	}	attr->stack_size = stacksize;	return 0;}extern inline int pthread_attr_getstacksize(const pthread_attr_t *attr, size_t *stacksize){	*stacksize = attr->stack_size;	return 0;}extern int pthread_attr_setfp_np (pthread_attr_t *attr, int flag);extern inline int pthread_attr_getfp_np (const pthread_attr_t *attr, int *use_fp){	*use_fp = attr->use_fp;	return 0;}#define pthread_attr_setfp(attr,flag) pthread_attr_setfp_np(attr,flag)#define pthread_attr_getfp(attr,flag) pthread_attr_getfp_np(attr,flag)extern inline int pthread_attr_getcpu_np(const pthread_attr_t *attr, int * cpu){	*cpu = attr->cpu;	return 0;}extern int pthread_attr_setcpu_np(pthread_attr_t *attr, int cpu);#define pthread_attr_getcpu(attr,cpu) pthread_attr_getcpu_np(attr,cpu)#define pthread_attr_setcpu(attr,cpu) pthread_attr_setcpu_np(attr,cpu)extern int pthread_wait_np(void);extern int pthread_make_periodic_np (pthread_t p, hrtime_t start_time, hrtime_t period);/* this one is deprecated */extern inline clockid_t rtl_getschedclock(void){	return LOCAL_SCHED->clock;}#define CLOCK_RTL_SCHED (LOCAL_SCHED->clock)#define CLOCK_REALTIME CLOCK_RTL_SCHEDextern int rtl_setclockmode (clockid_t clock, int mode, hrtime_t period);extern int sched_yield(void);extern inline int pthread_setschedparam(pthread_t thread, int policy,		    const struct rtl_sched_param *param) {	thread->sched_param = *param;	return 0;} extern inline int pthread_getschedparam(pthread_t thread, int *policy,		    struct rtl_sched_param *param) {	*param = thread->sched_param;	return 0;}extern inline int pthread_attr_setschedparam(pthread_attr_t *attr,		    const struct rtl_sched_param *param) {	attr->sched_param = *param;	return 0;}extern inline int pthread_attr_getschedparam(const pthread_attr_t *attr,		    struct rtl_sched_param *param) {	*param = attr->sched_param;	return 0;} extern int pthread_attr_setstackaddr(pthread_attr_t *attr, void *stackaddr);extern int pthread_attr_getstackaddr(const pthread_attr_t *attr, void **stackaddr);struct module;extern struct module __this_module;extern int __pthread_create (pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg, struct module *mod);#define pthread_create(thread, attr, start, arg) __pthread_create(thread, attr, start, arg, &__this_module)#define PTHREAD_CANCELED ((void *) -1)extern void pthread_exit(void *retval);int pthread_kill(pthread_t , int signo);#ifdef CONFIG_OC_PSIGNALS#define HIGHER_PRIORITY_THREAD(th1,th2) (RTL_PRIO(th1)>RTL_PRIO(th2))#endifextern inline int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate){	attr->detachstate = detachstate;	return 0;}extern inline int pthread_attr_getdetachstate(const pthread_attr_t *attr, int *detachstate){	*detachstate = attr->detachstate;	return 0;}typedef unsigned useconds_t;extern int usleep(useconds_t useconds);extern int clock_nanosleep(clockid_t clock_id, int flags,		const struct timespec *rqtp, struct timespec *rmtp);extern int nanosleep(const struct timespec *rqtp, struct timespec *rmtp);#include <rtl_compat.h>extern int rtl_reserve_cpus(unsigned cpumask);extern int rtl_unreserve_cpus(void);struct task_struct *get_linux_current(void);#define RTL_SCHED_TIMER_OK 0#define __rtl_setup_timeout(th,timeout) do { \	(th)->resume_time = (timeout); \	set_bit (RTL_THREAD_TIMERARMED, &(th) -> threadflags); \	clear_bit (RTL_SCHED_TIMER_OK, &sched_data((th)->cpu)->sched_flags); \} while (0)static inline hrtime_t __rtl_fix_timeout_for_clock(clockid_t clock, hrtime_t timeout){	if (clock == CLOCK_RTL_SCHED) {		return timeout;	}/*	if (clock->mode == RTL_CLOCK_MODE_ONESHOT) {		return timeout - clock->delta;	} */	return timeout - clock_gethrtime(clock) + clock_gethrtime(CLOCK_RTL_SCHED);}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品综合久久| 成人动漫一区二区在线| 国产精品福利影院| 日韩欧美在线一区二区三区| 国产精品一区2区| 午夜精品在线看| 国产精品成人午夜| 精品国产乱码久久久久久浪潮| 色欧美88888久久久久久影院| 美女国产一区二区| 一个色在线综合| 久久久不卡网国产精品二区 | 国产伦精品一区二区三区视频青涩 | 欧美色综合影院| 成人性生交大合| 精品一区二区三区免费毛片爱| 亚洲精品免费在线观看| 2022国产精品视频| 欧美一级一区二区| 欧美三电影在线| 日本电影亚洲天堂一区| 成人一区二区三区中文字幕| 精品影院一区二区久久久| 午夜精品福利视频网站| 亚洲视频 欧洲视频| 国产欧美一区二区精品性色| 日韩一级大片在线| 在线观看91视频| 91色视频在线| av一区二区三区黑人| jlzzjlzz亚洲女人18| 国产激情视频一区二区三区欧美| 国模一区二区三区白浆| 久久精品噜噜噜成人av农村| 美女网站在线免费欧美精品| 丝袜美腿亚洲一区| 美女视频黄 久久| 久久精品二区亚洲w码| 久久电影网站中文字幕| 美腿丝袜一区二区三区| 激情综合一区二区三区| 韩国视频一区二区| 国产精品一区二区91| 成人性生交大片免费| 北条麻妃国产九九精品视频| 99国产精品99久久久久久| 99re热视频精品| 91国偷自产一区二区三区观看 | 国产91精品精华液一区二区三区 | 日本强好片久久久久久aaa| 亚洲第一成年网| 丝瓜av网站精品一区二区| 日韩激情中文字幕| 奇米在线7777在线精品| 337p日本欧洲亚洲大胆精品| 欧美一区二区二区| 精品黑人一区二区三区久久| 亚洲精品在线免费观看视频| 蜜桃久久久久久| 国产成人精品影院| 91婷婷韩国欧美一区二区| 在线中文字幕一区二区| 欧美一区二区国产| 国产日本欧洲亚洲| 亚洲色图另类专区| 日韩精品成人一区二区在线| 国产精品一区二区果冻传媒| 91蜜桃网址入口| 日韩一级精品视频在线观看| 久久久久久久电影| 最新热久久免费视频| 亚洲成人免费av| 国产一区二区三区香蕉| 99久久精品国产网站| 91精品国产一区二区三区香蕉| ww久久中文字幕| 亚洲男同性视频| 久久99精品国产麻豆不卡| 成av人片一区二区| 91精品国产欧美一区二区| 国产欧美精品一区二区色综合| 亚洲精品视频在线观看网站| 男人的天堂久久精品| 不卡av电影在线播放| 91精品在线麻豆| 中文文精品字幕一区二区| 五月综合激情网| 成人av手机在线观看| 欧美日韩dvd在线观看| 久久精品无码一区二区三区| 亚洲午夜私人影院| 成人av资源在线观看| 在线成人免费视频| 亚洲视频资源在线| 国产乱人伦偷精品视频不卡 | 日韩亚洲欧美高清| 亚洲色图欧洲色图| 国产精品影视网| 欧美狂野另类xxxxoooo| 国产精品成人在线观看| 国产一区二区网址| 日韩一卡二卡三卡四卡| 亚洲一区二区三区三| 成人午夜视频网站| 2023国产精品自拍| 日本欧美大码aⅴ在线播放| 在线视频你懂得一区| 国产人成亚洲第一网站在线播放| 午夜一区二区三区视频| 一本色道久久综合亚洲精品按摩| xf在线a精品一区二区视频网站| 三级欧美韩日大片在线看| 色婷婷国产精品久久包臀| 国产精品视频九色porn| 国模一区二区三区白浆| 日韩一区二区三区免费看| 亚洲 欧美综合在线网络| 色噜噜狠狠成人中文综合| 中文字幕不卡在线观看| 国产福利一区二区三区在线视频| 日韩一区二区免费在线电影| 丝瓜av网站精品一区二区| 欧美日韩精品欧美日韩精品 | 一区二区三区欧美激情| 成人高清视频在线| 国产精品久久久久一区| 成人激情免费视频| 国产日本亚洲高清| 成人性视频网站| 国产精品天干天干在线综合| 国产91露脸合集magnet| 国产精品午夜在线观看| 丁香亚洲综合激情啪啪综合| 欧美国产禁国产网站cc| 成人a免费在线看| 亚洲色图一区二区三区| 色婷婷av一区二区三区gif| 一级精品视频在线观看宜春院| 91国产福利在线| 亚洲一区二区欧美日韩| 欧美高清精品3d| 美美哒免费高清在线观看视频一区二区 | 国产精品久久久久久亚洲伦| 丁香另类激情小说| 国产精品天天看| 色综合久久88色综合天天6| 亚洲制服丝袜av| 5858s免费视频成人| 久久国产剧场电影| 国产午夜精品一区二区三区四区| 丁香天五香天堂综合| 国产精品美女一区二区| 色呦呦网站一区| 亚洲成人资源在线| 日韩精品一区二区三区三区免费| 国产最新精品免费| 中文字幕一区视频| 在线观看区一区二| 热久久免费视频| 国产亚洲一二三区| 北岛玲一区二区三区四区| 亚洲一区精品在线| 日韩欧美你懂的| 成人综合在线视频| 一区二区三区免费在线观看| 9191国产精品| 国产制服丝袜一区| 亚洲人成网站在线| 91麻豆精品国产91久久久资源速度 | 天堂影院一区二区| 欧美刺激午夜性久久久久久久| 国产成人午夜精品影院观看视频| 国产精品久久久久久久久动漫| 欧美色图激情小说| 久久精品国内一区二区三区| 最新热久久免费视频| 日韩亚洲电影在线| 99精品视频一区| 琪琪久久久久日韩精品| 中文字幕五月欧美| 欧美一区二区三区思思人| 成人精品gif动图一区| 日韩电影在线一区| 国产精品国产自产拍在线| 欧美精品高清视频| 成人午夜视频在线| 开心九九激情九九欧美日韩精美视频电影 | 久久这里只有精品视频网| www.99精品| 精品一区二区久久| 亚洲狠狠爱一区二区三区| 欧美国产精品一区二区| 精品视频一区二区三区免费| 丁香六月久久综合狠狠色| 蜜桃一区二区三区在线观看| 亚洲蜜臀av乱码久久精品蜜桃| 欧美精品一区二区三区在线| 欧美性感一区二区三区| av在线不卡电影| 国产精品一区二区果冻传媒|