| công cụ tìm kiếm bảng dữ liệu linh kiện điện tử |
|
UM0851 bảng dữ liệu(PDF) 108 Page - STMicroelectronics |
|
|
|||||||||||||||||||||||||||||
UM0851 bảng dữ liệu(HTML) 108 Page - STMicroelectronics |
|
108 / 245 page ![]() Communication device drivers UM0851 108/245 Doc ID 16604 Rev 2 /* SockAddr */ struct sockaddr_can { sa_family_t can_family; int can_ifindex; union { /* transport protocol class address info */ struct { canid_t rx_id, tx_id; } tp; /* reserved for future */ } can_addr; }; The struct sockaddr_can has an interface index like the PF_PACKET socket, which also binds to a specific interface. 4.9.4 SPEAr CAN driver The SPEAr CAN driver uses the socket-CAN framework to provide a network driver as an interface for the user-land applications. The CAN driver exposes itself to the kernel as a platform driver through the struct spr_can_driver, whose members are described below: /* SPEAr CAN driver */ static struct platform_driver spr_can_driver = { .driver = { .name = DRV_NAME, }, .probe = spr_can_drv_probe, .remove = spr_can_drv_remove, #ifdef CONFIG_PM .suspend = spr_can_drv_suspend, .resume = spr_can_drv_resume, #endif /* CONFIG_PM */ }; The CAN driver inserts a data structure for each newly detected interface into a global list of network devices. Each interface is described by a struct net_device item, which is defined in `linux/netdevice.h`. This structure must be allocated dynamically. The kernel function provided to perform this allocation is alloc_ccandev(), which has the following prototype: /* sizeof_priv is the size of SPEAr320 CAN driver's "private data" area. */ struct net_device *alloc_ccandev(int sizeof_priv) Once the net_device structure has been initialized, the process of registration is completed by passing the same to register_ccandev() The access to the SPEAr CAN driver private data is done via the standard call provided by Linux kernel: struct ccan_priv *priv = netdev_priv(dev); The private data structure used by the CAN driver is described below: struct ccan_priv { struct can_priv can; struct net_device *dev; int tx_object; int last_status; struct delayed_work work; u16 (*read_reg)(struct net_device *dev, enum c_regs reg); |
|
Link URL |
| Cho đến nay ALLDATASHEET có giúp ích cho doanh nghiệp của bạn hay không? [ DONATE ] |
Alldatasheet là | Quảng cáo | Liên lạc với chúng tôi | Chính sách bảo mật | Liên kết đến bảng dữ liệu | Trao đổi link | Tìm kiếm theo nhà sản xuất All Rights Reserved©Alldatasheet.com |
| Russian : Alldatasheetru.com | Korean : Alldatasheet.co.kr | Spanish : Alldatasheet.es | French : Alldatasheet.fr | Italian : Alldatasheetit.com Portuguese : Alldatasheetpt.com | Polish : Alldatasheet.pl | Vietnamese : Alldatasheet.vn Indian : Alldatasheet.in | Mexican : Alldatasheet.com.mx | British : Alldatasheet.co.uk | New Zealand : Alldatasheet.co.nz |
|
Family Site : ic2ic.com |
icmetro.com |