最近在修正代码警告,发现封装的打印语句不会进行参数的类型检查,而用printf却是可以的。于是上网找了下资料,学习了一下。
对于函数参数类型的检查,在gcc环境中可以使用__attribute__((format(printf,N,M)))的形式。其中N表示第几个参数是格式化字符串,M指明从第几个参数开始做检查。对于__attribute__,等有空专门学习一下再写篇文章出来。
下面是可变参数f的一个简单例子:
void my_printf(const ch...
gcc较高版本的一些编译警告收集
最近整理了下代码警告问题。这里记录一下。
H3C三层交换机划分VLAN示例
很久很久之前搞Linux端口转发时,借了一台三层交换机,我拿到手还没拆包装箱。不知道是不是因为工作上的这个原因而买的。不过后来实现的端口转发和三层交换机完全不搭边,就不了了之了。现在领导安排我查查广播风暴的事情,在同一网段里测试过了,就想在不同网段里试试,于是又借了这一台。这次是认真学习了一些配置命令,不过网上大把这类的资料,这里根据资料结合自己的实践,记录一下。
关于以太网PAUSE的一点研究
在学习自动协商时,发现有以太网PAUSE帧这个东西,很网上资料很少,有讲到的也是很简略,似乎这是一个神秘的不想让人知道的东西。这里将自己对PAUSE帧的一些研究,对于太术语的方面,直接参考网上资料,不在这里提及。
linux PHY驱动
本文参考3.17版本的内核,结合TI的cpsw驱动(但去掉cpsw大部分代码,保留phy相关的),追踪一下通用PHY驱动。文中使用函数及主要功能语句的形式给出调用过程。
以太网的phy寄存器分析
一直唠叨说要系统地学习Linux网络驱动,一直没去做。今天终于下决定写篇关于PHY寄存器的文章了,写了这个,再写篇关于PHY驱动的文章,就算给自己交差了。后面的事再议。这篇文章讲述PHY寄存,大部分属于资料收集,但也夹杂着个人的经验、见解。文中结合IEEE802.3标准、网络的分析及对驱动的理解进行描述。一般来说,像SPI、I2C、USB、PCI等总线类型的资料,都会包括电气接口和编程接口,对于以太网也类似,像硬件接口如MII、GMII,本来也想写一篇文章的,但无奈自己对接口没研究,就不写了。
Linux PHY几个状态的跟踪
前面文章零零星星地分析了PHY,本来想完整地,系统地做分析,发现工程量太大了,而自己又一知半解,所以只好各个击破,一点一点来分析。本文主要分析了设备上电、拨出网线、插上网线、自动协商等过程的PHY状态。