- 论坛徽章:
- 0
|
看别人写的源代码的时候没看懂,求指点:
最早的入口:- static inline struct ext4_inode_info *EXT4_I(struct inode *inode)
- {
- return container_of(inode, struct ext4_inode_info, vfs_inode);
- }
复制代码 然后container_of的定义:- #define container_of(ptr, type, member) ({ \
- const typeof(((type *)0)->member) * __mptr = (ptr); \
- (type *)((char *)__mptr - offsetof(type, member)); })
- #endif
复制代码 然后google告诉我这里定义了__m的宏:- 409 #define __get_user_asm_ex(x, addr, itype, rtype, ltype) \
- 410 asm volatile("1: mov"itype" %1,%"rtype"\n" \
- 411 "2:\n" \
- 412 _ASM_EXTABLE(1b, 2b - 1b) \
- 413 : ltype(x) : "m" (__m(addr)))
复制代码 至此,感觉很模糊了...
求指点. |
|