Linux内核中platform框架中的一个小方法
发布时间:2021-11-30 12:42:57 所属栏目:教程 来源:互联网
导读:先给出函数原型: struct platform_device *platform_device_alloc(const char *name, int id) { struct platform_object *pa; pa = kzalloc(sizeof(struct platform_object) + strlen(name), GFP_KERNEL); if (pa) { strcpy(pa-name, name); pa-pdev.name =
先给出函数原型: struct platform_device *platform_device_alloc(const char *name, int id) { struct platform_object *pa; pa = kzalloc(sizeof(struct platform_object) + strlen(name), GFP_KERNEL); if (pa) { strcpy(pa->name, name); pa->pdev.name = pa->name; pa->pdev.id = id; device_initialize(&pa->pdev.dev); pa->pdev.dev.release = platform_device_release; } return pa ? &pa->pdev : NULL; } 关键就在: pa = kzalloc(sizeof(struct platform_object) + strlen(name), GFP_KERNEL); 我初一看,用strlen没有加1,那在刚好撞上结构体后面跟的不是' |