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

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

?? trace.h

?? TRACE的源代碼,在LINUX調試程序要使用的.
?? H
?? 第 1 頁 / 共 2 頁
字號:
#ifndef __TRACE_H#define __TRACE_H/*  This file (trace.h) was created by Ron Rechenmacher <ron@fnal.gov> on    Dec 20, 1999. "TERMS AND CONDITIONS" governing this file are in the README    or COPYING file. If you do not have such a file, one can be obtained by    contacting Ron or Fermi Lab in Batavia IL, 60510, phone: 630-840-3000.*/#define __TRACE_H_REV	"\$RCSfile: trace.h,v $\$Revision: 1.40 $\$Date: 2004/02/07 02:40:41 $"#ifdef __KERNEL__# include <linux/types.h>	/* pid_t */#else# include <sys/types.h>		/* pid_t, open */# include <sys/stat.h>		/* open */# include <stdio.h>		/* perror */# include <fcntl.h>		/* open */# include <unistd.h>		/* mmap */# include <sys/mman.h>		/* mmap */# include <sys/ioctl.h>		/* ioctl */# include <string.h>		/* strlen */# ifdef __USE_POSIX#  include <time.h>		/* localtime_r */# else#  define __USE_POSIX#  include <time.h>		/* localtime_r */#  undef __USE_POSIX# endif# include <sys/time.h>		/* NESTED by time.h struct timeval */# include <stdarg.h>		/* varargs */# include <stdio.h>		/* printf */# include <asm/trace_intr.h>	/* *** THE APPROPRIATE trace_function! *** */# include <stdlib.h>		/* malloc */# include <alloca.h>		/* alloca */#endif#define TRACE( lvl, msg, params... ) \({      int		lidx;\        struct timeval	lclTime={0,0};/*an indication that no trace occurred*/\    /* first function activated sets the reference time */\    TRACE_INIT_CHECK;\    lidx = TRACE_TID * traceControl_sp->numberOfFunctions;\    if ((traceControl_sp->mode&(1<<0)) && (traceLevel_ip[lidx+0]&(1<<lvl)))\    {   /* need to provide a way to return time (only when in user space\	   though?maybe?) */\	TRACE_FUNCTION( &lclTime, TRACE_TID, lvl, msg , ## params );\    }\    TRACE_USER_FUNCTION( &lclTime, TRACE_TID, lvl, msg , ## params );\    lclTime;\})/*  Currently defined "traceControls":    Init,		function, for each kernel/userspace    ReInit,		#define,  userspace    Mode,		#define,  for each kernel/userspace    ModeGet,		#define,  for each kernel/userspace    ModeSet,		#define,  userspace    ModeClr,		#define,  userspace    Reset,		#define,  userspace    PMCGet,		#define,  userspace    TimeDiff,		#define,  one used for both kernel/userspace    LevelSet,		#define,  userspace    LevelGet,		#define,  userspace*/#define TRACE_CNTL( cmd, args... ) traceControl_##cmd( args )/*---------------------------------------------------------------------------*//* always 8 bits in a byte */#define TRACE_MAXIMUM_NUMBER_OF_FUNCTIONS	(sizeof(int)*8)	/* maximum */# ifndef TRACE_NAME#  define TRACE_NAME ""# endif/*  possibilities:    sec higher, usec lower   i.e. 11.500000 vs. 10.600000  1*1000000 + -100000    sec higher, usec same    i.e. 11.500000 vs. 10.500000    sec higher, usec higher  i.e. 11.500000 vs. 10.400000    sec same,   usec lower   i.e. 11.500000 vs. 11.600000    sec same,   usec same    i.e. 11.500000 vs. 11.500000    sec same,   usec higher  i.e. 11.500000 vs. 11.400000*/#define traceControl_TimeDiff( sooner, later )  \				({  int	secs, usecs;\				    secs  = later.tv_sec - sooner.tv_sec;\				    usecs = later.tv_usec - sooner.tv_usec;\				    ((secs*1000000) + usecs);\				})/*----------------------------------------------------------------------------*/#if __GNUC_MINOR__ == 96 || __GNUC__ == 3# define TRACE_COMPILER_DOES_DYNAMIC_ARRAYS 0#else# define TRACE_COMPILER_DOES_DYNAMIC_ARRAYS 1#endif#define TRACE_NUM_PARAMETER_INTS	6struct	s_tracePrint{   char	*heading;    int		width;    char	type;    int		offset;};struct s_traceControl{   char		blockMarker[28];	/* so we could search physical mem from external bus */    /*  these should have corresponding setup global variables */    int			numberOfTID;    int			nameSize_bytes;    int			numberOfFunctions;    int			circularQueueSize_bytes;    int			messageSize_bytes;    int			numberOfParameter_integers;    struct s_tracePrint	*print_sp;    int			printAscending;    int			printHeading;    int			mode;               /* global mode */    int			initializationOK;   /* do not allow mode change					       unless OK */    /*  THE SIZE OF THE AREAS THE FOLLOWING POINTERS POINT TO DEPEND ON THE	CONFIGURATION */      /*  the user can have direct write access to the area where these point to */    int			*initialLevel;    /* the area where these pointers point to needs to be controlled */    char		*name_a;    int			circularQueueEntrySize_bytes; /* includes processor							 dependent/specific */    int			circularQueueEntries;    char		*circularQueueFirst; /* ptr to 1st byte of 1st entry */    char		*circularQueueLast; /* ptr to 1st byte of last entry */    char		*circularQueueHead;    char		*circularQueueTail;    int			circularQueueFull;    int			circularQueueEntriesUsed; /* for convenience */};enum e_traceIoctl{   traceIoctl_e_init,    traceIoctl_e_mapControl,    traceIoctl_e_mapLevel,    traceIoctl_e_reset,    traceIoctl_e_versionGet,    traceIoctl_e_cpuGet,    traceIoctl_e_modeSet,    traceIoctl_e_levelSet,    traceIoctl_e_PMCGet};union u_traceIoctl{   struct    {   int			num;	void			*ptr;	int			mask;  /* mask will also contain cpuid for PMC Get/Read */    } generic;    struct    {   unsigned long long	pmc_data_val;	int			whichIn_cpuidOut;    } pmc;};/*----------------------------------------------------------------------------*/#ifdef __KERNEL__# include <linux/time.h>	/* do_gettimeofday */# include <linux/version.h>      /* LINUX_VERSION_CODE, KERNEL_VERSION */# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)/*  Note: I use cli here and spinlock in trace_queue.c as interrupts are    disabled for me when I come from user space */#  ifdef CONFIG_SMP#   define cli			local_irq_disable#   define save_flags		local_save_flags#   define restore_flags	local_irq_restore#  endif# else#  include <asm/system.h>	/* save_flags, cli, restore_flags */# endif# include <linux/trace_sys.h>	/* traceCircularQueuePut, struct s_traceEntry */extern struct s_traceControl	*traceControl_sp;extern int			*traceLevel_ip;extern int			 tracePMC[];struct s_traceEntry *traceCircularQueuePut( int, /*int, char*,*/ ... );# define TRACE_INIT_CHECK# define TRACE_TID		0# define TRACE_FUNCTION( tv_adr, tid, lvl, msg, params...) \         do\         {   unsigned long	__flags__;\             struct s_traceEntry *traceEntry_sp;\	     save_flags( __flags__ );\	     cli();\	     traceEntry_sp = traceCircularQueuePut( tid, lvl, msg , ## params );\             *tv_adr = traceEntry_sp->time;\	     restore_flags( __flags__ );\	 } while (0)# ifndef  TRACE_USER_FUNCTIONextern	void	(*(*trace_kernel_functions)[])( struct timeval*, int, int, char*, ... ); /* ptr to array of function ptrs */#  define TRACE_USER_FUNCTION( tv_adr, tid, lvl, msg, params... ) \    /* NOTE THE FUNCTION ARRAY IDX 0 LINES UP WITH MODE/LEVEL IDX 1 */\    do \    {       int	_ii_, lidx;\        lidx = TRACE_TID * traceControl_sp->numberOfFunctions;\        for (_ii_=1; _ii_<traceControl_sp->numberOfFunctions; _ii_++)\        {   if ((traceControl_sp->mode&(1<<_ii_)) && (traceLevel_ip[lidx+_ii_]&(1<<lvl)))\	    {\              if ((*trace_kernel_functions)[_ii_-1])\              {   char _tmp_buf_[traceControl_sp->messageSize_bytes+4];\                  int _jj_;\                  if ((tv_adr)->tv_sec == 0) do_gettimeofday( tv_adr );\                  for (_jj_=0; (_jj_<traceControl_sp->messageSize_bytes) && *((msg)+_jj_); _jj_++)\	          {   _tmp_buf_[_jj_] = *((msg)+_jj_);\	          }\	          _tmp_buf_[_jj_] = '\n'; _jj_++;\	          _tmp_buf_[_jj_] = '\0';\                  (*trace_kernel_functions)[_ii_-1]( tv_adr, tid, lvl, _tmp_buf_ , ## params );\              }\	    }\        }\    } while (0)# endif#define traceControl_Mode( new_mode )	\			({  int	old_mode;\			    old_mode = traceControl_sp->mode;\			    traceControl_sp->mode = new_mode;\			    old_mode;\			})#define traceControl_ModeGet()	\			({  traceControl_sp->mode;\			})#else	/* USER SPACE  -------------------------------------------------------*/static struct s_traceControl	*traceControl_sp=0;static int			*traceLevel_ip;static int			traceTID=0;                                     # define TRACE_INIT_CHECK	do\                                { if (!traceControl_sp)traceControl_Init("");\                                } while (0)# define TRACE_TID		traceTID# define TRACE_FUNCTION( tv_adr, tid, lvl, msg, params... ) \                                trace_function( tv_adr, tid\                                               ,lvl, msg , ## params )/*  For user space multi-module control: *  example:  extern void trace_print( struct timeval, int, int, char*, ...); *            #define TRACE_FUNCTIONS {trace_print} *            #define TRACE_NAME "simple" */# ifndef  TRACE_FUNCTIONS#  define TRACE_FUNCTIONS {0,0,trace_printf}static voidtrace_printf( struct timeval *tv_sp, int tid, int lvl, char *msg, ... ){	va_list		ap;	char		timbuf[100];	int		timlen;	char		*newbuf;	struct tm	tm_s;    localtime_r( (time_t *)&tv_sp->tv_sec, &tm_s );    timlen = strftime( timbuf, sizeof(timbuf), "%a %H:%M:%S", &tm_s );    sprintf( &timbuf[timlen], ".%06d: ", (int)tv_sp->tv_usec );    newbuf = (char *)alloca( timlen+strlen(&timbuf[timlen])+strlen(msg)+2/*room for "\n\0"*/ );

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲自拍偷拍av| 日韩免费高清视频| 亚洲黄色免费网站| 亚洲综合成人网| 国产白丝精品91爽爽久久| 欧美浪妇xxxx高跟鞋交| 91色在线porny| 日韩精品欧美精品| 亚洲蜜臀av乱码久久精品蜜桃| 精品久久久久一区| 欧美酷刑日本凌虐凌虐| 欧美人动与zoxxxx乱| 91黄视频在线观看| 亚洲国产综合人成综合网站| 91丨porny丨户外露出| 青青青伊人色综合久久| 日韩三级在线免费观看| 国产老妇另类xxxxx| 久久婷婷综合激情| 在线日韩av片| 欧美一区二区三区公司| 国产精品免费视频网站| 69久久99精品久久久久婷婷 | 日韩一区欧美二区| 国产日产亚洲精品系列| 91精品国产综合久久蜜臀| caoporm超碰国产精品| 国产在线精品一区二区夜色| 调教+趴+乳夹+国产+精品| 亚洲视频免费在线观看| 国产精品久久久久久久久久久免费看 | 老司机免费视频一区二区| 亚洲欧美日韩小说| 亚洲图片欧美激情| 国产免费成人在线视频| 国产网站一区二区三区| 欧美电影免费观看高清完整版在线观看| 日本乱人伦aⅴ精品| 色婷婷综合久久久中文一区二区 | 亚洲一区二区精品视频| 亚洲日穴在线视频| 国产精品久久久久久妇女6080| 欧美xxxxxxxxx| 久久色在线观看| 欧美一级黄色大片| 日韩一区二区麻豆国产| 欧美精品第一页| 欧美日韩黄视频| 91亚洲永久精品| av电影一区二区| 色综合一区二区| 91免费观看视频| 欧美伊人久久大香线蕉综合69| 国内精品写真在线观看 | 欧美日韩一区二区不卡| 精品一区免费av| 国产女人18毛片水真多成人如厕| 日韩精品一级二级| 亚洲男人的天堂av| 欧美国产精品劲爆| 国产另类ts人妖一区二区| 久久精品99国产精品日本| 丁香桃色午夜亚洲一区二区三区| 欧美日韩免费电影| 亚洲综合清纯丝袜自拍| 成人福利电影精品一区二区在线观看| 日韩欧美国产午夜精品| 亚洲激情在线激情| 另类小说综合欧美亚洲| 日本在线播放一区二区三区| 首页综合国产亚洲丝袜| 日韩福利视频导航| 九九九久久久精品| 99久久伊人网影院| 欧美美女一区二区| 亚洲精品在线观| aaa国产一区| 色哟哟一区二区在线观看| 色婷婷av一区二区| 国产精品18久久久久久久久久久久| 91精品国产综合久久久蜜臀图片| 精品一区二区久久久| 亚洲一区在线免费观看| 一区二区三区日韩精品视频| 免费精品99久久国产综合精品| 国产成人综合在线播放| 亚洲精品中文在线影院| 免费成人小视频| 日韩亚洲电影在线| 精品一区二区三区香蕉蜜桃| 欧美国产日本韩| www.欧美日韩| 一二三区精品视频| 欧美一区二区黄色| 另类小说色综合网站| 欧美mv日韩mv| 天天爽夜夜爽夜夜爽精品视频| 国产99久久久国产精品潘金| 在线精品视频一区二区| 亚洲欧洲综合另类| 欧美日韩你懂的| 午夜精品久久久久影视| 99综合影院在线| 久久亚洲精精品中文字幕早川悠里| 亚洲精选在线视频| 色婷婷亚洲精品| 欧美午夜不卡在线观看免费| 精品久久国产老人久久综合| 国产精品国产三级国产三级人妇| 亚洲精品视频在线看| 国产成人精品免费| 欧美综合一区二区三区| 久久一夜天堂av一区二区三区| 国产精品毛片无遮挡高清| 日韩专区中文字幕一区二区| 欧美网站大全在线观看| 亚瑟在线精品视频| 人人精品人人爱| 欧美大片免费久久精品三p| 不卡欧美aaaaa| 日韩av电影免费观看高清完整版在线观看| 精品处破学生在线二十三| 97精品国产97久久久久久久久久久久| 久久成人av少妇免费| 一级做a爱片久久| 欧美国产成人精品| 制服丝袜亚洲精品中文字幕| 久久黄色级2电影| 久久免费偷拍视频| 色综合天天综合| 亚洲一区在线观看免费 | 激情综合网最新| 日韩精品一区二区三区老鸭窝| 亚洲动漫第一页| 久久午夜色播影院免费高清| 欧美高清激情brazzers| 亚洲欧美日韩国产综合| 成人免费av在线| 中文字幕一区二区日韩精品绯色| 欧美一区二区在线免费播放| 国产成人av福利| 偷拍与自拍一区| 国产亚洲精品bt天堂精选| 亚洲日本在线观看| 亚洲香肠在线观看| 免费在线观看精品| 国产一区二区三区久久久| 国产aⅴ综合色| 欧美自拍偷拍一区| 日韩一级视频免费观看在线| 欧美日韩一二区| 国产精品白丝av| 日本在线不卡视频| 亚洲福利电影网| 欧美mv日韩mv国产网站app| 日本道免费精品一区二区三区| 国产精品亚洲成人| 国产精品一区二区在线观看不卡 | 国产精品欧美久久久久无广告| 国产精品卡一卡二卡三| 欧美久久久久久久久| 538在线一区二区精品国产| 色妹子一区二区| 久久精品视频一区二区三区| 国产精品天美传媒| 亚洲小少妇裸体bbw| 不卡一区二区中文字幕| 欧美一卡2卡三卡4卡5免费| 国产精品高潮呻吟| 国产一区二区三区电影在线观看| 在线精品国精品国产尤物884a| www国产亚洲精品久久麻豆| 久久久91精品国产一区二区精品 | 亚洲成人免费观看| 精品久久久久久久久久久久久久久| 日韩女同互慰一区二区| 制服视频三区第一页精品| 在线影院国内精品| 国产精品88av| 欧美在线小视频| 三级亚洲高清视频| 26uuu亚洲综合色| 色天天综合久久久久综合片| 婷婷久久综合九色综合伊人色| 久久久一区二区三区捆绑**| thepron国产精品| 亚洲高清在线精品| 国产无人区一区二区三区| 色综合天天狠狠| 国产乱码精品一区二区三区av | 国产成人综合视频| 亚洲国产三级在线| 在线观看精品一区| 又紧又大又爽精品一区二区| 亚洲午夜在线视频| 国产.欧美.日韩| 精品视频一区三区九区| 亚洲视频 欧洲视频| 国产成人日日夜夜| 久久久99精品免费观看不卡|