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

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

?? rtl_tracer.c

?? fsmlabs的real time linux的內核
?? C
字號:
/* * (C) Finite State Machine Labs Inc. 1999-2000 <business@fsmlabs.com> * * Released under the terms of GPL 2. * Open RTLinux makes use of a patented process described in * US Patent 5,995,745. Use of this process is governed * by the Open RTLinux Patent License which can be obtained from * www.fsmlabs.com/PATENT or by sending email to * licensequestions@fsmlabs.com */#define RTL_NOWRAP#include <rtl_conf.h>#ifndef CONFIG_RTL_TRACER#error Please enable CONFIG_RTL_TRACER option and copy new rtl.mk to this directory#endif#include <linux/kernel.h>#include <linux/module.h>#include <rtl_sync.h>#include <rtl_time.h>#include <rtl_core.h>#include <rtl_tracer.h>#include <mbuff.h>static unsigned eventmask;static int timestamp;struct rtl_event_descriptor_struct {	unsigned class;} rtl_event_descriptor[RTL_TRACE_MAX_EVENTS];int rtl_trace_seteventclass (int event, unsigned classmask){	if ((unsigned) event >= RTL_TRACE_MAX_EVENTS) {		return -1;	}	rtl_event_descriptor[event].class = classmask;	return 0;}static struct rtl_trace_eventinfo_struct *rtl_trace_event_info = 0;int rtl_trace_seteventname (int event, char *name){	if ((unsigned) event >= RTL_TRACE_MAX_EVENTS) {		return -1;	}	strncpy(rtl_trace_event_info[event].name, name, RTL_TRACER_NAMELEN - 1);	rtl_trace_event_info[event].name[RTL_TRACER_NAMELEN - 1] = 0;	return 0;}unsigned rtl_trace_settracemask (unsigned mask){	unsigned oldmask = eventmask;	eventmask = mask;	rtl_printf("%x\n", eventmask);	return oldmask;}static struct rtl_trace_buffer *buffers;static struct rtl_trace_buffer *cbuf;#define CBUF (*cbuf)static spinlock_t buffspin;static void (*save_rtl_trace)(int event_id, long event_data, void * eip);static int len;static struct rtl_trace_record *cur;static struct rtl_trace_record *ebp;static struct rtl_trace_record *sbp;int rtl_trace_finalize (int id);/* #include <asm/msr.h> */static void rtl_do_trace(int event_id, long event_data, void *eip){	rtl_irqstate_t flags;	static int in_trace = 0;	int cpu = rtl_getcpuid();/*	if ((unsigned) event_id >= RTL_TRACE_MAX_EVENTS) {		return;	} */	if (event_id == RTL_TRACE_FINALIZE) {		rtl_trace_finalize(1);		return;	}	rtl_no_interrupts(flags);	if (test_and_set_bit (cpu, &in_trace)) {		/* an attempt to call rtl_do_trace recursively */		rtl_restore_interrupts (flags);		return;	}	if (rtl_event_descriptor[event_id].class & eventmask) {		spin_lock (&buffspin);		cur->timestamp = gethrtime();/* 		rdtscll(cur->timestamp); */		cur->event_id = event_id;		cur->eip = (long) eip;		cur->event_data = event_data;		cur->cpu = cpu;		++cur;		if (len < RTL_TNRECORDS) {			len ++;		}		if (cur >= ebp) {			cur = sbp;		}				spin_unlock (&buffspin);	}	clear_bit (cpu, &in_trace);	rtl_restore_interrupts (flags);}static inline void init_current_buffer(void){	struct rtl_trace_buffer *buff = &CBUF;	buff->state = 0;	len = 0;	sbp = cur = &(buff->trace[0]);	ebp = sbp + RTL_TNRECORDS;}/*static void start_trace(void){	if (rtl_trace_buffer != rtl_do_trace) {	}}static void stop_trace(void){	rtl_trace_buffer = save_rtl_trace;}*/int rtl_trace_init (void *start){	int i;	for (i = 0; i < RTL_TRACE_MAX_EVENTS; i ++) {		rtl_trace_seteventclass(i, RTL_TRACE_CLASS_DEFAULT);	}	for (i = RTL_TRACE_HARD_CLI; i < RTL_TRACE_SCHED_IN; i++) {		rtl_trace_seteventclass(i, RTL_TRACE_CLASS_INTERRUPTS);	}	for (i = RTL_TRACE_SCHED_IN; i <= RTL_TRACE_SCHED_CTX_SWITCH; i++) {		rtl_trace_seteventclass(i, RTL_TRACE_CLASS_SCHEDULER);	}	rtl_trace_seteventclass(RTL_TRACE_USER, RTL_TRACE_CLASS_USER);	for (i = 0; i < RTL_TRACE_MAX_EVENTS; i ++) {		rtl_trace_seteventname(i, "unknown");	}	rtl_trace_seteventname(RTL_TRACE_HARD_CLI, "hard cli");	rtl_trace_seteventname(RTL_TRACE_HARD_STI, "hard sti");	rtl_trace_seteventname(RTL_TRACE_HARD_SAVE_FLAGS, "rtl_hard_save_flags");	rtl_trace_seteventname(RTL_TRACE_HARD_RESTORE_FLAGS, "rtl_restore_interrupts");	rtl_trace_seteventname(RTL_TRACE_HARD_SAVEF_AND_CLI, "rtl_no_interrupts");	rtl_trace_seteventname(RTL_TRACE_LOCAL_INTERCEPT, "local_intercept entry");	rtl_trace_seteventname(RTL_TRACE_LOCAL_INTERCEPT_EXIT, "local_intercept exit");	rtl_trace_seteventname(RTL_TRACE_USER, "user");	rtl_trace_seteventname(RTL_TRACE_SPIN_LOCK, "rtl_spin_lock");	rtl_trace_seteventname(RTL_TRACE_SPIN_UNLOCK, "rtl_spin_unlock");	rtl_trace_seteventname(RTL_TRACE_INTERCEPT, "rtl_intercept entry");	rtl_trace_seteventname(RTL_TRACE_INTERCEPT_EXIT, "rtl_intercept exit");	rtl_trace_seteventname(RTL_TRACE_SCHED_IN, "scheduler in");	rtl_trace_seteventname(RTL_TRACE_SCHED_OUT, "scheduler out");	rtl_trace_seteventname(RTL_TRACE_SCHED_CTX_SWITCH, "rtl_switch_to");	rtl_trace_seteventname(RTL_TRACE_FINALIZE, "trace finalize");	eventmask = 0xffffffff;	timestamp = 0;	spin_lock_init (&buffspin);	buffers = (struct rtl_trace_buffer *) start;	for (i = 0; i < RTL_TNBUFFERS; i++) {		buffers [i] . state = 0;	}	cbuf = &buffers[0];	init_current_buffer ();	save_rtl_trace = rtl_trace;	rtl_trace = rtl_do_trace;	return 0;}void rtl_trace_destroy (void){	rtl_trace = save_rtl_trace;}/* fails if no more buffers available */int rtl_trace_finalize (int id){	struct rtl_trace_buffer *b;	rtl_irqstate_t flags;	rtl_no_interrupts (flags);	spin_lock (&buffspin);	++timestamp;	for (b = buffers; b < &buffers[RTL_TNBUFFERS]; b ++) {		if (b != cbuf && !b->state) {			break;		}	}		if (b == &buffers[RTL_TNBUFFERS]) {		init_current_buffer (); /* start all over again */		spin_unlock (&buffspin);		rtl_restore_interrupts (flags);		return -1;	}	CBUF.id = id;	CBUF.timestamp = timestamp;	CBUF.len = len;	CBUF.pos = cur - sbp;	mb();	CBUF.state = 1;	cbuf = b;	init_current_buffer ();	spin_unlock (&buffspin);	rtl_restore_interrupts (flags);	return 0;}#ifdef MODULE/* struct rtl_trace_buffer traces[RTL_TNBUFFERS]; */void * shmem_ptr;int init_module(void){	shmem_ptr = mbuff_alloc (RTL_TRACER_SHMEM, sizeof(struct rtl_trace_buffer) * RTL_TNBUFFERS);	if (!shmem_ptr) {		printk("RTLinux Tracer: failed to allocate trace buffer\n");		return -1;	}	rtl_trace_event_info = (struct rtl_trace_eventinfo_struct *) mbuff_alloc (RTL_TRACER_SHMEM_INFO, sizeof(struct rtl_trace_eventinfo_struct) * RTL_TRACE_MAX_EVENTS);	if (!rtl_trace_event_info) {		printk("RTLinux Tracer: failed to allocate event info buffer\n");		mbuff_free (RTL_TRACER_SHMEM, shmem_ptr);		return -1;	}/* 	printk("%x %d\n", (unsigned) shmem_ptr, sizeof(struct rtl_trace_buffer)); */	rtl_trace_init(shmem_ptr);	return 0;}void cleanup_module(void){	rtl_trace_destroy();	mbuff_free (RTL_TRACER_SHMEM, shmem_ptr);	mbuff_free (RTL_TRACER_SHMEM_INFO, (void *) rtl_trace_event_info);}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲视频在线观看三级| 一区二区三区精密机械公司| 91婷婷韩国欧美一区二区| 亚洲va欧美va天堂v国产综合| 国产女主播一区| 久久精品日韩一区二区三区| 欧日韩精品视频| 大桥未久av一区二区三区中文| 丝袜亚洲另类欧美| 中文字幕一区二区三区精华液 | 色狠狠一区二区| 国产乱色国产精品免费视频| 亚欧色一区w666天堂| 亚洲精品欧美综合四区| 亚洲国产精品黑人久久久| 精品免费日韩av| 91精品综合久久久久久| 色婷婷激情综合| 99久久精品国产精品久久| 高清国产午夜精品久久久久久| 麻豆国产欧美一区二区三区| 亚洲成av人片| 亚洲成人综合网站| 亚洲欧美一区二区三区国产精品| 久久精子c满五个校花| 精品国产乱码久久久久久影片| 欧美一级高清片在线观看| 欧美日韩一区二区欧美激情| 色综合天天在线| 91丨porny丨蝌蚪视频| 99视频在线精品| 91美女在线观看| 91蜜桃视频在线| 在线观看国产一区二区| 在线视频中文字幕一区二区| 欧美在线视频全部完| 欧美唯美清纯偷拍| 在线看国产一区二区| 欧美综合天天夜夜久久| 国产欧美精品一区| 日韩激情中文字幕| 日韩电影网1区2区| 日韩二区在线观看| 免费成人小视频| 国产精品一线二线三线| 成人性生交大片| 成人av在线电影| 色播五月激情综合网| 欧美日韩中文另类| 日韩一级在线观看| 欧美精品一区二区三区很污很色的| 精品精品国产高清一毛片一天堂| 久久综合九色综合97婷婷| 国产午夜精品久久久久久免费视| 国产色婷婷亚洲99精品小说| 国产精品视频免费| 亚洲一区二区三区四区在线免费观看 | 久久综合九色综合欧美亚洲| 久久午夜羞羞影院免费观看| 国产精品素人视频| 亚洲综合在线视频| 青青草原综合久久大伊人精品| 九九精品一区二区| 99在线视频精品| 欧美午夜理伦三级在线观看| 亚洲已满18点击进入久久| 久久久久高清精品| 精品福利一区二区三区| 日韩视频在线一区二区| 26uuu另类欧美| 91久久奴性调教| 91视频观看免费| 91精品国产综合久久精品| 久久亚洲影视婷婷| 亚洲免费av网站| 久久99精品一区二区三区三区| 成人动漫视频在线| 91精品欧美综合在线观看最新| 久久这里只有精品6| 一区二区三区国产| 精品一二线国产| 欧美亚洲动漫制服丝袜| 久久久精品tv| 午夜不卡av在线| 成人激情av网| 欧美不卡激情三级在线观看| 亚洲欧美另类久久久精品 | 美女脱光内衣内裤视频久久网站| 国产成人精品网址| 91精品国产综合久久精品麻豆 | 国产精品―色哟哟| 理论电影国产精品| 欧洲在线/亚洲| 中文字幕av资源一区| 奇米亚洲午夜久久精品| 色婷婷综合久久久| 日本一区二区视频在线| 免费久久99精品国产| 色婷婷综合视频在线观看| 国产区在线观看成人精品| 免费视频一区二区| 欧美优质美女网站| 亚洲欧洲国产日本综合| 激情都市一区二区| 欧美精品成人一区二区三区四区| 中文字幕一区二区三区在线播放| 久久成人18免费观看| 91成人看片片| 亚洲视频一区在线| 国产91丝袜在线播放| 日韩精品中文字幕一区二区三区 | 韩国欧美国产1区| 欧美区在线观看| 亚洲制服丝袜av| 99久久久精品免费观看国产蜜| 日韩欧美亚洲国产另类| 亚洲成人免费av| 欧美性一区二区| 亚洲激情网站免费观看| 成人涩涩免费视频| 久久久久国产精品厨房| 久久精品国产99国产| 在线成人高清不卡| 亚洲r级在线视频| 精品视频在线免费| 亚洲电影一区二区| 欧美日韩免费一区二区三区视频| 亚洲免费观看视频| 色狠狠一区二区| 亚洲一区电影777| 欧美性xxxxx极品少妇| 亚洲精品成a人| 欧美自拍偷拍一区| 亚洲国产精品精华液网站| 欧美色手机在线观看| 婷婷国产v国产偷v亚洲高清| 欧美高清www午色夜在线视频| 午夜欧美电影在线观看| 1024成人网| 在线不卡免费av| 性久久久久久久久| 欧美一区二区三区日韩| 久久精品国产一区二区| 欧美成人在线直播| 国产精选一区二区三区| 国产日韩精品一区二区三区在线| 成人自拍视频在线| 亚洲免费在线视频| 8x福利精品第一导航| 精品一区二区三区欧美| 国产欧美一区二区精品忘忧草| 成人午夜视频在线观看| 国产精品第一页第二页第三页| a4yy欧美一区二区三区| 亚洲国产另类av| 日韩三级视频在线看| 懂色一区二区三区免费观看| 亚洲男人电影天堂| 91精品国产一区二区三区蜜臀 | 午夜精品久久久久久久久久 | 色综合久久久久久久久| 亚洲影视在线播放| 日韩视频免费直播| 成人ar影院免费观看视频| 亚洲综合男人的天堂| 日韩欧美黄色影院| 99精品在线免费| 蜜桃久久久久久| 国产精品你懂的| 在线综合+亚洲+欧美中文字幕| 国产乱子伦视频一区二区三区| 亚洲人成7777| 欧美大片在线观看一区二区| 成人毛片在线观看| 日韩精品一区第一页| 国产偷国产偷亚洲高清人白洁| 91日韩在线专区| 国产制服丝袜一区| 亚洲成av人片在线观看无码| 精品国产乱码久久久久久夜甘婷婷| 不卡一区在线观看| 久久精品国产77777蜜臀| 成人欧美一区二区三区| 日韩一区二区三免费高清| 成人午夜在线视频| 麻豆精品精品国产自在97香蕉| 亚洲同性同志一二三专区| 日韩精品专区在线| 91国产免费看| 国产风韵犹存在线视精品| 亚洲一区二区三区四区五区中文| 26uuu精品一区二区在线观看| 一本一道久久a久久精品综合蜜臀| 美女被吸乳得到大胸91| 亚洲免费在线视频| 国产欧美精品一区二区色综合 | 亚洲高清在线精品| 国产精品久久久久久久久快鸭 | 99国产精品久久久久久久久久| 美女诱惑一区二区|