刚开始学习linux内核,看平台设备内核代码的时候很迷茫,为什么不直接把device作为platform_device struct的第一个成员,而是使用to_platform_device(),转移到struct start呢?
struct platform_device {
const char * name;
int id;
struct device dev;
u32 num_resources;
struct resource * resource;
const struct platform_device_id *id_entry;
/* MFD cell pointer */
struct mfd_cell *mfd_cell;
/* arch specific additions */
struct pdev_archdata archdata;
};
#define to_platform_device(x) container_of((x), struct platform_device, dev)