->在C语言中称为间接引用运算符,是二目运算符,优先级同成员运算符“.”。
用法:
p->a,其中p是指向一个结构体的指针,a是这个结构体类型的一个成员。表达式p->a引用了指针p指向的结构体的成员a。
例如:a
struct T
{
int a;
char b;
}s;
struct T* p=&s;
那么,
p->a相当于s.a。
显然,有个等价写法:(*p).a,和p->a完全等效。
devm_kzalloc函数是为数据结构分配内存
struct octeon_mdiobus *bus;
struct resource *res_mem;
union cvmx_smix_en smi_en;
int err = -ENOENT;
//为platfrom设备pdev 的私有数据分配内存,长度struct octeon_mdiobus的长度
bus = devm_kzalloc(&pdev->dev, sizeof(*bus), GFP_KERNEL);
copy_from_user用于将用户空间的数据传送到内核空间。
功能:用于将用户空间的数据传送到内核空间。
unsigned long copy_from_user(void * to, const void __user * from, unsigned long n)
第一个参数to是内核空间的数据目标地址指针,
第二个参数from是用户空间的数据源地址指针,
第三个参数n是数据的长度。
如果数据拷贝成功,则返回零;否则,返回没有拷贝成功的数据字节数。
此函数将from指针指向的用户空间地址开始的连续n个字节的数据产送到to指针指向的内核空间地址