C: define many functions using predefine..
2024-08-29 18:14:59
/* Defines COUNTER. There must be exactly one such definition at file scope
* within a program. */
#define COVERAGE_DEFINE(COUNTER) \
DEFINE_STATIC_PER_THREAD_DATA(unsigned int, \
counter_##COUNTER, ); \
static unsigned int COUNTER##_count(void) \
{ \
unsigned int *countp = counter_##COUNTER##_get(); \
unsigned int count = *countp; \
*countp = ; \
return count; \
} \
static inline void COUNTER##_add(unsigned int n) \
{ \
*counter_##COUNTER##_get() += n; \
} \
extern struct coverage_counter counter_##COUNTER; \
struct coverage_counter counter_##COUNTER \
= { #COUNTER, COUNTER##_count, , , {}, {} }; \
OVS_CONSTRUCTOR(COUNTER##_init) { \
coverage_counter_register(&counter_##COUNTER); \
}
最新文章
- 1.NoSql简介
- IOS系列swift语言之课时七
- Microsoft.Bcl.Build 1.0.10 稳定版发布
- 《Linux内核设计与实现》读书笔记(十三)- 虚拟文件系统
- HDU 1521 排列组合 指数型母函数
- 【转载】linux中互斥尽量用mutex,不用semaphore
- GRID用法(取行、列值;定位选中某行等等)
- 关于";user.dir";的认识
- 从零开始学android开发-setBackgroundDrawable与setBackgroundResource的区别
- C++之运算符重载(2)
- C#基础精华04(文件流,文件操作,File、Directory、Path,Directory)
- kobox : key_wq.c -v1 如何使用工作队列 workqueue
- How to pause the game in Uniy3D
- Android中的几种多线程实现
- SetConsoleScreenBufferSize 函数--设置控制台屏幕缓冲区大小
- null与undefined的比较
- 「mysql优化专题」90%程序员面试都用得上的索引优化手册(5)
- java基础-02数据类型
- React Native IOS搭建开发环境
- PHP替换指定字符串