亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
91精品国产高清一区二区三区| 亚洲综合激情网| 国产成人在线网站| 亚洲激情在线播放| 欧美成人r级一区二区三区| 99riav一区二区三区| 日本特黄久久久高潮| 国产欧美一区二区精品忘忧草| 欧美在线视频全部完| 国产精品一区二区三区乱码| 亚洲一区二区三区视频在线| 国产精品视频在线看| 欧美一激情一区二区三区| 国产精品人妖ts系列视频| 在线国产电影不卡| 97se狠狠狠综合亚洲狠狠| 乱一区二区av| 偷拍一区二区三区四区| 色综合 综合色| 国产精品每日更新在线播放网址| 亚洲免费大片在线观看| 久久午夜羞羞影院免费观看| 欧美电影免费观看高清完整版在线观看| 精品国产乱码久久久久久影片| 国产一区激情在线| 亚洲欧美日韩在线播放| 日本乱码高清不卡字幕| 亚洲成在线观看| 日韩精品久久理论片| 精品美女一区二区| 欧美日韩在线播放三区| 成人黄色av电影| 国产一区高清在线| 久久精品国产亚洲a| 婷婷六月综合网| 亚洲综合视频在线| 中文字幕一区免费在线观看| 日本一区二区在线不卡| 精品精品欲导航| 日韩欧美资源站| 日韩欧美美女一区二区三区| 91精品在线免费| 91精选在线观看| 欧美精品一区二区不卡| 精品国产一区久久| 精品国产一区二区精华| 久久综合色8888| 国产目拍亚洲精品99久久精品| 国产日韩欧美麻豆| 国产精品人人做人人爽人人添| 国产精品私人影院| 亚洲欧美精品午睡沙发| 99久久精品国产精品久久| 久久久精品2019中文字幕之3| 欧美大黄免费观看| 欧美大片一区二区| 欧美xxx久久| 久久九九影视网| 国产精品久久久久影院老司| 亚洲美女一区二区三区| 亚洲尤物在线视频观看| 婷婷国产v国产偷v亚洲高清| 蜜桃视频在线观看一区| 国产九色sp调教91| 波多野结衣欧美| 欧美日韩一级片网站| 欧美一区二区不卡视频| 精品国产一区二区三区久久久蜜月 | 91麻豆精品国产91久久久| 日韩一区二区电影网| 久久综合色鬼综合色| 亚洲欧洲三级电影| 午夜免费欧美电影| 久久爱www久久做| 成人一区二区三区视频| 色哟哟一区二区| 欧美一区二区三区电影| 亚洲摸摸操操av| 午夜影院在线观看欧美| 精品制服美女丁香| 波多野洁衣一区| 欧美一区二区国产| 国产精品三级av在线播放| 亚洲最新视频在线观看| 蜜桃av一区二区在线观看| 国产成人午夜视频| 欧洲亚洲国产日韩| 精品国产乱码久久久久久影片| 最好看的中文字幕久久| 日本不卡高清视频| 懂色av中文字幕一区二区三区| 欧美性大战久久| 国产午夜精品在线观看| 亚洲国产一区在线观看| 国产精品一区一区三区| 欧美三级日韩三级国产三级| 国产三级欧美三级| 亚洲午夜免费视频| 国产成a人亚洲| 欧美丰满一区二区免费视频| 国产精品国产三级国产| 奇米影视在线99精品| 91小视频免费观看| 精品国产一区二区三区久久影院| 精品日产卡一卡二卡麻豆| 在线观看免费视频综合| 欧美成人vps| 五月婷婷综合激情| proumb性欧美在线观看| 精品乱人伦小说| 午夜精品久久久久影视| 成人av电影免费观看| 欧美成人在线直播| 亚洲一级二级三级在线免费观看| 成人性生交大片免费看在线播放 | 一区二区三区免费观看| 激情欧美一区二区| 欧美日韩中字一区| 亚洲欧美成人一区二区三区| 国产不卡免费视频| 精品国产1区二区| 久久精品99国产精品日本| 欧美色精品天天在线观看视频| 亚洲欧美日韩国产中文在线| 成人久久18免费网站麻豆| 久久亚洲春色中文字幕久久久| 日韩成人伦理电影在线观看| 欧美日韩一区二区电影| 亚洲午夜精品在线| 在线观看日韩电影| 成人av第一页| 欧美三区在线观看| 日韩伦理av电影| 不卡大黄网站免费看| 国产日韩欧美综合在线| 国产综合色在线视频区| 精品国产制服丝袜高跟| 韩国欧美国产1区| 久久综合九色综合欧美亚洲| 久久91精品久久久久久秒播| 日韩精品中文字幕一区二区三区 | 国产精品国产三级国产aⅴ中文 | 日本韩国一区二区三区视频| 亚洲特级片在线| 日本精品裸体写真集在线观看| 一区二区三区电影在线播| 99久久er热在这里只有精品66| 国产精品电影一区二区三区| 99精品国产热久久91蜜凸| 国产精品成人一区二区三区夜夜夜| 成人av免费观看| 亚洲黄色在线视频| 欧美在线高清视频| 在线播放欧美女士性生活| 91色|porny| 一区二区三区日本| 欧美日本精品一区二区三区| 日韩精品久久久久久| 日韩欧美国产小视频| 国产精品一区二区果冻传媒| 中文字幕第一区第二区| 99久久婷婷国产| 亚洲国产欧美在线| 日韩欧美一级特黄在线播放| 国内一区二区在线| 国产精品美日韩| 在线观看av一区二区| 美女脱光内衣内裤视频久久网站| 久久久久99精品国产片| 91在线porny国产在线看| 婷婷成人综合网| 国产偷v国产偷v亚洲高清| 一本色道久久加勒比精品| 首页亚洲欧美制服丝腿| 久久久久久久综合狠狠综合| 一本久久精品一区二区| 日韩不卡一二三区| 国产精品久久久久久久久免费樱桃| 免费成人在线网站| 国产女同性恋一区二区| 欧美三片在线视频观看| 国产精品自拍毛片| 亚洲老妇xxxxxx| 日韩精品一区二区三区蜜臀 | xfplay精品久久| 色噜噜夜夜夜综合网| 久久99国内精品| 亚洲与欧洲av电影| 国产亚洲欧美日韩日本| 欧美在线视频全部完| 国产成人综合在线观看| 亚洲第一成人在线| 中文字幕精品综合| 欧美精品久久久久久久久老牛影院| 国产高清不卡二三区| 丝袜诱惑亚洲看片| 最新国产成人在线观看| 精品理论电影在线| 欧美午夜在线观看| 国产成人综合在线|