首先我們要知道的一點是:在Linux核心中,不同CPU裡面,各自的位元組序定義都不同。
本次用于分析的 Linux 核心版本為: linux--3.0.0-12。
arch/XXX/include/asm/byteorder.h:不同CPU(XXX)的位元組序定義
1)ARM(XXX=arm):
#ifdef __ARMEB__
#include <linux/byteorder/big_endian.h>
#else
#include <linux/byteorder/little_endian.h>
#endif
(2)PowerPC(XXX=powerpc)
#include <linux/byteorder/big_endian.h>
(3)X86(XXX=x86)
#include <linux/byteorder/little_endian.h>
由上面舉的3個例子,可以看出三種不同的CPU對于各自的位元組序定義有所不同。