2013年11月13日 星期三

[Linux][Kernel] MAC_FMT 跟 NIPQUAD_FMT

在寫 kernel module 的時候,我們常常會需要寫到 ip format 的的資料印出來 debug,但是每次都
printfk("%d.%d.%d.%d") 寫到累,後來發現原來這樣寫就可以:
printk(KERN_INFO "br0 ip:"NIPQUAD_FMT"\n", NIPQUAD(br0_in_dev->ifa_list->ifa_address));
然後接著又發現了,原來常用的 ip 有這種簡單的 macro 定義,當然 mac address 也會有:
#define MAC_ARG(x) ((u8*)(x))[0],((u8*)(x))[1],((u8*)(x))[2],((u8*)(x))[3],((u8*)(x))[4],((u8*)(x))[5]
printk("sa = '"MAC_FMT"' \n", MAC_ARG(mach->h_source));

這是早就發明好的輪子,如果不會用的話,是不是很可惜呢?

沒有留言:

張貼留言